PYTHON 在 MAYA 中:获取所有属性
PYTHON in MAYA: get all attributes
我想知道是否有办法获取属性列表,我们可以使用 pymel.core.getAttr()
(或 maya.cmds.getAttr()
,对于 cmds 用户)。 __dict__
没有给出该列表。
import pymel.core as pmc
myCubeTrans, myCubeShape = pmc.polyCube()
>>> print myCubeTrans.__dict__
{'__apiobjects__': {'MDagPath': <maya.OpenMaya.MDagPath; proxy of <Swig Object of type 'MDagPath *' at 0x00000000132ECCC0> >, 'MObjectHandle': <maya.OpenMaya.MObjectHandle; proxy of <Swig Object of type 'MObjectHandle *' at 0x00000000132EC9F0> >, 'MFn': <maya.OpenMaya.MFnTransform; proxy of <Swig Object of type 'MFnTransform *' at 0x00000000132ECA80> >}, '_name': u'pCube1'}
>>> print myCubeShape.__dict__
{'__apiobjects__': {'MObjectHandle': <maya.OpenMaya.MObjectHandle; proxy of <Swig Object of type 'MObjectHandle *' at 0x000000001326DD50> >, 'MFn': <maya.OpenMaya.MFnDependencyNode; proxy of <Swig Object of type 'MFnDependencyNode *' at 0x00000000132ECD50> >}, '_name': u'polyCube1'}
所以我想知道python在执行pmc.getAttr(myCubeTrans.translate)
(或myCubeTrans.translate.get()
或myCubeTrans.getTranslation()
)
时在寻找什么地方
您可能正在寻找 cmds.listAttr()
可在此处获取文档:Autodesk Maya 2014 Python commands
用法:
import maya.cmds as cmds
cmds.polyCube( n="myCube")
print cmds.listAttr( "myCube" )
我建议您查看可用的标志以过滤某些属性(read
标志将满足您的需要,因为它只会 return 可读属性)。
注:
我没有检查 pyMel 版本,但我想这是实现的并且以相同的方式工作。
Update1:查看所有属性及其类型的快捷方式
for attr in cmds.listAttr( "myCube", r=True ):
try:
print attr, " ", cmds.getAttr("myCube."+attr)
except:
print "Error reading data"
更新2:
PyMel doc: listAttr 在 PyMel 中也可用。
我想知道是否有办法获取属性列表,我们可以使用 pymel.core.getAttr()
(或 maya.cmds.getAttr()
,对于 cmds 用户)。 __dict__
没有给出该列表。
import pymel.core as pmc
myCubeTrans, myCubeShape = pmc.polyCube()
>>> print myCubeTrans.__dict__
{'__apiobjects__': {'MDagPath': <maya.OpenMaya.MDagPath; proxy of <Swig Object of type 'MDagPath *' at 0x00000000132ECCC0> >, 'MObjectHandle': <maya.OpenMaya.MObjectHandle; proxy of <Swig Object of type 'MObjectHandle *' at 0x00000000132EC9F0> >, 'MFn': <maya.OpenMaya.MFnTransform; proxy of <Swig Object of type 'MFnTransform *' at 0x00000000132ECA80> >}, '_name': u'pCube1'}
>>> print myCubeShape.__dict__
{'__apiobjects__': {'MObjectHandle': <maya.OpenMaya.MObjectHandle; proxy of <Swig Object of type 'MObjectHandle *' at 0x000000001326DD50> >, 'MFn': <maya.OpenMaya.MFnDependencyNode; proxy of <Swig Object of type 'MFnDependencyNode *' at 0x00000000132ECD50> >}, '_name': u'polyCube1'}
所以我想知道python在执行pmc.getAttr(myCubeTrans.translate)
(或myCubeTrans.translate.get()
或myCubeTrans.getTranslation()
)
您可能正在寻找 cmds.listAttr()
可在此处获取文档:Autodesk Maya 2014 Python commands
用法:
import maya.cmds as cmds
cmds.polyCube( n="myCube")
print cmds.listAttr( "myCube" )
我建议您查看可用的标志以过滤某些属性(read
标志将满足您的需要,因为它只会 return 可读属性)。
注: 我没有检查 pyMel 版本,但我想这是实现的并且以相同的方式工作。
Update1:查看所有属性及其类型的快捷方式
for attr in cmds.listAttr( "myCube", r=True ):
try:
print attr, " ", cmds.getAttr("myCube."+attr)
except:
print "Error reading data"
更新2: PyMel doc: listAttr 在 PyMel 中也可用。