这个问题是专门针对Autodesk Maya的。使用Maya 2014,SP 2. (现在下载SP 3.)
当使用的第1版时,遍历DAG图时可以这样做:
import maya.OpenMaya as OM
dagIterator = OM.MItDag( OM.MItDag.kDepthFirst, OM.MFn.kInvalid )
dagNodeFn = OM.MFnDagNode()
# Traverse the scene.
while( not dagIterator.isDone() ):
    ... do stuff with current node on iterator ...
    dagIterator.next()但是现在我尝试了第2版
import maya.api.OpenMaya as OM
dagIterator = OM.MItDag( OM.MItDag.kDepthFirst, OM.MFn.kInvalid )会导致错误
# Error: line 1: AttributeError: file <maya console> line 1: 'module' object has no attribute 'MItDag' # 实际上,版本2文档没有显示MItDag。
如何遍历场景的DAG图,使用版本2 API?
发布于 2014-08-07 05:45:06
在深入研究Maya之后,答案是:
API的第2版非常不完整。它不能做到这一点,也不能做许多其他高级方案。它的好处是,它所能做的事情,编程要简单得多。
但是,有时在API版本1中工作,有时在API版本2中工作并不好,因为一个API中的对象不能传递给另一个API。
因此,一旦程序员超过了版本2的限制,正确的解决方案就是完全停止使用version 2。
IMHO,这意味着任何严肃的程序员一开始就不应该浪费他们在第2版上的时间,因为他们最终会丢弃那些代码。
如果您正在寻找比直接编程版本1 API更容易的解决方案,那么请考虑"PyMel“库。
https://stackoverflow.com/questions/20232835
复制相似问题