python+;maya:返回名称不正确的节点列表

python+;maya:返回名称不正确的节点列表,python,maya,Python,Maya,我已经创建了一个函数,它创建了一个圆网格,我需要将创建的圆节点收集到一个列表中,以便以后可以操作节点。问题是,我注意到节点列表在maya自动重命名为唯一之前已被赋予节点名称。运行此脚本时,您会注意到收集的名称都是相同的,但在maya中选择这些名称时,它们会递增为唯一 我这个月回来了 [u'mainShape_00', u'makeNurbCircle1'] [u'|mainShape_00', u'makeNurbCircle2'] [u'|mainShape_00', u'makeNurbCi

我已经创建了一个函数,它创建了一个圆网格,我需要将创建的圆节点收集到一个列表中,以便以后可以操作节点。问题是,我注意到节点列表在maya自动重命名为唯一之前已被赋予节点名称。运行此脚本时,您会注意到收集的名称都是相同的,但在maya中选择这些名称时,它们会递增为唯一

我这个月回来了

[u'mainShape_00', u'makeNurbCircle1']
[u'|mainShape_00', u'makeNurbCircle2']
[u'|mainShape_00', u'makeNurbCircle3']...
应该是什么时候

[u'mainShape_00', u'makeNurbCircle1']
[u'|mainShape_01', u'makeNurbCircle2']
[u'|mainShape_02', u'makeNurbCircle3']...
这是剧本

# Import Modules
import maya.cmds as cmds
import random

# Scene setup
try:
    cmds.select(all=True)   
    cmds.delete()
except: 
    pass

# create 2D grid of circles
numRows = 4
numColumns = 3
radiusMin = .1
radiusMax = .75

#create empty group for nodes
nodeGroup = cmds.group(em=True, name='main_group_00')
nodeList = []

for r in range(0,numRows):
    for c in range(0,numColumns):

        # Calculate random radius
        radius = random.uniform(radiusMin,radiusMax)

        # Create circle shape and transform it
        node = cmds.circle(n='mainShape_00', ch=True, o=True, nr=(0, 0, 1), c=(0, 0, 0), r=radius)
        cmds.xform(node, t=(r*(radiusMax*2), c*(radiusMax*2), 0) )

        # Parent node under the group node
        cmds.parent(node[0], nodeGroup, relative=False)

        # Append nodes to list
        nodeList.append(node)

for n in nodeList:
    shape = n
    print shape

节点
'mainShape\u 00'
,因为在当时,它就是这样命名的。在将其设置为
节点组
下的父对象之前,不会发生冲突。为人父母后,请记住真实姓名:

node[0] = cmds.parent(node[0], nodeGroup, relative=False)[0]

这将用新的父节点替换原始的
节点[0]
节点[0]

为什么不将自己的节点命名为:

x = 0
padding = str(x).zfill(2)
mainShapeName = 'mainShape_' + padding
x += 1

# Create circle shape and transform it
node = cmds.circle(n=mainShapeName, ch=True, o=True, nr=(0, 0, 1), c=(0, 0, 0), r=radius)
cmds.xform(node, t=(r*(radiusMax*2), c*(radiusMax*2), 0) )
通过自我递增,可以避免maya问题。 您甚至应该在每个组中指定唯一的名称


干杯。

我明白了。我很困惑它为什么不返回新名称。是的,
maya.cmds
只对字符串有效。所以它不能像那样跟踪名字的变化。你应该考虑看看PyMel.