Python Maya 检查选定项
我想知道怎么检查变量'curSel'中的选中项,看看它们是不是“顶点”。我在想应该用一个if/then语句。这样我就可以避免出现更多的错误。
我在猜,我可以先检查列表中的第一个项是不是顶点。如果是顶点,那就继续,如果不是,那就不做任何事情。可是我该怎么写这个呢?
import maya.cmds as cmds
# collect the selected verts
curSel = cmds.ls(sl=1, fl=1)
有效的代码:为每个选中的顶点创建定位器
import maya.cmds as cmds
selectedVerts = [v for v in cmds.ls(sl=True, fl=True) if '.vtx' in v]
print selectedVerts
for v in selectedVerts:
pos = cmds.xform( v, query=True, translation=True, worldSpace=True )
cmds.spaceLocator( p=(pos) )
1 个回答
1
你可以用filteExpand命令来代替ls,这样可以更方便地获取信息。FilterExpand这个命令如果不带任何参数,默认会作用于当前选中的内容,而selectionMask选项则可以让你限制只针对特定类型的组件进行操作。所以
cmds.filterExpand(sm=31)
这个命令只会返回你选中的顶点,其他的都不会返回。如果没有选中任何顶点,它会返回None,也就是啥都没有。
另外一种方法是检查选中的内容中是否包含字符串'.vtx',这个字符串就是你从选中的顶点中得到的。
selected_verts = [v for v in cmds.ls(sl=True, fl=True) if '.vtx' in v]