我使用 Maya 在选定的边缘上执行特定任务。
假设我像这样保存这些边缘:
edges = pm.filterExpand(sm=32)
从这里,我可以只选择第一条边,并通过拆分 unicode 字符串来获取对象:
'pSphere1.e[274]'
这是我拆分它的方法,它给了我 pSphere1,但是在它上面调用 getShape() 仍然不起作用,因为它是一个 unicode 对象。
object = edges[0].split('.')[0].getShape()
有一个更好的方法吗?
EFilterExpand 总是返回字符串(无论是从 cmds 还是 pm 调用)。使用 PyNode 进行转换:
mesh_edges = map(pm.PyNode, pm.filterExpand(sm=32))
for item in mesh_edges:
print item.node(), item.indices()[0]
我们可以从边缘找到形状,只需列出它与使用的直接联系node()
吡咯:
pm.PyNode(selection[0].node().getParent())
无需拆分字符串或重新映射数组。