2013-09-06 5 views
1

Pymel/Maya API 함수에서 인덱스를 올바르게 가져올 수 있습니까?선택에서 모서리 인덱스를 얻는 방법?

필자는 Pymel이 getEdges()이라는 기능을 가지고 있지만 필자의 문서에 따르면 선택한 얼굴에서 가져 오는 기능을 가지고 있지만 선택한 가장자리에서만 필자가 필요하다는 것을 알고 있습니다.

이것이 가능합니까?

+0

투표하시는 분이라면 적어도 저에게 이유를 말씀해 주시겠습니까? 나도 이해가 안 돼 ... –

답변

4

답변이 theodox에서 작동하는 동안, 나는 심각한 파기 후에 훨씬 더 간단한 해결책을 찾았습니다!

역설적이면서도 잘 설명되지 않은 기능은 역설적으로 indices()라고하는 기능이었습니다. 검색했지만 아무 것도 문서에 나오지 않았습니다.

Pymel이

selection[0].indices()[0]

위의 우리에게 선택한 모서리의 정수를 제공 할 것입니다. 간단하고 우아한!

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))) 

하는 당신에게 가장자리 (나는 가장자리를 찾아 같은 일을하는 쉬운 있도록 세트를 사용의 정수 인덱스를 포함한 세트를 줄 것이다 : 그 명령은 정규 표현식으로 그들을 밖으로 인덱스를 잡아 항상 문자열 루프 또는 테스트없이 두 그룹에 공통)

+0

나는 이걸'self.edgeIndex1 = int (selection [0] .split ('[') [1] .split (']') [0]처럼 할 수 있음을 발견했다.) 그러나 그것은 아주 단순 할 수있는 무언가에 대해 상당히 추악합니다. 'selection [0] .getEdgeIndex()'당신은 다른 것이 없다고 확신합니까? haha –

+0

여기에서 지원되는 설정 테스트와 달리 구성 요소에 대한 정수 인덱스는별로 사용하지 않습니다. maya로 수행하는 작업은 ls 또는 filterexpand로 얻는 객체와 구성 요소를 모두 알아야합니다. – theodox

+0

더 나은 해결책을 찾았지만 대답을 올렸습니다! 내 대답을 참조하십시오! :) –

관련 문제