我怎样才能在maya python api中获得翻译值?

时间:2015-04-20 08:35:12

标签: python api maya maya-api

其实我是api的新手,我正在尝试获取翻译值(x,y,z),但问题是当我只指定“translate”而不是“translateX”,“translateY”,“ translateZ“在每个单独的行中。有没有办法得到我真正想要的东西?

这是代码:

import maya.OpenMaya as om

selected = om.MSelectionList()
om.MGlobal.getActiveSelectionList(selected)

obj = om.MObject()
selected.getDependNode(0,obj)

print(om.MFnDependencyNode(obj).findPlug("translateX").asFloat())
print(om.MFnDependencyNode(obj).findPlug("translateY").asFloat())
print(om.MFnDependencyNode(obj).findPlug("translateZ").asFloat())
谢谢......

1 个答案:

答案 0 :(得分:1)

translate属性是复合属性。在Maya API中,您必须单独查询复合属性的每个子属性,以便检索复合属性的完整值。

但MEL getAttr()命令可以一次性检索translate属性的值。由于您使用的是Python,因此可以在同一脚本中将MEL命令和调用混合到Maya API中:

import maya.OpenMaya as om
import maya.cmds as cmds

selected = om.MSelectionList()
om.MGlobal.getActiveSelectionList(selected)

obj = om.MObject()
selected.getDependNode(0,obj)

depNodeName = om.MFnDependencyNode(obj).name()

print(cmds.getAttr(depNodeName + '.translate')[0])