如何从选择中获得边缘指数?

时间:2013-09-06 00:17:53

标签: python api maya mel pymel

有没有办法从Pymel / Maya API函数中正确获取索引?

我知道Pymel有一个名为getEdges()的函数,但是根据他们的文档,这是从选定的面部得到它们,但是我只需要从选定的边缘获取它们。

这可能吗?

2 个答案:

答案 0 :(得分:4)

虽然你的回答会起到正统的作用,但经过一番认真的挖掘,我确实找到了一个更简单的解决方案!

原来,隐藏并没有很好地记录,是一个具有讽刺意味的功能indices(),我确实搜索了这个,但文档中没有出现任何内容。

<强> Pymel

selection[0].indices()[0]

以上将给出所选边的整数。简单而优雅!

答案 1 :(得分:3)

你的意思是你只是扩大的选定边缘列表?这只是边缘选择上的FilterExpand -sm 32或cmds.filterExpand(sm = 32)或pm.filterExpand(sm = 32)。这些命令总是字符串,你用正则表达式抓取索引:

# where objs is a list of edges, for example cmds.ls(sl=True) on an edge selection
cList = "".join(cmds.filterExpand( *objs, sm=32))
outList = set(map ( int, re.findall('\[([0-9]+)\]', cList ) ) ) 

将为您提供一个包含边的整数索引的集合(我使用集合,因此很容易做到这样的事情,比如找到两个组共有的边,而没有for循环或测试)