- Рейтинг
- 2
Приветствую!
Я совсем новичок в Python, занялся его изучением неделю назад, чтобы написать себе для Блендера небольшой скрипт, который подсчитывает и выдает количество объектов в сцене по категориям:
В консоли результат выглядит так:
Теперь я хочу сделать так, чтобы эта информация выводилась автоматически в отдельной панели. Я нашел в Text Editor шаблоны различных панелей, но я вообще не могу понять, спустя три дня попыток разобраться, как интегрировать свой скрипт в скрипт панели, например, той же UI_Panel_Simple
Прошу, помогите мне разобраться и сделать так, чтобы в этой панели выводились данные, как выше в консоли...
Я совсем новичок в Python, занялся его изучением неделю назад, чтобы написать себе для Блендера небольшой скрипт, который подсчитывает и выдает количество объектов в сцене по категориям:
Python:
import bpy
from collections import defaultdict
counter = defaultdict(int)
for obj in bpy.data.collections['Stands'].all_objects:
dot_split = obj.name.split('.')
counter[dot_split[0].split('.')[0].strip()] += 1
for name, count in counter.items():
print(f"{name:35} | {count:1d}")
Теперь я хочу сделать так, чтобы эта информация выводилась автоматически в отдельной панели. Я нашел в Text Editor шаблоны различных панелей, но я вообще не могу понять, спустя три дня попыток разобраться, как интегрировать свой скрипт в скрипт панели, например, той же UI_Panel_Simple
Python:
import bpy
class HelloWorldPanel(bpy.types.Panel):
"""Creates a Panel in the Object properties window"""
bl_label = "Hello World Panel"
bl_idname = "OBJECT_PT_hello"
bl_space_type = 'PROPERTIES'
bl_region_type = 'WINDOW'
bl_context = "object"
def draw(self, context):
layout = self.layout
obj = context.object
row = layout.row()
row.label(text="Hello world!", icon='WORLD_DATA')
row = layout.row()
row.label(text="Active object is: " + obj.name)
row = layout.row()
row.prop(obj, "name")
row = layout.row()
row.operator("mesh.primitive_cube_add")
def register():
bpy.utils.register_class(HelloWorldPanel)
def unregister():
bpy.utils.unregister_class(HelloWorldPanel)
if __name__ == "__main__":
register()