Нажатие на кнопку “Purge” чистит текущую открытую сцену – удаляет из нее все неиспользуемые объекты (меши, ноды, материалы, текстуры и т.д.). Однако эта кнопка расположена очень неудобно, в хедере Аутлайнера и видна только в режиме “Orphan Data”. Для быстрого доступа к этой кнопке ее можно вынести в хедер 3D вьюпорта.
Нажатие на кнопку “Purge” вызывает оператор “outliner.orphans_purge”.
Напишем функцию для отрисовки кнопки, которая будет вызывать этот же самый оператор:
1 2 |
def purge_button(self, context): self.layout.operator("outliner.orphans_purge", text="Purge") |
Добавим вызов этой функции в хедер окна 3D вьюпорта:
1 |
bpy.types.VIEW3D_HT_tool_header.prepend(purge_button) |
Полный код:
1 2 3 4 5 6 |
import bpy def purge_button(self, context): self.layout.operator("outliner.orphans_purge", text="Purge") bpy.types.VIEW3D_HT_tool_header.prepend(purge_button) |
После выполнения этого кода в текстовом редакторе (Text Editor) в хедер 3D вьюпорта будет добавлена кнопка “Purge”, которая будет вызывать удаление неиспользуемых объектов точно так же, как из Аутлайнера.
Спасибо. Очень помог.
А как разместить кнопку не в начале, а в центре или конце?
В конце – использовать append вместо prepend.
Чтобы вставить кнопку в середину уже существуюего набора в меню, нужно полностью его переопределить на кастомное.
Спасибо!