如何检查变量'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) )
答案 0 :(得分: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]