Альтернатива cmds.xform в сыром Python - PullRequest
1 голос
/ 24 мая 2019

Я написал код в Maya (python), который дает мне положение объекта в Maya.Как вы можете видеть в первой строке, я импортирую maya.cmds, а во второй строке использую его

import maya.cmds as cmds
a_end = cmds.xform('j_l_ankle', q=1, ws=1, t=1)

Я хотел бы получить тот же вывод в базовом коде Python без импорта maya.cmds.Это означает, что я хотел бы найти альтернативу функции xform в baisc python.

1 Ответ

0 голосов
/ 23 июня 2019

Python для Maya, доступ к которому можно получить через модуль maya.cmds, является своего рода оболочкой Python для вызова методов MEL. Буквально вы вызываете методы MEL, используя своего рода синтаксис Python. Это дает вам преимущество использования библиотек Python для манипулирования данными в Maya (cmds.xform не исключение).

Большинство команд Maya Embedded Language реализовано в модуле maya.cmds. Но все еще есть случаи, когда в Python должен использоваться только MEL, потому что Maya не полностью включает Python во все аспекты своей архитектуры. И, я должен сказать, что Autodesk Maya преобразует все свои команды MEL в Python процедурно.

Так что модуль Python maya.cmds сильно зависит от нативного MEL. Привязки Python для всех собственных команд Maya находятся в модуле maya.cmds. Для доступа к этим командам необходимо импортировать maya.cmds в каждом сеансе.

xform пример команды:

код MEL:

sphere -n Earth;
xform -r -ro 0 0 45;

Python эквивалент:

import maya.cmds as cmds

cmds.sphere(n = 'Earth')
cmds.xform(r = True, ro = (0, 0, 45))

Как вы можете видеть, вы должны общаться с собственными командами MEL через модуль maya.cmds, когда пишете сценарии с использованием Python.

...