用于创建Toolshelf面板的Blender脚本不会产生任何结果

时间:2012-07-15 05:12:21

标签: python python-3.x blender blender-2.61

我找到了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根本不知道。

3 个答案:

答案 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)

您定义了一个类,但您从未实例化它。如果您希望脚本执行任何操作,则需要对该类执行某些操作。但是,目前还不清楚会是什么。看起来你的班级真的没有做任何事情;它似乎是某种“面板”,可以添加到更大的界面中。

您应该查看文档以查找您尝试执行的操作的示例。据推测,您需要创建的不仅仅是一个面板。