【问题标题】:custom shelf script not running when maya is launched -error启动 Maya 时自定义架子脚本未运行 - 错误
【发布时间】:2019-06-26 12:24:37
【问题描述】:

我想在 Maya 2018 启动时创建一个自定义架子。我正在调用一个脚本来在 userSetup.py 文件中构建架子。如果在启动后在脚本编辑器中运行该脚本将创建架子,但在启动时调用时会引发错误。

#userSetup.py
#-----
import maya.cmds as cmds
import sys
sys.path.append('/Users/alfredwinters/Desktop/python/scripts/')
import lighting_tools_shelf
cmds.evalDeferred("lighting_tools_shelf")

#lighting_tools_shelf.py
#----
import maya.cmds as cmds
cmds.shelfLayout("lighting_shelf", p="ShelfLayout")

这是我在启动时调用脚本时遇到的错误。

执行userSetup.py失败

Traceback(最近一次调用最后一次):

文件“/Users/alfredwinters/Library/Preferences/Autodesk/maya/2018/scripts/userSetup.py”,第 8 行,在 导入 Lighting_tools_shelf

文件“/Users/alfredwinters/Desktop/python/scripts/lighting_tools_shelf.py”,第 19 行,位于 custom_shelf cmds.shelfLayout(name, p="ShelfLayout")

RuntimeError:shelfLayout:找不到对象“ShelfLayout”。

【问题讨论】:

    标签: python maya


    【解决方案1】:

    由于您在调用cmds.shelfLayout(name, p="ShelfLayout")时没有提到错误

    RuntimeError: shelfLayout: Object 'ShelfLayout' not found.
    

    它只是说 ShelfLayout 对象在给定的上下文中不可用。 ShelfLayout 表示包含所有 Maya Shelves 的主要布局。但它不应该按原样使用。您应该必须从全局变量中获取它。

    例子:

    import maya.mel as mel
    main_shelf = mel.eval('$tempMelVar=$gShelfTopLevel')
    
    # Now main_shelf holds complete path the the layout
    # Now you can use it as parent for other shelf layouts
    cmds.shelfLayout(name, p=main_shelf)
    

    希望这能解决您的问题。 谢谢

    【讨论】:

      猜你喜欢
      • 2019-06-25
      • 1970-01-01
      • 2022-10-20
      • 1970-01-01
      • 2021-12-13
      • 2021-09-04
      • 1970-01-01
      • 2016-08-23
      • 1970-01-01
      相关资源
      最近更新 更多