Как определить был ли переопределен системный оператор

Для разрешения конфликтов между аддонами в Blender бывает необходимо знать, не был ли стандартный оператор Blender переопределен на пользовательский в каком-нибудь из сторонних аддонов.

Печать текста на экран 3D вьюпорта

При помощи модуля gpu в Blender Python API на рабочую область 3D вьюпорта можно выводить не только изображения, но и печатать произвольный текст. Печать текста осуществляется при помощи модуля blf – обертки над OpenGl.

Удаление цветов вершин со всех выделенных объектов

Информация о раскраске вершин меша хранится в его свойстве с именем vertex_colors, а также в его цветовых атрибутах color_attributes. Для того чтобы удалить с меша информацию о цветах его вершин, нужно очистить эти его свойства.

Переопределение списка выбранных объектов для оператора transform.translate

Для того чтобы оператор, вызванный из непредназначенного для него контекста, правильно выполнил свою работу, для него необходимо переопределить контекст при помощи bpy.context.temp_override.() Однако при помощи temp_override можно переопределять не только контекст вызова оператора, но и, например, стек выбранных объектов.

Выделение вертексов по цвету

У вертексов нет свойства “цвет”. Цвета вертексов, задаваемые раскраской в режиме Vertex Paint или любым другим способом, хранятся в атрибуте – отдельном списке значений. Для того чтобы выделить точку по цвету, назначенному ей в атрибуте, нужно связать индексы атрибута с индексом вертекса.

Создание кастомных иконок для инструментов Blender

Базовые иконки, использующихся в UI и операторах, прошиты внутри Blender, и поэтому мы не можем отредактировать или добавить новые иконки без полной перекомпиляции Blender. Иконки для панелей инструментов не привязаны сборке Blender, хранятся в отдельных файлах, и мы можем заменять или создавать и добавлять в Blender новые иконки инструментов.

Получение id для иконок инструментов

Id иконок инструментов соответствуют называниям файлов, в которых они хранятся и их можно получить просто посмотрев в соответствующую папку Blender. Однако идентификаторы иконок можно получить и через Blender Python API при помощи класса ToolSelectPanelHelper.