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