пользовательский скрипт полки не запускается при запуске Maya -error - PullRequest
0 голосов
/ 02 февраля 2019

Я хочу создать пользовательскую полку при запуске в 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

Файл "/ Users/alfredwinters/Desktop/python/scripts/lighting_tools_shelf.py ", строка 19, в custom_shelf cmds.shelfLayout (name, p =" ShelfLayout ")

RuntimeError: shelfLayout: объект 'ShelfLayout' не найден.

1 Ответ

0 голосов
/ 06 февраля 2019

Поскольку вы не упомянули ошибку при вызове cmds.shelfLayout(name, p="ShelfLayout")

RuntimeError: shelfLayout: Object 'ShelfLayout' not found.

Это просто говорит, что объект ShelfLayout недоступен в данном контексте. ShelfLayout представляет основной макет, содержащий все полки майя.Но это не должно быть использовано как есть.Вы должны получить его из глобальных переменных.

Пример:

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)

Надеюсь, это решит вашу проблему.Спасибо

...