Python을 사용하여 Maya에서 X-Ray 모드 전환

Sep 12 2020

Maya에서 X-Ray 모드를 전환 할 수 있도록 일부 Python 코드를 키에 바인딩하려고합니다.

저를 혼란스럽게하는 한 가지는 제가이 코드 줄을 실행할 때 ...

def xrayQuery():
    cmds.modelEditor('modelPanel4', q=True, xr=True)

xrayQuery()

xray 모드를 쿼리했지만 결과가 반환되지 않습니다. 하지만 기능없이 명령 만 실행하면 ...

cmds.modelEditor('modelPanel4', q=True, xr=True)

Xray 모드가 활성화되어 있는지 여부에 따라 부울 결과 인 처음 예상했던 결과를 얻었습니다. 왜 이것이 왜 나에게 말할 수 있습니까?

저는 Maya 내부에서 파이썬을 처음 접했기 때문에 어떤 도움을 주시면 감사하겠습니다! 감사!

답변

2 sam Sep 11 2020 at 23:26

사용자 정의 함수가 내부에서 호출 된 것과 동일한 출력을 반환하도록하려면 return을 호출해야합니다. 아래와 같이 :

def xrayQuery():
    return cmds.modelEditor('modelPanel4', q=True, xr=True)

참고로, 원래 함수를 호출하는 대신 함수를 작성하는 목적을 설명 할 수 있다면 유스 케이스를 이해하는 것이 도움이 될 것입니다.

user14261562 Sep 12 2020 at 02:59

그래서 특정 뷰포트에 대해 x-ray 뷰 모드를 켜고 끄는 몇 줄의 코드를 통해 달성하려는 작업을 단순화하는 방법을 알아 냈습니다. 이 코드 블록에서 'not'연산자를 사용하여 if else 문에 대한 필요성을 없앨 수있었습니다.

import maya.cmds as cmds

def xray_toggle():
    result = cmds.modelEditor('modelPanel4', q=True, xr=True)
    cmds.modelEditor('modelPanel4', e=True, xr=not result)

xray_toggle()