2017-04-24 6 views
-1

저는 파이썬에서 새롭고 결정적인 포지션으로 가장 가까운 얼굴을 얻는 스크립트를 만들려고합니다. 이미 기능이 있는지 아는 사람이 있습니까?마야는 위치 별 버텍스를 얻습니다.

import maya.cmds as cmds 
import maya.mel as mel 

def getClosestFace(xPos, yPos, zPos, mesh): 
    cmds.select(mesh) 
    mel.eval("closestPointOn (1, 1)") 
    cmds.select("cpConstraintIn") 
    cmds.move(xPos,yPos,zPos) 
    faceOutput = cmds.getAttr("closestPointOnMesh1.f") 
    cmds.delete("cpConstraintIn") 
    cmds.delete("cpConstraintPos") 
    return mesh + ".f[" + str(faceOutput) + "]" 

이 다른 동일하다 :

nodeName = cmds.createNode('closestPointOnMesh') 

이 위치면을 되돌릴 수 closestPointOnMesh

불리는 노드를 정점

+0

질문에 시도한 코드를 게시하십시오. – lit

+0

당신이 우리에게 좀 더 자세한 내용과 당신이 시도한 것에 대한 예제를 주면 사용 가능한 대답을 얻을 수있는 기회가 훨씬 더 많습니다. – theodox

+0

마침내이 작업을 수행하지만 마야는 왜 시작하지 않을까요? 모든 오류 메시지 :/ 마야의 콘솔로 완료 되었기 때문에 스크립트를 저장하지 않고 자동으로 어딘가에 저장합니다. 검색 할 수있는 위치를 알고 있습니까? 나는 다른 위치의 스크립트 폴더에서 이미 시도했지만 내가 한 일을 찾지 못했습니다. – akerbeltz

답변

1

난 그 검색 결과 용액 이잖아 버텍스 또는 에지와 같은 구성 요소는 ".f"만 변경합니다. 그러나 가장 가까운 구성 요소를 임의로 선택하는 초기 위치와 동일한 거리에 일부 구성 요소가 있거나 목록의 끝 구성 요소가있는 것처럼 보입니까?

+0

안녕하세요, 답변 해 주셔서 감사합니다. 노드의 위치,면 또는 정점을 얻는 방법을 지정해주십시오. 또는 당신은 저에게 그것의 좋은 문서를 가진 연결을 저에게 보낼 수 있는가? 덕분에 – akerbeltz

+0

당신은 두 개체의 matrice를 연결 한 다음 일부 getAttr ..... 정보를 얻습니다. – DrWeeny

+0

정말 고마워요! Maya가 충돌하여 다른 사람들을 돕기 위해 내가 한 일을 게시하지 않습니다. 콘솔에서 수행 한 스크립트를 어디서 찾을 수 있습니까? (나는 아무도 구하지 못했습니다) – akerbeltz