2017-10-28 6 views
2

저는 실제 파이썬 놈입니다. (약 1 주일 동안 그걸 가지고 놀았습니다.)하지만 마야 도구를 능률적으로 사용하고 있습니다. 나는 현재 다음에 조금 붙어있다. Insert with Edge Flow와 함께 polySplitRing을 사용하여 여러 가장자리를 선택하여 작업하려고합니다. 한 모서리에서 작동하도록 할 수는 있지만 여러 모서리에서 작동하도록 할 수는 없습니다. 나는 목록을 사용하려고 노력하고 있지만, 나는 그것보다 더 나은 무언가가 필요하다. 같은 문제를 찾으려고했지만 아무 것도 찾지 못했습니다. 정확히 무엇을 검색해야 할지도 모릅니다. 이 같은 것을 설정하는 문서가 있다면, pls 링크!
단일 에지 선택 : :python : 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

건배!

답변

1

먼저 멜 모듈을 사용할 필요가 없습니다. 파이썬에서 동일한 작업을 수행 할 수 있습니다 (더 좋음).

그런 다음 선택한 가장자리 목록을 만들고 각 가장자리에 분할을 적용하십시오.

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)