python:polySplitRing插入,在多条边上具有边流

python:polySplitRing插入,在多条边上具有边流,python,maya,mel,Python,Maya,Mel,我是一个真正的PythonNoob(已经玩了大约一周了),但我真的很喜欢精简我的一些Maya工具。我现在有点困在下面; 我正在尝试使用“边流插入”获取polySplitRing,以处理多条边的选择。我可以让它在一条边上工作,但我不能让它在多条边上工作。我正在尝试使用列表,但我需要比它更好的东西。尝试搜索相同的问题,但没有找到任何内容(也不确定要搜索的确切内容)。如果有这样的设置文件,请链接 以下是在单条边选择上效果良好的方法: 单边选择: import maya.cmds as cmds imp

我是一个真正的PythonNoob(已经玩了大约一周了),但我真的很喜欢精简我的一些Maya工具。我现在有点困在下面; 我正在尝试使用“边流插入”获取polySplitRing,以处理多条边的选择。我可以让它在一条边上工作,但我不能让它在多条边上工作。我正在尝试使用列表,但我需要比它更好的东西。尝试搜索相同的问题,但没有找到任何内容(也不确定要搜索的确切内容)。如果有这样的设置文件,请链接

以下是在单条边选择上效果良好的方法:
单边选择:

import maya.cmds as cmds
import maya.mel as mm

mm.eval("polySelectSp -ring;")
cmds.polySplitRing(ief=True, cch=1)
下面是我为多重边缘解决方案所做的工作

import maya.cmds as cmds
import maya.mel as mm

sel=cmds.ls(sl=1)
edgeCount = cmds.polyEvaluate(ec=True)
print edgeCount
edgeList = [edgeCount]
print edgeList

for each in edgeList:
    mm.eval("polySelectSp -ring;")
    cmds.polySplitRing(ief=True, cch=1)


mm.eval("polySelectSp -ring;")
cmds.polySplitRing(ief=True, cch=1)


干杯

首先,您不需要特别使用mel模块,您可以在Python中执行相同的操作(更好)

然后,只需创建一个选定边的列表,并对每个边应用分割

import maya.cmds as cmds

selEdges = cmds.ls(selection = True)

for edge in selEdges:
    # Find edge Id
    edgeId = int(edge.split('[')[-1][:-1]) # Should be better with a regex, I know...
    # Apply split on this particular edge thanks to edge Id
    cmds.polySelect(edgeRing = edgeId)
    cmds.polySplitRing(ief = True)