从选定的边缘获取形状

时间:2013-09-05 12:13:25

标签: python maya pymel

我使用Maya在选定边上执行某项任务。

假设我保存这些边缘:

edges = pm.filterExpand(sm=32)

从这里,我可以选择第一个边缘,并通过拆分unicode字符串来获取对象:

'pSphere1.e[274]'

这是我如何拆分它,它给了我pSphere1,但是在它上面调用getShape()仍然不起作用,因为它是一个unicode对象。

object = edges[0].split('.')[0].getShape()

有更好的方法吗?

2 个答案:

答案 0 :(得分:2)

EFilterExpand始终返回字符串(无论是从cmds还是pm调用)。使用PyNode转换:

mesh_edges = map(pm.PyNode, pm.filterExpand(sm=32))
for item in mesh_edges: 
        print item.node(), item.indices()[0]

答案 1 :(得分:0)

我们可以通过简单地列出它与node()

的直接联系来找到边缘的形状

<强> PYMEL:

pm.PyNode(selection[0].node().getParent())

无需拆分字符串,也无需重新映射数组。