API

Как просмотреть список добавленных в заголовок окна операторов

Для добавления оператора в заголовок (header) окна используются функции append и prepend в которых параметром нужно указать функцию отрисовки кнопки вызова оператора.

Например, чтобы добавить в заголовок окна вьюпорта (3D View) кнопку вызова оператора добавления в сцену куба, нужно определить функцию отрисовки оператора:

и добавить ее в заголовок окна:

Кнопка с оператором добавления куба в сцену появится в заголовке окна вьюпорта.

Просмотреть список всех функций, добавляющий операторы в заголовок окна можно с помощью свойства _draw_funcs метода draw.

Обратите внимание, что свойство _draw_funcs определяется в методе draw только если в него добавлены пользовательские операторы. Если пользовательские операторы не в заголовок не добавлялись, будет выдана ошибка

AttributeError: ‘function’ object has no attribute ‘_draw_funcs’

Как создать камеру с помощью Blender Python API

Для того, чтобы создать и добавить в сцену камеру при помощи Blender Python API нужно:

1. Создать блок данных для камеры.

2. Создать объект и связать его с созданным блоком данных.

3. Поместить созданный объект в сцену.

Камера будет помещена в текущую сцену в ее главную коллекцию.

Финальный код:

Как добавить объект из другого blend-файла в сцену с помощью Blender Python API

Blender Python API предоставляет возможность добавления или линковки объектов из других *.blend файлов в сцену при помощи оператора append.

Для того, чтобы добавить (append) объект (например – меш) из другого blend-файла нужно:

Использование браузера файлов FileBrowser для открытия и сохранения файлов

В скриптах и аддонах импорта-экспорта форматов, не поддерживаемых в Blender по умолчанию, пользователю необходимо предоставить возможность выбора файлов при помощи браузера файлов “FileBrowser”.

Для того, чтобы открыть браузер файлов, а после указания пользователем необходимых файлов, получить путь к ним, нужно использовать классы ImportHelper и ExportHelper.

Как установить нужные пакеты через pip в Blender

При разработке аддонов иногда необходимо использовать пакеты, не входящие в базовый набор Python-интерпретатора Blender. Чаще всего нужные пакеты входят в в Python Package Index (PyPI) и могут быть установлены в Blender через систему управления пакетами Pip.

Для Windows 10 см. обновленную версию статьи.

Менеджер пакетов Pip изначально уже установлен в Blender. Однако Blender не позволяет вызвать команду установки нужного пакета обычным способом “pip install имя_пакета”.

Как повернуть объект в Blender Python API

Для управления поворотом объекта служит свойство “rotation_euler”. Оно представляет собой список из трех значений, каждое из которых соответствует повороту вокруг координатных осей в радианах. В rotation_euler[0] хранится поворот вокруг оси X, в rotation_euler[1] – вокруг оси Y и в rotation_euler[2] – вокруг оси Z. Для того, чтобы повернуть объект вдоль нужной оси на нужный угол, нужно задать значение поворота в радианах в соответствующем нужной оси поле rotation_euler.

Например, чтобы повернуть активный объект вокруг оси X на 90 градусов, нужно выполнить следующий код:

math.radians удобно использовать для преобразования угла из градусов в радианы.

Как переключать flat – smooth шейдинг через Blender Python API

Режим отображения flat/smoot моделей регулируется через свойство “use_smooth” для каждого полигона модели.

Для того, чтобы включить режим сглаженного (smooth) отображения полигонов, нужно для каждого полигона установить свойство “use_smooth” равным True.

Для активного объекта:

Чтобы установить режим отображения флэт (flat) – для каждого полигона нужно установить “use_smooth” равным False.

Чтобы изменение отобразилось на экране, нужно вызвать обновление данных объекта.