Pymel/Maya API 함수에서 인덱스를 올바르게 가져올 수 있습니까?선택에서 모서리 인덱스를 얻는 방법?
필자는 Pymel이 getEdges()
이라는 기능을 가지고 있지만 필자의 문서에 따르면 선택한 얼굴에서 가져 오는 기능을 가지고 있지만 선택한 가장자리에서만 필자가 필요하다는 것을 알고 있습니다.
이것이 가능합니까?
Pymel/Maya API 함수에서 인덱스를 올바르게 가져올 수 있습니까?선택에서 모서리 인덱스를 얻는 방법?
필자는 Pymel이 getEdges()
이라는 기능을 가지고 있지만 필자의 문서에 따르면 선택한 얼굴에서 가져 오는 기능을 가지고 있지만 선택한 가장자리에서만 필자가 필요하다는 것을 알고 있습니다.
이것이 가능합니까?
답변이 theodox에서 작동하는 동안, 나는 심각한 파기 후에 훨씬 더 간단한 해결책을 찾았습니다!
역설적이면서도 잘 설명되지 않은 기능은 역설적으로 indices()
라고하는 기능이었습니다. 검색했지만 아무 것도 문서에 나오지 않았습니다.
Pymel이
selection[0].indices()[0]
위의 우리에게 선택한 모서리의 정수를 제공 할 것입니다. 간단하고 우아한!
선택한 가장자리의 확장 된 목록을 의미합니까? 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)))
하는 당신에게 가장자리 (나는 가장자리를 찾아 같은 일을하는 쉬운 있도록 세트를 사용의 정수 인덱스를 포함한 세트를 줄 것이다 : 그 명령은 정규 표현식으로 그들을 밖으로 인덱스를 잡아 항상 문자열 루프 또는 테스트없이 두 그룹에 공통)
나는 이걸'self.edgeIndex1 = int (selection [0] .split ('[') [1] .split (']') [0]처럼 할 수 있음을 발견했다.) 그러나 그것은 아주 단순 할 수있는 무언가에 대해 상당히 추악합니다. 'selection [0] .getEdgeIndex()'당신은 다른 것이 없다고 확신합니까? haha –
여기에서 지원되는 설정 테스트와 달리 구성 요소에 대한 정수 인덱스는별로 사용하지 않습니다. maya로 수행하는 작업은 ls 또는 filterexpand로 얻는 객체와 구성 요소를 모두 알아야합니다. – theodox
더 나은 해결책을 찾았지만 대답을 올렸습니다! 내 대답을 참조하십시오! :) –
투표하시는 분이라면 적어도 저에게 이유를 말씀해 주시겠습니까? 나도 이해가 안 돼 ... –