我如何使用GeometryConstraint类?

时间:2013-08-23 04:22:32

标签: python maya mel pymel

我一直试图让它工作这么长时间,我已经阅读了文档here,但我似乎无法理解如何实现GeometryConstraint。

通常,其衍生版本为:

geometryConstraintNode = pm.geometryConstraint(target, object)

然而,在Pymel中,设置属性看起来好一点,这就是我想使用它的原因,因为它更具可读性。

我试过这个:

geometryConstraintNode = nt.GeometryConstraint(target, object).setName('geoConstraint')

但没有运气,有人可以看看吗?

香农

1 个答案:

答案 0 :(得分:2)

这对你不起作用?

import pymel.core as pm

const = pm.geometryConstraint('pSphere1', 'locator1', n='geoConstraint')
print const
const.rename('fred')
print const

输出

geoConstraint
fred

和名为'fred'的约束对象。

pymel节点是从 pm.animation.geometryConstraint 中定义的命令返回的返回值。它返回的是实际场景内约束的类包装器,它在 pm.nodetypes.GeometryConstraint 中定义。这是您可以进行所有属性设置等的类版本;命令版本与maya.cmds中的相同内容匹配,有时会添加少量语法糖。

在这种情况下,pymel节点就像任何其他pymel节点一样,因此renamimg之类的东西使用从DagNode继承的相同'.rename'功能。您还可以使用从Transform继承的函数,例如'getChildren()'或'setParent()'文档通过在nodetype页面的顶部包含继承树,以循环方式清除它。基本上所有的pynode返回将至少共享DagNode(像命名一样的东西),通常是Transform(像移动,旋转,父类)或Shape(查询组件等)