Maya Python API 2.0没有MItDag,那么如何遍历DAG图?

时间:2013-11-27 02:32:13

标签: python maya

此问题特定于Autodesk Maya。 使用Maya 2014,SP 2.(现在下载SP 3 ......)

使用Maya Python API的第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。

如何使用版本2 API遍历场景的DAG图形?

1 个答案:

答案 0 :(得分:1)

现在更深入地使用Maya API,答案是:

API的第2版非常不完整。它不能做到这一点,也不能做许多其他高级场景。它的好处在于它能做什么,编程起来要简单得多。

但是,有时在API版本1中工作并且有时在API版本2中工作不能很好地工作,因为来自一个API的对象无法传递给另一个API。

因此,一旦程序员超出了版本2的限制,正确的解决方案就是完全停止使用版本2.

恕我直言,这意味着任何认真的程序员都不应该在第一时间浪费他们的时间,因为他们最终会抛弃那些代码。


如果您正在寻找更简单的解决方案,而不是直接编写版本1 API,请考虑"PyMel" library