Translate this Website to:

星期三, 7月 10, 2013

My First Blender Python Script 4 : 為 Addon 新增按鈕


上一篇的程式還未將 addon 指定快速鍵或加在功能表中,必須透過在 3D 視窗按空白鍵呼叫功能搜尋面板搜尋指令。現在我們就為 addon 在工具側欄增加一個按鈕。

import bpy
#
# MaterialsUseNodes 這個物件能根據目前使用的著色引擎,使用或停用材質節點
#
class MaterialsUseNodes(bpy.types.Operator):
    bl_idname = "object.materials_use_nodes"
    bl_label = "Use/Unuse Nodes"
    
    def execute(self, context):
        currentScene = bpy.context.scene.name
        renderer = bpy.data.scenes[currentScene].render.engine
 
        if renderer == "CYCLES":
            for material in bpy.data.materials:
                material.use_nodes = True
        else:
            for material in bpy.data.materials:
                material.use_nodes = False
        return {'FINISHED'}
#
#  為 MaterialsUseNodes 物件在工具側欄新增一面板及按鈕
#  注意面板 class 名稱的第一個字母也必須是大寫字母。 
#
class ToolsPanel(bpy.types.Panel):
    # 面板名稱
    bl_label = "Materials Use/Unuse Nodes"
    # 面板顯示在 3D 視窗
    bl_space_type = "VIEW_3D"
    # 讓面板顯示在工具側欄
    bl_region_type = "TOOLS"
    # 讓面板顯示在 Tools 分頁,也可自創一個分頁
    bl_category = "Tools"
    # 此工具只在物件模式出現
    bl_context = "objectmode"    

    # draw()函數,在工具側欄繪製面板及按鈕
    def draw(self, context):
        self.layout.operator("object.materials_use_nodes")
#   
#   註冊面板按鈕與使用/停用節點功能
#
def register():
    bpy.utils.register_module(__name__)

def unregister():
    bpy.utils.unregister_module(__name__)

if __name__ == "__main__":
    register()

References:
Blender 學習筆記

Blender 學習筆記

0 意見 Comments:

張貼留言

Related Posts Plugin for WordPress, Blogger...