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

 

Создание поверхностей

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

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

Создание поверхности по ограничивающим кривым

Первый вариант - это создание аналитической или сплайновой поверхности, которая аппроксимирует ограничивающие ее кривые.

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

create surface curve <curve_ID_1> <curve_ID_2> <curve_ID_3>...

Другая версия этой команды создает новую поверхность из набора кривых, которые уже принадлежат определенной поверхности. Эти кривые должны лежать на поверхности и образовывать замкнутый контур.

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

create surface curve <ID_list> on surface <surface_ID>

Параметр on surface обеспечивает новой поверхности такое же геометрическое представление, как и у существующей поверхности.

Создание поверхности по вершинам или узлам

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

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

create surface [vertex | node | <ID_list> [on surface <surface_ID> {project} ]

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

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

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

create surface from surface <surface_ID>

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

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

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

create surface extended from surface <surface_ID>

Таблица 1 - Возможности создания поверхности путем продления существующей поверхности

Поверхность

Возможное продление

Сферическая

Полная сфера

Плоскость

Бесконечная плоскость

Тороидальная

Поверхность полного тора

Коническая или цилиндрическая

Бесконечная коническая или цилиндрическая поверхности

Сплайновая

До степени определения сплайна

Создание плоской поверхности (плоскости)

Плоскую поверхность (плоскость) можно создать 4 способами:

По умолчанию каждая из этих команд создает поверхность, которая является достаточно протяженной, чтобы обеспечить пересечение с ограничивающим прямоугольником для всей модели и которая имеет минимальную площадь. Можно увеличить размер поверхности в определенное число раз либо на определенную величину. Предварительный просмотр создаваемой плоскости возможен с помощью команды draw plane [with].

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

create planar surface [with] plane vertex <v1_ID> [vertex] <v2_ID> [vertex] <v3_ID> [intersecting] body <ID_range>] [extended percentage | absolute <val>]

 

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

create planar surface [with] plane surface <surface_ID> [intersecting] body <ID_range>] [extended percentage | absolute <val>]

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

create planar surface [with] plane {Xplane | Yplane | Zplane} [offset <val>] [intersecting] body <ID_range>] [extended percentage | absolute <val>]

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

create planar surface [with] plane normal to curve <curve_ID> {fraction <f> | distance <d> | position <xval><yval><zval> | close_to vertex <vertex_ID>} [[from] vertex <vertex_ID> (optional for 'fraction' & 'distance')] [intersecting] body <ID_range>] [extended percentage | absolute <val>]

Создание поверхности по сетке

Поверхность может быть создана проходящей через множество кривых в U-направлении и множество кривых в V-направлении (эти множества U- и V-кривых пересекаются и подобны сетке). Первый вариант соответствующей команды использует для создания поверхности непосредственно заданные кривые, которые должны находиться достаточно близко друг к другу. Второй вариант команды использует для создания поверхности имеющуюся сетку, сгенерированную по схеме Регулярная сетка или Кусочно-регулярная сетка.

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

create surface net U curve <ID_list> V curve <ID_list> [tolerance <value>] [HEAL | noHeal]

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

create surface net [from] [mapped] surface <ID_list> [tolerance <value>] [HEAL | noHeal]

По умолчанию создаваемые поверхности подвергаются сглаживанию -  параметр (HEAL).

Создание смещенной поверхности

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

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

create surface offset [from] surface <ID_list> distance <val>

Эта команда производит смещение поверхности без ее продления или обрезки. Альтернативой является команда создания плоского тела путем смещения, в которой используются такие опции для обеспечения связи между смещаемыми поверхностями, как показано на Рис. 1. В левой части рисунка поверхности смещены с помощью команды create surface offset, а в правой - посредством упомянутой команды создания плоского тела путем смещения.

Рис. 1 - Смещение поверхностей без продления (слева) и с продлением (справа)

Создание параметризованной поверхности

На основе множества кривых, упорядоченных определенным образом (расположенных параллельно, эквидистантно и т.п.), можно создать параметризованную поверхность.

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

create surface skin curve <ID_list>

Протяжка кривых

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

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

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] [include_mesh] [keep] [rigid]

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

sweep curve <curve_ID_range> vector <xvector yvector zvector> [distance <distance>] [draft_angle <degrees>] [draft_type <integer>] [include_mesh] [keep] [rigid]

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

sweep curve <curve_ID_range> along curve <refcurve_ID_range> [draft_angle <degrees>] [draft_type <integer>] [include_mesh] [keep] [rigid]

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

