Python 如何使用GeometryConstraint类?
我已经试着让它工作这么久了,我已经阅读了文档,但我似乎不明白如何实现GeometryConstraint 通常情况下,其衍生版本为:Python 如何使用GeometryConstraint类?,python,maya,mel,pymel,Python,Maya,Mel,Pymel,我已经试着让它工作这么久了,我已经阅读了文档,但我似乎不明白如何实现GeometryConstraint 通常情况下,其衍生版本为: geometryConstraintNode=pm.geometryConstraint(目标、对象) 然而,在Pymel中,设置属性时它看起来更好一些,这就是我想使用它的原因,因为它更具可读性 我试过这个: geometryConstraintNode=nt.GeometryConstraint(目标、对象).setName('geoConstraint') 但
geometryConstraintNode=pm.geometryConstraint(目标、对象)
然而,在Pymel中,设置属性时它看起来更好一些,这就是我想使用它的原因,因为它更具可读性
我试过这个:
geometryConstraintNode=nt.GeometryConstraint(目标、对象).setName('geoConstraint')
但是运气不好,有人能看一下吗
香农这不适合你吗
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()”。文档通过在节点类型页面的顶部包含继承树来全面说明这一点。基本上,所有pynode返回都将共享至少一个DagNode(命名之类的东西)和通常的变换(移动、旋转、父对象)或形状(查询组件等)我希望以不同的方式执行此操作,尽管我已经发布了与您在我的问题中使用的完全相同的代码,我正试图用另一种方法来实现这一点。必须启动命令版本来创建场景对象并钩住它们的连接;nodetype版本是围绕这一点的包装器。您可以执行pm.geometryConstraint('pSphere1','locator1').setName('blah')。您可以使用pm.PyNode('oldName').setName('newName')获取现有约束。。。顺便说一句,使用pm.PyNode('name-of-existing-object')而不是'pymel.nodetypes.ClassName('name-of-existing-object'),这样您就不必知道类型: