Переопределение контекста

Некоторые операторы в Blender можно вызывать только в той рабочей области, для которой они предназначены.

Если вызывать, например, оператор, предназначенный только для работы в области 3D вьюпорта в Python-консоли, оператор или просто не выполнится:

или вернет сообщение о неверном контексте:

Однако выполнить операторы в “не родной” рабочей области все же можно. Для этого в любой оператор можно передать первым неявным параметром указание на контекст рабочей области, в которой должен быть выполнен этот оператор. Этот параметр обычно называют “переопределенный контекст”.

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

Например для рабочей области 3D вьюпорта переопределенный контекст нужно составить следующим образом:

Главное здесь – указать нужную рабочую область – area, в нашем случае это область 3D вьюпорта “VIEW_3D”. Конечно, как минимум одна такая рабочая область должна быть открыта в окнах Blender.

Получив структуру переопределенного контекста, можно вызвать оператор, передавая ее первым параметром:

Полный код, который будет корректно исполняться из текстового редактора Blender:

Nikita

Автор: Nikita

Blender add-ons developer and articles writer.

0 0 голоса
Article Rating
Подписаться
Уведомить о
guest
0 Комментарий
Межтекстовые Отзывы
Посмотреть все комментарии