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

 

Создание объемов

Создание объемов возможно следующими способами:

Ниже описываются варианты создания объемов:

Существует 5 вариантов команд протяжки. Четыре из них приведены ниже:

draft_angle - этот параметр указывает угол наклона боковой поверхности создаваемого объема относительно протяжки (Значение по умолчанию 0);

draft_type - этот параметр относится к ACIS и указывает вид формирования поверхности при протяжке если задан ненулевой угол уклона:
0 - является значением по умолчанию и подразумевает продление по прямым касательным линиям до пересечения;
1 - также является допустимым значением и подразумевает скругление углов;

anchor_entity - этот параметр указывает оставить исходную поверхность на первоначальном месте;

include_mesh - этот параметр создает объемную сетку, если сетка была построена на поверхности.

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

Протяжка поверхности вдоль вектора

Объем создается путем протяжки поверхности в направлении заданном вектором. Определять расстояние протяжки (distance) необязательно. Если оно не указано, то поверхность перемещается на расстояние, равное длине вектора. Опция switchside изменяет направление протяжки на противоположное. Опция include_mesh создает объемную сетку, если сетка была построена на поверхности, как это показано на Рис. 1. Опция keep позволяет сохранить начальную поверхность при создании объема.

Для создания поверхности вдоль вектора можно использовать команду:

sweep surface {<surface_ID_range>} vector <x_vector y_vector z_vector> [distance <distance_value>] [switchside] [draft_angle <degrees>] [draft_type <0 | 1>] [rigid] [anchor_entity] [include_mesh] [keep] [merge]

Рис. 1 - Создание при протяжке объемной сетки, когда сетка была на поверхности

Протяжка поверхности по дуге окружности

Возможно создание объема с помощью протяжки поверхности по дуге окружности, которая задается начальной точкой и касательным вектором или координатной осью. Ось вращения задается либо с помощью начальной точки и вектора, либо с помощью координатной оси. Эта ось должна лежать в плоскости перемещаемых поверхностей. Параметр angle определяет угловую величину дуги (см. Рис. 2). Параметр steps по умолчанию имеет значение 0 и создает круговую траекторию. При задании для этого параметра ненулевой положительной величины n траектория состоит из n линейных сегментов, каждый из которых отстоит на угол angle/(n-1) от начальной точки. Опция include_mesh создает объемную сетку, если сетка была построена на поверхности, как это показано на Рис. 2. Опция keep позволяет сохранить начальную поверхность при создании объема.

Для создания поверхности по дуге окружности можно использовать команду:

sweep surface {<surface_ID_range>} axis {<xpoint ypoint zpoint xvector yvector zvector> | Xaxis | Yaxis | Zaxis} angle <degrees> [switchside] [steps <number_of_sweep_steps>] [draft_angle <degrees>] [draft_type <0 | 1>] [rigid] [anchor_entity] [include_mesh] [keep] [merge]

Рис. 2 - Объем, созданный в результате протяжки поверхности по дуге окружности на угол 50 градусов

Если указывается диапазон поверхностей, то они должны принадлежать к разным телам.

Протяжка поверхности вдоль кривой

Объем может быть создан путем протяжки плоской поверхности вдоль кривой.

Для создания поверхности вдоль кривой можно использовать команду:

sweep surface <surface_ID_range> along curve <curve_ID> [draft_angle <degrees>] [draft_type <0 | 1 | 2>] [rigid] [anchor_entity] [include_mesh] [keep] [individual] [merge]

Один из концов кривой должен лежать на плоскости и кривая не должна быть касательной к ней. В качестве направляющей кривой может служить и прямая линия, как это показано на Рис. 3. Для опции draft_type можно использовать дополнительное значение 2, что предполагает естественные изгибы боковой поверхности создаваемого объема. Опция include_mesh создает объемную сетку, если сетка была построена на поверхности. Опция keep позволяет сохранить начальную поверхность при создании объема.

Рис. 3 - Цилиндрический объем, созданный в результате протяжки плоской круглой поверхности вдоль прямой линии

Протяжка плоскости в перпендикулярном направлении

Для создания объема протяжка плоскости может быть выполнена в направлении, перпендикулярном к ней:

Для протяжки плоскости в перпендикулярном направлении можно использовать команду:

sweep surface <surface_ID_range> perpendicular distance <distance> [switchside] [draft_angle <degrees>] [draft_type <integer>] [anchor_entity] [include_mesh] [keep] [merge]

Опция keep позволяет, как уже упоминалось выше, сохранить при создании объема начальную поверхность (см. Рис. 4).

Рис. 4 - Начальная поверхность, сохраненная с помощью опции keep

Протяжка поверхности к объему

Приводимая ниже команда позволяет выполнить протяжку поверхности к указанному объему:

sweep surface <surface_ID_range> target {volume | body} <ID> [direction {options}] [plane {options}]

Использование параметра direction описывается в подразделе Задание направления. Если этот параметр не указан, то направление протяжки выбирается перпендикулярным к исходной поверхности. Параметр plane применяется для определения плоскости, до которой выполняется протяжка; для дополнительной информации см. подраздел Задание плоскости.

Создание тела путем смещения

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

Для создания тела путем смещения можно использовать команды:

create body offset [from] Body <ID_range> distance <value>

 

create sheet offset from surface <ID_list> offset <val> [surface <ID_list> offset <val>] [surface <ID_list> offset <val> ...] [preview]

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

Создание оболочки путем продления поверхностей

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

Для создания оболочки путем продления поверхностей можно использовать команду:

create sheet extended from surface <ID_list> [intersecting <entity_list>] [extended {percentage | absolute} <val>] [preview]

