2014-04-01 51 views
0

我有几个基本问​​题,这将帮助我了解使用python的maya中的一些数组。玛雅+ Python数组收集

  1. 如何将所有选定的节点收集到一个名为'curSel'的数组中?
  2. 然后,我该如何收集数组'curSel'的'网格'到一个名为'meshArr'的新数组中
  3. 然后我该如何收集数组'curSel'中的'曲线' curvesArr'

总之,我基本上试图收集所有选定的节点到一个变量。然后我通过从该数组收集特定节点来创建两个更多的数组。

回答

2

这是一个有点麻烦比它真的应该

import maya.cmds as cmds 
curSel = cmds.ls(sl=True) 

为您提供了选择的对象列表。但是,除非明确选择了网格或曲线形状节点,否则只能在列表中进行变换,因此不能只是要求列表中的网格或形状。

得到你需要使用listRelatives形状:

curveSel = [] 
meshSel = [] 
for xform in curSel: 
    shapes = cmds.listRelatives(xform, shapes=True) # it's possible to have more than one 
    for s in shapes: 
     if cmds.nodeType(s) == 'mesh': 
      curveSel.append(xform) 
     if cmds.nodeType(s) == 'nurbsCurve': 
      meshSel.append(xform) 

这会检查每个对象的形状,并将其分配给基于形状类型右边的列表。

+0

说我运行它时无效的语法。 – JokerMartini

+0

失踪最后一个paren;固定 – theodox