玛雅+;Python数组收集

玛雅+;Python数组收集,python,arrays,maya,Python,Arrays,Maya,我有几个基本问题,可以帮助我理解maya中使用python的一些数组 如何将所有选定节点收集到一个名为“curSel”的数组中 然后如何将该数组“curSel”的“mesh”收集到一个名为“meshArr”的新数组中 然后如何将“curSel”数组中的“curves”收集到名为“CurveSar”的新数组中 简而言之,我实际上是在尝试将所有选定的节点收集到一个变量中。然后,我通过从该数组中收集特定节点来创建另外两个数组。这比实际情况要复杂一些 import maya.cmds as cmds c

我有几个基本问题,可以帮助我理解maya中使用python的一些数组

  • 如何将所有选定节点收集到一个名为“curSel”的数组中
  • 然后如何将该数组“curSel”的“mesh”收集到一个名为“meshArr”的新数组中
  • 然后如何将“curSel”数组中的“curves”收集到名为“CurveSar”的新数组中

  • 简而言之,我实际上是在尝试将所有选定的节点收集到一个变量中。然后,我通过从该数组中收集特定节点来创建另外两个数组。

    这比实际情况要复杂一些

    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)
    

    这将检查每个对象上的形状,并根据形状类型将其分配到右侧列表。

    在运行时表示语法无效。缺少最后一个参数;固定的