Перемещение вертексов в режиме редактирования

Для того чтобы перемещать точки меша при помощи Blender Python API не выходя из режима редактирования (EDIT мод), нужно использовать объект bmesh. С его помощью можно удобно манипулировать геометрией объекта.

Добавим в сцену куб (если вы удалили его ранее) Shift + a – Mesh – Cube и перейдем в режим редактирования, нажатием на клавишу Tab. Выделим все точки (a) и передвинем их куда-нибудь, нажав на клавишу g.

Теперь вернем геометрию в начало координат при помощи Python API.

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

Создадим объект типа bmesh, передав в параметрах указатель на данные объекта.

Получить доступ к вертексам куба мы можем через свойство bmesh.verts. Это список, где каждый элемент это объект, соответсвующий одному вертексу. Через него мы можем получить доступ к координатам вертекса.

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

Для примера переместим всю геометрию так, чтобы  первый вертекс оказался в начальной точке (origin).

Локальные координаты начальной точки равны (0.0, 0.0, 0.0).

Координаты первой точки геометрии:

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

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

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

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

0 Комментарий
Межтекстовые Отзывы
Посмотреть все комментарии