Перемещаем ориджин к центру выделения в меше

Перемещение центральной точки меша (ориджина) к текущему выделению – одна из наиболее рутинных операций при моделировании в Blender. Однако, отдельной такой операции в Blender нет и обычно приходится выполнять ее в несколько приемов – сначала перемещать в центр выделения 3D курсор, перемещать ориджин к 3D курсору, а затем, при необходимости, еще и возвращать 3D курсор на исходное место. Все эти операции можно объединить простым скриптом и выполнить в одно нажатие.

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

Для начала сохраним исходное положение 3D курсора. Оно понадобится нам позже, чтобы после всех операций вернуть курсор обратно.

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

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

Получаем указатель на рабочую область вьюпорта:

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

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

Переместим 3D курсор в центр выделения.

Теперь мы можем переместить ориджин к 3D курсору.

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

Все, теперь ориджин у нас находится точно в центре выделения.

Осталось вернуть 3D курсор на исходные координаты.

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

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

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