我想知道是否有一种方法可以获取我们可以使用的属性列表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命令
用法:
import maya.cmds as cmds
cmds.polyCube( n="myCube")
print cmds.listAttr( "myCube" )
我建议您查看可用的标志以过滤某些属性(read
标志将满足您的需求,因为它只会返回可读的属性)。
注意:我没有检查pyMel版本,但是我想这已经实现并且工作方式相同。
Update1:快速查看所有属性及其类型的方法
for attr in cmds.listAttr( "myCube", r=True ):
try:
print attr, " ", cmds.getAttr("myCube."+attr)
except:
print "Error reading data"
Update2: PyMel文档:listAttr在PyMel中也可用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句