bl_idname = "object.align_z" bl_label = "对齐Z" bl_options = {'REGISTER', 'UNDO'} def execute(self, context): selected = context.selected_objects if len(selected) < 2: self.report({'WARNING'}, "需要选择至少两个物体") return {'CANCELLED'} active = context.active_object for obj ...
bl_idname:面板的内部名称。是唯一的标识符,用于在Blender内部引用面板。通常以OBJECT_PT_为前缀,后跟一个描述性名称 bl_space_type:面板所在的编辑器类型,现在这个面板在3D视图编辑器中 bl_region_type:面板所在的区域类型 bl_category:面板所属的选项卡名称 class SimplePanel(bpy.types.Panel): bl_label = "...
菜单类 bl_idname 命名为 AAA_MT_menu_name,菜单是您在界面中找到的基于行的弹出窗口,一般都在窗口上部,例如window:菜单下拉列表。系统报错:不包含带前缀和后缀的"_MT_"?面板类 bl_idname 命名为 AAA_PT_panel_name,面板是界面操作最常用区域,例如 3D 视图右边变换操作部分。系统报错:不包含带前缀和...
bl_idname = "object.simple_operator" bl_label = "Tool Name" bpy.utils.register_class(SimpleOperator) 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 这里用到了python的类的继承特性。这是官方文档的例子,但我觉得更符合对象的定义应该是: import bpy class BaseOperator: bl_idname = "objec...
layout.operator()函数获取一个操作符的bl_idname并创建一个标签由text = argument指定的按钮。我们不会在这里详细讨论布局对象,因为对于高级 GUI 来说它会变得非常复杂。我们将在本章后面详细讨论布局对象。 (可选)用装饰器@classmethod声明register()和unregister()函数,就像我们讨论bpy.types.Operator类一样。
bl_idname = "test.tst"; bl_label = "My Exporter"; bl_options = {'PRESET'};filename_ext = ".tst";object_count = 0;def __init__(self): passdef execute(self, context): print("Execute was called.");# Parse all the objects in the scene. ...
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') ...
bl_idname = 'scene.add_new_standoff' bl_label = 'New Standoff' bl_options = { "REGISTER", "UNDO" } def execute(self, context): name = "Standoff" standoff = context.scene.Standoff # <- set in standoff_props.register()
bl_idname 名称格式必须为 xx.xx 否则会抛出异常。 poll() 函数和 View3DPanel 中的 poll() 函数含义相同,返回 True 代表按钮可用,返回 False 代表按钮禁用。 invoke() 函数用于执行按钮被按下之后需要执行的指令,需要有返回值。 01.05 效果展示 02 面板位置 若我们想要在不同的编辑器的侧栏中添加自定义面板...
bl_idname = 'test.operator'bl_label = 'test'添加具有“文本”名称的字符串属性:text: bpy.props.StringProperty(name = 'text',default = '')并定义一个“执行”函数,在调用运算符时运行:def execute(self, context):print(self.text)return {'FINISHED'} 此函数打印"文本"属性的值,我们将在调用...