Выделяем ребра на границах меша в Blender

Часто бывает нужно выделить все граничные ребра меша – ребра, которые находятся на внешнем периметре меша, или расположены вокруг незакрытых полигонами областей меша. Такая операция может быть выполнена пользователем из пункта меню Select – Select Loops – Select Boundary Loop.

Когда пользователь выбирает этот пункт меню, вызывается оператор

Мы можем вызвать этот оператор программно в Python Console или в коде нашего скрипта или аддона.

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

Выделить все границы меша мы можем и без помощи оператора.

Мы можем воспользоваться свойством “is_boundary”, которое есть у всех ребер в bmesh. Это свойство указывает, является ли данное ребро границей меша (True) или нет (False).

Создадим объект bmesh и перекинем в него данные с текущего активного меша. Заодно переиндексируем ребра в объекте bmesh. Исходный меш в сцене должен находиться в режиме редактирования.

Для того чтобы не зависеть от исходного выделения, сбросим выделение для всех полигонов.

Теперь мы можем пройти в цикле по всем ребрам, и если ребро является граничным, выделить его.

Далее нам осталось только скопировать данные из bmesh обратно в исходный меш.

Теперь все граничные ребра на нашем меше будут выделены.

5 1 голос
Article Rating
Подписаться
Уведомить о
guest

0 Комментарий
Новые
Старые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии