Преобразования геометрии

Возможности работы с геометрическими объектами являются важными составляющими функционала пакета Fidesys.

Команда move (сдвиг)

Команда move позволяет переместить (сдвинуть) объект (тело, объем, поверхность, кривую, вершину или группу) на заданную величину в заданном направлении. Для этого используются следующие варианты этой команды:

vertex <ID_range> [move [X <dx>] [Y <dy>] [Z <dz>]] [copy] [preview]

vertex <ID_range> move < direction_options> [distance <val>] [copy] [preview]

{body | volume | surface | curve | vertex | group} <ID_range> [move [X <dx>] [Y <dy>] [Z <dz>]] [copy [nomesh]] [preview]

{body | volume | surface | curve | vertex | group} <ID_range> move < direction_options> [distance <val>] [copy [nomesh]] [preview]

Параметры dx, dy и dz определяют составляющие сдвига в направлениях главных осей. Параметр distance - абсолютная величина сдвига.

Параметр copy позволяет применить операцию сдвига к копии объекта; при этом исходный объект остается без изменений.

Параметр nomesh обеспечивает сдвиг копии объекта без сетки.

Приведенные выше варианты команды применимы только к свободным объектам. Для сдвига "несвободных" объектов, входящих в состав объектов более высокого порядка, используется команда move {entity} (см. ниже).

Сдвиг "несвободных" геометрических объектов

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

move {vertex | curve | surface | volume | body | group} <ID_range> [midpoint] location <x> [<y> [<z>]] [include_merged] [preview]

move {vertex | curve | surface | volume | body | group} <ID_range> location [midpoint] [X <val>] [Y <val>] [Z <val>] [except [X] [Y] [Z]] [include_merged] [preview]

move {vertex | curve | surface | volume | body | group} <ID_range> normal to surface <ID> distance <val> [include_merged] [preview]

move {vertex | curve | surface | volume | body | group} <ID_range> [midpoint] general location < location_options> [except [X] [Y] [Z]] [include_merged] [preview]

При использовании первого варианта команды объект сдвигается таким образом, что его центр тяжести перемещается в точку с координатами x, y и z.

Второй вариант позволяет переместить объект на заданное расстояние в направлениях осей x, y и z. Параметр except исключает сдвиг по указанной плоскости.

Третий вариант обеспечивает сдвиг вдоль внешней нормали к заданной поверхности. Параметр distance определяет абсолютную величину сдвига.

В четвертом варианте команды направление сдвига задается с помощью опций - задание положения.

Параметр preview обеспечивает предварительный просмотр результатов операции до изменения геометрической модели.

Сдвиг относительно других геометрических объектов

Существует возможность сдвига одних объектов относительно других:

move {vertex | curve | surface | volume | body | group} <ID_range> [midpoint] location {vertex | curve | surface | volume | body | group} <ID> [midpoint] [except [X] [Y] [Z]] [include_merged] [preview]

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

Сдвиг связанных объектов

Самый простой способ сдвига связанных между собой объектов - это использование в описанных выше командах параметра include_merged. Второй способ заключается в перечислении всех объектов, над которыми выполняется операция сдвига.

Отмена сдвига

Отмена последнего выполненного сдвига производится с помощью команды:

move undo

Эта команда применима только для вариантов move {entity}, но не для {entity} move.

Команда rotate (поворот)

Команда rotate позволяет повернуть объект на заданный угол angle вокруг оси, определяемой компонентами вектора x-comp, y-comp, z-comp. Угол поворота задается в градусах, положительным считается направление "против часовой стрелки".

body <range> [copy] rotate <angle> about {X | Y | Z} [preview]

body <range> [copy] rotate <angle> about <x-comp> <y-comp> <z-comp> [preview]

rotate {body | volume | surface | curve | vertex | group} <ID_range> about {X | Y | Z|<xval> <yval> <zval>} angle <val> [include_merged] [preview]

rotate {body | volume | surface | curve | vertex | group} <ID_range> about vertex <ID> vertex <ID> angle <val> [include_merged] [preview]

rotate {body | volume | surface | curve | vertex | group} <ID_range> about normal of surface <ID> angle <val> [include_merged] [preview]

rotate {body | volume | surface | curve | vertex | group} <ID_range> about origin <xval> <yval> <zval> direction <xval> <yval> <zval> angle <val> [include_merged] [preview]

Параметр copy позволяет применить поворот к копии объекта; при этом исходный объект остается без изменений.

Параметр preview обеспечивает предварительный просмотр результата выполнения команды без изменения самой модели.

Поворот связанных объектов

Самый простой способ поворота связанных между собой объектов - это использование в описанных выше командах параметра include_merged. Второй способ заключается в перечислении всех объектов, к которым применяется операция поворота.

Команда reflect (отражение)

Команда reflect позволяет зеркально отразить объект относительно плоскости, задаваемой вектором, или относительно координатной плоскости:

{body | volume | surface | curve | vertex | group} range> [copy] reflect <x-comp> <y-comp> <z-comp>

{body | volume | surface | curve | vertex | group} range> [copy] reflect {X | Y | Z}

По умолчанию исходный объект удаляется. Для его сохранения используется параметр copy.

Команда copy (копирование)

Команда copy позволяет копировать существующий объект (или несколько объектов) с сохранением всех свойств. Одновременно с копированием полученные объекты можно подвергнуть другим преобразованиям - для этого используются варианты команды с соответствующими параметрами: rotate - поворот, scale - масштабирование, reflect - отражение, move - сдвиг:

vertex <range> copy [move [X <dx>] [Y <dy>] [Z <dz>]] [preview]

vertex <range> copy [move < direction_options> [distance <val>]] [preview]

{body | volume | surface | curve | vertex | group} <range> copy move [X <dx>] [Y <dy>] [Z <dz>] [nomesh] [repeat <value>] [preview]

{body | volume | surface | curve | vertex | group} <range> copy move < direction_options > [distance <val>] [nomesh] [repeat <value>] [preview]

{body | volume | surface | curve | vertex | group} <range> copy reflect {X | Y | Z} [nomesh] [preview]

{body | volume | surface | curve | vertex | group} <range> copy reflect [vertex <v1_ID> [vertex] <v2_ID] [nomesh] [preview]

{body | volume | surface | curve} <range> copy reflect <x> <y> <z> [nomesh] [preview]

{body | volume | surface | curve} <range> copy rotate <angle> about {X | Y | Z} [repeat <value>] [nomesh] [preview]

{body | volume | surface | curve} <range> copy rotate <angle> about <x> <y> <z> [nomesh] [repeat <value>] [preview]

{body | volume | surface | curve} <range> copy scale <scale> | X <val> Y <val> Z <val> [about vertex <ID>] [nomesh] [repeat <value>] [preview]

По умолчанию объект копируется вместе с сеткой. Для отключения этой возможности служит параметр nomesh.

При необходимости можно повторить копирование с последующим изменением (сдвиг, масштабирование и т.п.) используется параметр repeat. Значение value определяет число повторений.

Параметр preview обеспечивает предварительный просмотр результатов копирования объектов и их последующей трансформации без изменения самой модели.

Приведенные варианты команды применимы только к объектам, копирование которых не нарушает немногообразную топологию.