Перейти к статье

 

Названия объектов

По умолчанию для ссылок на геометрические объекты в Fidesys используются тип объекта (например, поверхность, объем) и идентификатор, например «draw surface 1». Однако геометрическим объектам также можно присвоить имена, чтобы упростить работу с конкретными объектами. После того, как объекту присвоено имя, это имя можно использовать в любой команде Fidesys вместо типа и номера объекта. Например, если бы поверхность 1 была названа «mysurf1», приведенная выше команда была бы эквивалентна «draw mysurf1». Так как имена объектов сохраняются вместе с геометрией, это также обеспечивает средства для постоянных идентификаторов геометрических объектов.

Имена объектов можно добавлять и удалять с помощью следующих команд:

{group | body | volume | surface | curve | vertex} {name | rename} {`<entity_name>' | default}

{group | body | volume | surface | curve | vertex} remove name {`<entity_name>' | all | default}

Имена могут использоваться для подписи объектов.

Список имен объектов с указанием их типов и идентификаторов (необязательно отсортированный по типам) можно получить с помощью команды:

list names [{group | body | volume | surface | curve | vertex | all}]

Примечания:

Имена без учета регистра

Имена объектов в Fidesys нечувствительны к регистру. Это означает, что нет никакой разницы между именем mysurf1 и MySurf1. Регистр имен будет сохранен как назначенный. Например, объект с именем «MyVolume» будет отображать имя «MyVolume», но на него можно будет ссылаться с помощью любой версии имени, «MYVOLUME», «mYvOlume» и т. д.

Допустимые и недопустимые названия объектов

В качестве названия объекта допустимо использовать любую комбинацию символов типа string. Но употребление этих названий в командах накладывает ряд ограничений. Некорректные имена (нарушающие эти ограничения) командами не воспринимаются.

Допустимое (корректное) название должно начинаться с буквы или знака подчеркивания ("_") и может содержать буквы и цифры, а также знаки: ".", "_", "@". В случае ввода недопустимого названия программа автоматически исправляет предлагаемую версию путем замены некорректных символов на знак подчеркивания. В результате объекту будут присвоены одновременно как предлагаемое некорректное, так и исправленное название. Например, при попытке назвать некий объем "123#" он получит два имени: "123#" и "_23_". Корректное имя может использоваться в командах непосредственно (mesh volume _23_), в то время как на некорректное название можно ссылаться только с использованием непрямого синтаксиса (mesh volume with name "123#").

Согласование повторяющихся названий

При попытке назначить разным объектам одно и то же название к именам второго и последующих объектов добавляется суффикс, чтобы сделать его уникальным. Суффикс состоит  из символа "@", за которым следуют одна или несколько  букв или цифр. Например, команды:

volume 1 name "hinge"
volume 2 name "hinge"
volume 3 name "hinge"

приведут к следующим названиям объемов 1, 2 и 3: "hinge", "hinge@A" и "hinge@B", соответственно.

Такое автоматическое исправление названий можно отключить с помощью команды:

set fix duplicate names [ON | off]

Если пользователь попытается присвоить повторяющееся имя, когда флаг выключен, имя останется неизменным.

Автоматическое присваивание названий

В Fidesys имеется возможность автоматического присвоения имен объектам при их создании. Для этого существует команда:

set default names {on | OFF}

При включенной опции on объектам назначаются имена по умолчанию - в виде "тип объекта и его ID", например 'cur1', 'surf26', 'vol62'.

Автоматическое распространение названий

Fidesys автоматически передает имена через веб-ссылки. Если объект, которому было присвоено имя «Gear», разделен веб-сокращениями, полученные тела будут названы «Gear» и «Gear @ A». Пример:

br x 10
volume 1 name "Cube"
webcut volume 1 xplane
webcut volume 1 2 yplane
webcut volume 1 2 3 4 zplane
label volume name

name_propagation.gif

Рис. 1 - Распространение имени через веб-ссылки

Можно работать с этими распространенными именами, используя подстановочные знаки, такие как:

mesh volume with name 'Cube*
block 1 volume with name 'Cube*

Названия объектов после слияния

При слиянии объектов с одним базовым названием (например, "platform" и "platform@A") результирующим объектам присваиваются оба имени. Для объединения имен используется команда:

set merge base names [on | OFF]

Пример без объединения имен:

brick x 10
vol 1 copy move 10
surf 6 name 'platform'
surf 10 name 'platform'

После выполнения этих команд поверхности 10 будет присвоено название 'platform@A' (так как дублирование названий недопустимо). После слияния поверхностей с помощью команд:

merge all
list surf 6

поверхность 6 получает два названия: "platform" и "platform@A".

Пример с объединением имен:

brick x 10
vol 1 copy move 10
surf 6 name 'platform'
surf 10 name 'platform'

set merge base names on
merge all
list surf 6

В результате поверхность 6 получает только одно имя: "platform".