sweep curve <curve_ID_range> target plane <options>

sweep curve <curve_ID_range> target {volume | body} <ID> direction {options} [plane <options>] [unite]

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

Приводимая во всех вариантах команды опция include_mesh создает поверхностную сетку, если сетка была построена на кривой (см. Рис. 2). Опция keep позволяет сохранить начальную кривую при создании поверхности.

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

Вариант команды sweep curve ... target plane выполняет протяжку до достижения целевой плоскости. Возможности определения плоскости описаны в подразделе Задание плоскости.

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

Другие опции:

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

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

Создание средней поверхности

Средняя поверхность -  равноотстоящая от пары поверхностей.

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

create midsurface {body | volume} <ID> surface <ID11> <ID12> ... <IDN1> <IDN2>

N обозначает число пар исходных поверхностей и, соответственно, количество одновременно создаваемых средних поверхностей (см. Рис. 3 и 4). Необходимо указать четное количество поверхностей и команда сгруппирует их по парам в том порядке, в котором они указаны. Создаваемая средняя поверхность может быть обрезана определенным телом или объемом с указанным <ID>.

Рис. 3 - Две средние поверхности, созданные для двух пар исходных плоских поверхностей

Рис. 4 - Две средние поверхности, созданные для двух пар цилиндрических поверхностей

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

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

create midsurface {body | volume} <ID_range> auto [delete] [transparent] [thickness] [limit <lower_bound> <upper_bound>] [preview]

Соответствующий пример представлен на Рис. 5; для него применялась команда:

create midsurface volume 1 auto delete

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

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

auto - автоматическое построение средней поверхности (если этого параметра нет, то требуется задание пары поверхностей для создания средней поверхности между ними).

transparent - отображение объемов, в которых были построены средние поверхности, в прозрачном виде

thickness - назначение созданной средней поверхности 2D-свойств.

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

Создание профиля сварного соединения

Возможно создание поверхности, отображающей профиль сварного соединения.

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

create surface weld [root] location {options} weld surface <ID_list> length <val> [<val2>]

Моделирование сварного соединения выполняется путем протяжки поперечного сечения сварного шва вдоль корневой кривой, соответствующей линии пересечения свариваемых поверхностей (см. Рис. 6) и объединения нового тела с исходным геометрическим объектом. Ниже приведен пример команды для создания профиля сварного соединения в модели, показанной на Рис. 6:

create surface weld root location vertex 25 weld surface 13 14 length 2

Рис. 6 - Пример создания профиля сварного соединения

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

Создание поверхности из элементов сетки

Поверхность может быть создана из поверхностных сеток, границ объемов с построенной сеткой и/или из отдельных прямоугольных элементов сетки (см. Рис. 7).

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

create ACIS [from] {surface <ID_range> | volume <ID_range> | face < ID_range> [individual]} [tolerance <value>]

Опция individual обеспечивает создание одновременно нескольких поверхностей, без их объединения в одну поверхность, с сохранением собственных начальных границ. Опция tolerance позволяет определить точность построения новой поверхности. Значение по умолчанию составляет 0,001. Если с этой точностью создание поверхности оказывается невозможным, его можно увеличить.


Рис. 7 - Поверхность в геометрическом представлении ACIS, созданная из прямоугольных элементов сетки

Создание плоского круга

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

create surface circle radius <value> {xplane | yplane | ZPLANE}

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

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

create surface circle center vertex <v1_ID> <v2_ID> <v3_ID>

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

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

create surface circle vertex <v1_ID> <v2_ID> <v3_ID>

Создание параллелограмма

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

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

create surface parallelogram vertex <v1_ID> v2_<ID> <v3_ID>

Создание плоского эллипса

Возможно создать двумерную эллиптическую поверхность с центром в исходной точке, задав как минимум большой радиус. Эллипс лежит в плоскости XY (ZPLANE); его большая полуось ориентирована в X-направлении, а меньшая полуось - соответственно в Y-направлении.

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

create surface ellipse major radius <value> [minor radius <value>] [xplane | yplane | ZPLANE]

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

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

create surface ellipse vertex <v1_ID> <v2_ID> <v3_ID>

Создание прямоугольника

Возможно создать прямоугольную поверхность с центром в начале координат. Если задано только значение ширины (width), то создается квадрат. По умолчанию ширина соответствует X-направлению, а высота - Y-направлению, т.е. поверхность прямоугольника лежит в плоскости XY (ZPLANE).

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

create surface rectangle width <value> [height <value>] [xplane | yplane | ZPLANE]