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

Мы можем привязывать к кнопкам на панели инструментов (T-Панель) не только системные операторы, но и пользовательские, созданные нами. Принцип подключения в Blender Python API – одинаковый, как для системных, так и для пользовательских операторов.

Для примера определим пользовательский оператор, добавляющий в сцену UV-Сферу в случайное место в пределах от 0 до 10.

Внутри функции execute() мы вызываем оператор добавления сферы в сцену, указывая в параметре location рандомные координаты от 0 до 10, однако здесь может быть любой ваш код.

Зарегистрируем наш пользовательский оператор в Blender API.

Далее определим класс для инструмента и его кнопки в T-панели.

Здесь для нас самое главное – кортеж bl_keymap, в котором мы прописываем привязку операторов к данному инструменту, и назначаем условия их срабатывания.

В нашем bl_keymap только один элемент, тоже кортеж, состоящий из трех элементов. Первый элемент – здесь мы указываем bl_idname нашего пользовательского оператора. Вторым элементом мы задаем действие при котором указанный оператор будет выполнен – клик левой кнопкой мышки. Третий элемент служит для передачи параметров в оператор, он нам сейчас не нужен, поэтому ставим None.

Регистрируем класс нашего инструмента в Blender Python API.

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

Теперь, когда в панели инструментов выбран наш инструмент TestTool и пользователь кликает левой кнопкой мышки по экрану вьюпорта, при каждом клике будет вызываться наш пользовательский оператор test.test, в результате выполнения которого в участок сцены с координатами от 0 до 10 будет добавляться UV-Сфера.

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

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