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

 

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

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

Автоматическое слияние

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

merge all [group | body | surface | curve | vertex] [group_results][tolerance <value>]

При использовании этой команды все объекты (или все объекты указанного типа) проверяются на геометрическое и топологическое соответствие и в случае успешного прохождения проверки подвергаются слиянию. При указании типа объектов слияние выполняется только для вершин, которые входят в состав указанных объектов. Например, по команде merge all surface сливаются только вершины, являющиеся частью поверхностей. Вершины, которые лежат в области слияния, но не являются частью какой-либо поверхности, слиянию не подлежат.

Приведенный вариант слияния рекомендуется использовать для больших моделей. Но если при этом возникнут проблемы, рекомендуется проводить слияние объектов по-отдельности.

Слияние указанных объектов

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

merge {group | body | surface | curve | vertex} <ID_range>[with {group | body | surface | curve | vertex} <ID_range>][group_results][tolerance<value>]

Эта команда обеспечивает проверку возможности слияния и выполнение самой операции слияния для объектов, указанных в списке <ID_range>.

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

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

merge vertex <ID> with vertex <ID> force

merge curve <ID> with curve <ID> force

merge surface <ID> with surface <ID> force

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

Предотвращение слияния

Предотвратить нежелательное слияние объектов можно с помощью команд:

body <ID_range> merge [on | off]

volume <ID_range> merge [on | off]

surface <ID_range> merge [on | off]

curve <ID_range> merge [on | off]

vertex <ID_range> merge [on | off]

Если задан параметр merge off, то указанные в списке объекты не будут сливаться с остальными.

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

Команда

set merge test bbox {on | OFF}

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

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

set merge test InternalSurf {on | OFF | spline}

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