4

我找到了本教程,并一直在尝试在工具架中创建自己的面板,但我的面板不起作用,没有明显的原因。

我正在使用 Blender 2.63,并且我还在 Blender 2.58 和 2.56 中尝试了完全相同的脚本,两者都具有完全相同的结果。没有什么。

我通过脚本的次数超过了我的数,我没有看到任何拼写错误或不正确的单词,但它仍然没有任何作用。更糟糕的是我没有收到任何错误消息。

当我在文本编辑器中单击“运行脚本”按钮时,我得到的唯一消息是我已经运行了脚本。在工具架中,它以与添加多维数据集相同的方式显示在底部,只是使用多维数据集,您可以获得一些选项,例如多维数据集的位置/比例等。它还在信息窗口中显示为:

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 根本不知道。

4

3 回答 3

2

您需要注册课程..将其添加到脚本的底部

bpy.utils.register_class(customToolshelfPanel)

并确保在关闭搅拌机后删除脚本,您还需要取消注册它

bpy.utils.unregister_class(customToolshelfPanel)

您可能还想在运行脚本后按 T 几次以更新界面。

于 2012-07-15T05:19:03.073 回答
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 中注册它。

于 2012-07-15T05:19:03.497 回答
0

您定义了一个类,但从未实例化它。如果你想让你的脚本做任何事情,你需要对那个类做一些事情。但是,尚不清楚那会是什么。看起来您的班级并没有真正做任何事情。它似乎是某种“面板”,可以添加到更大的界面中。

您应该查看文档以找到您正在尝试做的事情的示例。大概您需要创建的不仅仅是一个面板。

于 2012-07-15T05:19:11.187 回答