我是一个真正的Python noob(现在已经玩了大约一个星期)但我真的很喜欢简化我的一些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)
polySplitEdgeRing Insert with Edge Flow working on a single edge
desired end result after selecting multiple edges
干杯!
答案 0 :(得分: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)