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

 

Основные операции с группами

Группы геометрических объектов

Любые операции, которые можно выполнять с одиночными геометрическими объектами, применимы и к группам. В частности, создание группы или добавление в нее объекта осуществляется с помощью команды:

group ["name" | <ID>] add <list of topology entities>

Например, команда:

group "first" add surface 1 to 2, curve 3 to 5

создает группу под названием "first", которая содержит поверхности 1 и 2, а также кривые 3, 4 и 5. Название группы должно заключаться в одинарные или двойные кавычки.

Объекты могут быть добавлены в группу по имени. Например, команда:

group 'second' add surface name 'bill' 'john' 'fred'

добавляет в группу 'second' поверхности с именами 'bill', 'john' и 'fred' . Геометрический объект может быть удален из группы (указываемой с помощью имени "name" или идентификатора <ID>) посредством команды:

group ["name" | <ID>] remove <entity list>

Для объектов в группе выполнима операция Xor:

group ["name" | <ID>] Xor <entity list>

Если указанные в списке <entity list> объекты уже находятся в группе, то эта команда удалит их оттуда. Если указанных объектов в группе нет, то они будут добавлены.

Операция equals оставляет в группе объекты, указанные в списке <entity list>; остальные из нее удаляются:

group ["name" | <ID>] equals <entity list>

Изменение групп путем сравнения общих объектов

Команда group ... common_to используется для изменения состава групп аналогично описанным выше операциям путем определения в группе элементов, общих с указанными геометрическими объектами, например, кривых, общих для двух поверхностей. Элементы должны быть указаны с помощью имени (указание ID не действует), и имя должно быть заключено в единичные кавычки. Синтаксис команды следующий:

group ["name" | <ID>] {add|equals|remove|Xor} <entity_type> common_to <entity_type> name 'pattern' ['pattern'...]

Пример использования команды group ... common_to:

brick x 10
curve 2 name 'joe'
curve 3 name 'alf'
group 'mygroup' add surf common_to curve name 'joe' 'alf'

Булевы операции для групп

Группы могут быть созданы с помощью булевых операций. Так команда intersect позволяет создать новую группу, содержащую только объекты, общие для обоих существующих групп. Команда unite объединяет все элементы двух групп в одну новую группу. Команда subtract создает новую группу из объектов, которые были только в одной из существующих групп; объекты, общие для обоих групп, в новую группу не включаются. Соответствующие команды имеют вид:

group {<'name'>|<id>} intersect group <ID> with group <ID>

group {<'name'>|<id>} unite group <ID> with group <ID>

group {<'name'>|<id>} subtract group <ID> from group <ID>

Группы объектов с построенной сеткой

Группы могут содержать объекты с построенной сеткой. Команды для добавления или удаления таких объектов аналогичны командам для геометрических объектов:

group ["name" | <id>] add {Hex|Face|Edge|Node <ID_list>}

group ["name" | <id>] remove {Hex|Face|Edge|Node <ID_list>}

group ["name" | <id>] Xor {Hex|Face|Edge|Node <ID_list>}

Копирование групп

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

group {<'name'>|<ID>} copy [move <x> <y> <z>] [nomesh]

group {<'name'>|<ID>} copy [move {x|y|z} <distance>...] [nomesh]

group {<'name'>|<ID>} copy [move <direction> [distance]] [nomesh]

group {<'name'>|<ID>} copy [reflect {x|y|z}] [nomesh]

group {<'name'>|<ID>} copy [reflect <x> <y> <z>] [nomesh]

group {<'name'>|<ID>} copy [rotate <angle> about {x|y|z}] [nomesh]

group {<'name'>|<ID>} copy [rotate <angle> about <x> <y> <z>] [nomesh]

group {<'name'>|<ID>} copy [rotate <angle> about vertex <vertex-1> [vertex] <vertex-2> [nomesh]

group {<'name'>|<ID>} copy [scale <scale> | x <val> y <val> z <val>] [nomesh]

Преобразования групп

Преобразования групп возможны в виде перемещений, поворотов, отражения и масштабирования, как это описано выше в рамках операций копирования. Такие преобразования особенно эффективны применительно к элементам свободной сетки, при объединении их в группу без геометрических объектов.

Удаление групп

Группы могут быть удалены при помощи следующей команды:

delete group <ID range> [propagate]

Опция propagate позволяет удалить группу и все ее содержимое рекурсивно.

Очистка групп

Очистить группу, т.е. удалить из нее объекты можно с помощью команды:

group <group_ID_range> cleanout [geometry|mesh] [propagate]

По умолчанию удаляются все объекты; при желании можно удалить лишь геометрию или сетку. Опция propagate позволяет проводить очистку рекурсивно.