0

我使用 Maya 在选定的边缘上执行特定任务。

假设我像这样保存这些边缘:

edges = pm.filterExpand(sm=32)

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

'pSphere1.e[274]'

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

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

有一个更好的方法吗?

4

2 回答 2

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]
于 2013-09-06T05:21:52.457 回答
0

我们可以从边缘找到形状,只需列出它与使用的直接联系node()

吡咯:

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

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

于 2013-09-07T04:14:37.420 回答