启动Maya时自定义架子脚本未运行-错误

时间:2019-02-01 22:04:13

标签: python maya

我想在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

回溯(最近通话最近一次):

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

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

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

1 个答案:

答案 0 :(得分:1)

您在致电cmds.shelfLayout(name, p="ShelfLayout")时没有提到错误

RuntimeError: shelfLayout: Object 'ShelfLayout' not found.

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

示例:

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)

希望这可以解决您的问题。 谢谢