我想在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”。
答案 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)
希望这可以解决您的问题。 谢谢