我找到了this教程并且一直在尝试在Toolshelf中创建我自己的Panel,但是我没有明显的原因。
我正在使用Blender 2.63,我也在Blender 2.58和2.56中尝试了完全相同的脚本,两者都具有完全相同的结果。 NOTHING。
我经历过的脚本次数超过了我可以计算的次数,我没有看到任何拼写错误或错误的单词,但它仍然没有做任何事情。更糟糕的是我没有收到任何错误消息。
当我点击文本编辑器中的“运行脚本”按钮时,我得到的唯一消息是我已经运行了脚本。在工具架中,它以与添加多维数据集时相同的方式在底部显示它,只有多维数据集为您提供多维数据集的某些选项(如位置/比例等)。它也在信息窗口中显示为:
bpy.ops.text.run_script()
这就是我的代码:
import bpy
class customToolshelfPanel(bpy.types.Panel):
bl_space_type = "VIEW_3D"
bl_region_type = "TOOLS"
bl_context = "objectmode"
bl_label = "Custom Toolshelf Panel"
def draw(self, context):
layout = self.layout
col = layout.column(align=True)
col.label(text="Add:")
col.operator("mesh.primitive_plane_add", icon="MESH_PLANE")
col.operator("mesh.primitive_cube_add", icon="MESH_CUBE")
任何帮助都会受到赞赏,因为如果出现问题,Blender根本不知道。
答案 0 :(得分:2)
您需要注册该类..将其添加到脚本的底部
bpy.utils.register_class(customToolshelfPanel)
并确保在关闭blender后删除脚本,您还需要取消注册
bpy.utils.unregister_class(customToolshelfPanel)
您可能还想在运行脚本后按T几次以更新界面。
答案 1 :(得分:0)
我还没有使用过2.5 / 2.6的新API(遗憾的是),但文档永远不会看起来不好看:http://www.blender.org/documentation/blender_python_api_2_57_release/bpy.types.Panel.html
示例代码:
import bpy
class HelloWorldPanel(bpy.types.Panel):
bl_idname = "OBJECT_PT_hello_world"
bl_label = "Hello World"
bl_space_type = 'PROPERTIES'
bl_region_type = 'WINDOW'
bl_context = "object"
def draw(self, context):
self.layout.label(text="Hello World")
bpy.utils.register_class(HelloWorldPanel)
您是否尝试过将此行添加到最后?
bpy.utils.register_class(customToolshelfPanel)
创建类是一回事,但您也需要在UI中注册它。
答案 2 :(得分:0)
您定义了一个类,但您从未实例化它。如果您希望脚本执行任何操作,则需要对该类执行某些操作。但是,目前还不清楚会是什么。看起来你的班级真的没有做任何事情;它似乎是某种“面板”,可以添加到更大的界面中。
您应该查看文档以查找您尝试执行的操作的示例。据推测,您需要创建的不仅仅是一个面板。