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

 

Выполнение разрезов в сетке

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

set developer commands {on|off}

Термин "вырезание сетки" относится к изменению существующей сетки путем перемещения узлов в объект вырезания и изменения связности сетки таким образом, чтобы исходная сетка соответствовала новой геометрии. Предполагается, что поведение резки сетки аналогично резке полотна в том смысле, что процесс приводит к разложению исходной геометрии. Разница заключается в том, что декомпозиция выполняется на сетчатой геометрии и приводит к созданию виртуальных геометрических разделов. Основной корпус acis остается неизменным. У пользователя есть возможность определить, что разделено на разделы во время резки сетки: объем, только поверхности или ничего.

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

Этапы резки сетки включают в себя:

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

Координатная плоскость

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

Meshcut Volume <range> Plane {xplane|yplane|zplane} [offset <dist>]

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

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

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

Meshcut Volume <range> Plane Surface <surface_id>

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

Плоскость из 3 точек

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

Meshcut Volume <range> Plane Node <3_node_ids>

Расширенная поверхность

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

Meshcut Volume <range> Sheet [Extended From] Surface <surface_id>

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

Composite closest_pt surface <id> gme

Рассмотрите composite geometry для более подробного описания этой команды.

Параметры вырезания сетки

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

[PARTITION VOLUME|partition surface|no_partition]: По умолчанию вырезание сетки создает виртуальные разделы вырезаемого тома в соответствии с объектом вырезания. Этот параметр позволяет разрезать сетку, чтобы также создавать только разрезы поверхности или не создавать разрезы для объема или поверхностей.

[no_refine]: Этот параметр при вырезании сетки не уточняет сетку вокруг режущего объекта.

[no_smooth]: Этот параметр указывает вырезанию сетки не выполнять заключительный этап сглаживания после выполнения разреза.

Область применения для резки сетки

Ниже приведен список текущих возможностей и ограничений резки сетки.

Пример резки сетки

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

smooth_brick.gif

Рис. 1 Исходное, несвязанное тело

 

Шаг 1: Создайте стартовую сетку. На рисунке 2 ниже показана начальная сетка для этой проблемы. Команды для этой сетки следующие:

FIDESYS> create brick x 10
FIDESYS> create cylinder radius 3 z 15
FIDESYS> subtract 2 from 1
FIDESYS> volume 1 scheme sweep
FIDESYS> volume 1 size .75
FIDESYS> mesh volume 1

start_mesh.gif

Рис. 2 Начальная сетка

Шаг 2: Создайте режущий объект. На рисунке 3 показан объем, который будет использоваться для разрезания сетки. Команды следующие:

FIDESYS> create cylinder radius 2 z 15
FIDESYS> rotate body 3 about x angle 90

mesh_cyl.gif

Рис. 3 Начальная сетка и режущий объект

Шаг 3: Разрежьте сетку. На рисунке 4 показана новая сетка после того, как исходная сетка была вырезана. На данный момент у нас есть 3 взаимосвязанных объема. Команды для этого шага следующие:

FIDESYS> meshcut vol 1 sheet surface 13
FIDESYS> draw volume 1 4 5

cut_1.gif

Рис. 4 Сетка после разрезания сетки

Шаг 4: Заключительный шаг. На рисунке 5 показана окончательная сетка после удаления сетки двух дополнительных объемов. Команды следующие:

FIDESYS> delete mesh vol 4 5 propagate
FIDESYS> draw volume 1

 

cut_2.gif

Рис. 5 Окончательная сетка после удаления ненужных элементов