Эта команда подобна команде create surface extended from surface. При продлении новые поверхности могут быть подогнаны под размеры тела. Осуществимо одновременное продление нескольких ерхностей и пересечение тех, что указаны в перечне. Характерный пример применения команды представлен на Рис. 5.

Рис. 5 - Пример оболочки (внизу), созданной путем продления исходного набора поверхностей (вверху)

Вращение кривой вокруг оси

Создание объема возможно при вращательном движении кривой или набора кривых вокруг заданной оси, в том числе, повороте на определенный угол. Эта операция похожа на протяжку поверхности по дуге окружности. Параметры steps, draft_angle и draft_type описаны выше. Чтобы создать объем, следует использовать опцию make_solid; без нее будет сформирована поверхность, а не твердое тело. При задании опции rigid кривая или набор кривых остаются ориентированными в исходном состоянии, а не вращаются вокруг оси.

Для создания объема при вращательном движении кривой можно использовать команду:

sweep curve <curve_ID_range> {axis <xpoint ypoint zpoint xvector yvector zvector> | Xaxis | Yaxis | Zaxis} angle <degrees> [steps <number_of_sweep_steps>] [draft_angle <degrees>] [draft_type <integer>] [make_solid] [rigid]

Соединение поверхностей с формированием замкнутого объема

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

Геометрия должна быть определена в формате ACIS (она может быть импортирована в виде файлов IGES, STEP или FASTQ). Описываемая операция применима в ограниченных пределах и для фасеточной геометрии - для создания объемов из ограничивающих поверхностей в виде фасет.

Опция heal (действующая по умолчанию) реализует попытку закрыть малые поверхностные зазоры; при использовании noheal такой попытки не делается. Опция keep обеспечивает сохранение исходных поверхностей.

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

Для соединения поверхностей с формированием замкнутого объема можно использовать команду:

create {body | volume} surface <surface_ID_range> [heal | noheal] [keep] [sheet]

Вытягивание тела от одной поверхности до другой

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

Для вытягивания тела от одной поверхности до другой можно использовать команду:

create {body | volume} loft surface <IDs> [guide curve <ID_list> [global_guides]] [takeoff_factors <one value per surface in order>=.001] [takeoff_vector surface <ID> {direction options}] [match vertex <IDs>] [closed] [preview] [show_matching_curves]

Примечание: Идентификаторы исходных поверхностей (IDs) должны быть указаны в порядке использования при вытягивании.

Для справки о параметре direction см. подраздел Определение положений, направлений и осей.

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

Вытягивание может применяться для разделения тела с целью генерации более регулярной сетки. На Рис. 6 показана объемная сетка, полученная путем протяжки поверхностной сетки, построенной по схеме Неструктурированная сетка (в направлении нормали к поверхности). На Рис. 7 представлен этот же объем, но после того, как исходная и конечная поверхности протяжки были использованы для создания вытягиваемого тела (в районе криволинейного выреза), общий объем был разделен на две части с помощью тела, полученного вытягиванием, и эти части подвергнуты слиянию. Желтым отмечена часть объема, соответствующая вытягиваемому телу с первоначальной сеткой. Другая часть, выделенная лиловым, разбита на элементы заново по схеме Кусочно-регулярная сетка. Как видно, результирующая сетка стала преимущественно структурированной.

Рис. 6 - Объемная сетка, полученная путем протяжки поверхностной сетки, построенной по схеме Неструктурированная сетка

Рис. 7 - Этот же объем после разделения вытягиванием на две части: малая желтая по-прежнему разбита по схеме Неструктурированная сетка, а большая лиловая - по схеме Кусочно-регулярная сетка

Придание толщины поверхности

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

Для придания толщины можно использовать команду:

thicken [volume | BODY] <ID> depth <depth> [both]

Протяжка поверхности по нормали к плоскости

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

Для протяжки поверхности по нормали к плоскости можно использовать следующую команду:

thicken [volume | BODY] <ID> depth <depth> [both]

sweep surface <ID> target plane <options>

Протяжка поверхности в заданном направлении

Для создания объема протяжку поверхности можно выполнить в заданном направлении. Как определить направление - см. подраздел Задание направления.

Для протяжки поверхности в заданном направлении можно использовать следующую команду:

sweep surface <surface_ID_range> direction (options) [switchside] [draft_angle <degrees>] [draft_type <integer>] [rigid] [anchor_entity] [include_mesh] [keep] [merge]

Пояснение различных опций этой команды дано выше. На Рис. 8 представлен результат ее выполнения без использования опции include_mesh.

Рис. 8 - Результат протяжки поверхности в направлении оси X без использования опции include_mesh

Протяжка поверхности по винтовой линии

Возможно образование объема путем протяжки поверхности (или кривой) по винтовой линии (спирали), как это показано на Рис. 9.

Для протяжки поверхности по винтовой линии можно использовать следующую команду:

sweep {surface | curve} <ID_range> helix {axis <xpoint ypoint zpoint xvector yvector zvector> | xaxis | yaxis | zaxis} thread_distance <val> angle <val> [RIGHT_HANDED | left_handed] [anchor_entity] [include_mesh] [keep] [merge]

Указание нескольких поверхностей, принадлежащих одному и тому же телу, может привести к созданию недопустимых тел и не рекомендуется.

Винтовая линия определяется с помощью следующих параметров:

axis - ось;

thread_distance - шаг винта (расстояние между сегментами спирали, отстоящими друг от друга на 360 градусов;

angle - угол спирали в градусах;

RIGHT_HANDED/left_handed - направление ее закручивания (правый или левый винт).

Рис. 9 - Объем, образованный путем протяжки прямоугольной поверхности по винтовой линии

Копирование существующего объема

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

Для копирования существующего объема: