Аддон Blender: TimeMe
Аддон Blender для подсчета и фиксации времени работы над проектами.
Аддон или скрипт может содержать внутри себя несколько различных операторов, и не все они могут быть зарегистрированны в системе при выполнении функции register(). Чтобы убедиться, что нужный оператор зарегистрирован в API Blender, необходимо выполнить следующую команду:
1 |
hasattr(bpy.types, bpy.ops._operator_bl_idname_.idname()) |
где:
_operator_bl_idname_ – текстовое значение свойства оператора bl_idname.
Например для оператора:
1 2 3 4 5 6 |
class TestOperator(bpy.types.Operator): bl_idname = 'test.operator' bl_label = 'Test operator' def execute(self, context): pass |
команда проверки его регистрации в API будет выглядить так:
1 |
hasattr(bpy.types, bpy.ops.test.operator.idname()) |
Для того, чтобы установленный в Blender аддон начал работу его необходимо зарегистрировать – отметить чекбокс рядом с названием аддона в окне User Preferences – Add-ons.
Чтобы узнать, зарегистрован ли нужный аддон, необходимо выполнить следующую команду:
1 |
'add-on_name' in bpy.context.user_preferences.addons |
где:
add-on_name – имя файла аддона (без расширения .py) или имя пакета аддона, если он установлен пакетом.
Для того, чтобы перенести T- или N-панель на противоположную сторону рабочего окна нужно навести на панель курсор мышки и нажать клавишу F5.
Обновление аддона для Blender “UV-Int” до версии 1.0.1.
Добавлена возможность создавать разрезы на развертке по ребрам, не “взрывая” точки на лини разреза.
Для отладочного запуска разрабатываемого многофайлового аддона в Blender удобно использовать следующую систему. Однако описанный поход обладает одним недостатком: импортируемые в файле __init__.py модули становятся доступны только после выполнения самого файла (после того, как отработает функция register() ). Это означает, что любые обращения к импортируемым модулям до их регистрации вызовут ошибку. В большинстве случаев это не критично, однако вызовет проблемы, если в аддоне например используется наследование от класса, описанного в импортируемом модуле т.к. описание классов в модуле обрабатывается раньше инициализации аддона.
Чтобы получить больше свободы при работе с импортируемыми модулями, для отладки аддона можно использовать другой принцип – не запускать аддон непосредственно из директории разработки, а инсталлировать его в Blender и проверять работу сразу “на чистовую”. Однако ручная переустановка аддона требует выполнения определенного набора действий, что излишне затрудняет подобную отладку. Решить данную проблему можно проводя переустановку аддона для тестов в автоматическом режиме.
Отладка многофайлового аддона в Blender быстрой переустановкойRead More »
Установкой и удалением аддонов Blender можно управлять через python API. Для этого в скрипте нужно использовать следующие команды:
Деактивация аддона:
1 |
bpy.ops.wm.addon_disable(module = 'название аддона') |
Удаление аддона:
1 |
bpy.ops.wm.addon_remove(module = 'название аддона') |
Как удалить и установить аддон Blender через python APIRead More »
Для того, чтобы создать для выделенного меша новое свойство CustomProperties через API Blender достаточно выполнить команду:
1 |
bpy.context.active_object['property_name'] = property_value |
где:
После выполнения команды новое свойство будет доступно в окне Properties панели Object подпанели Custom Properties.
Как и любое свойство объекта, созданное нами свойство обладает рядом параметров, просмотреть которые можно нажав на кнопку Edit. К этим параметрам также можно получить доступ через API.
Редактирование свойств Custom Properties меша через API BlenderRead More »
Доступ к активной развертке:
1 |
bpy.context.active_object.data.uv_layers.active |
Доступ к развертке по имени:
1 |
bpy.context.active_object.data.uv_layers['UVMap'] |