python:polySplitRing插入边缘流在多个边上
问题描述:
我是一个真正的Python noob(已经玩了大约一个星期了),但我真的很享受精简我的一些Maya工具。我目前有点卡在以下; 我想通过带有边缘流的插入来获得polySplitRing来处理多个边的选择。我可以让它在一个边上工作,但是我无法让它在多个边上工作。我正在尝试使用一个列表,但我需要比这更好的东西。已尝试搜索相同的问题,但没有找到任何东西(也不确定要准确搜索什么)。如果有文档设置这样的东西,请链接!python:polySplitRing插入边缘流在多个边上
下面是对单个边选择正常工作:
单边的选择:
import maya.cmds as cmds
import maya.mel as mm
mm.eval("polySelectSp -ring;")
cmds.polySplitRing(ief=True, cch=1)
这里就是我在多个EDGE解决方案的工作
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
干杯!
答
首先,你并不特别需要使用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)