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

时间:2014-04-17 15:09:41

标签: python maya

我创建了一个创建圆网格的函数,我需要收集创建到列表中的圆节点,以便以后可以操作节点。问题是我注意到nodeList在被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

2 个答案:

答案 0 :(得分:1)

node'mainShape_00',因为当时,这就是它的名字。在它nodeGroup下的父级之前没有碰撞。在养育子女之后抓住真实姓名:

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

这会将原始node[0]替换为新的node[0]

答案 1 :(得分: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) )

通过增加自己,你可以避免玛雅问题。 你甚至应该在每个小组中给出独特的名字。

干杯。