Alternar el modo de rayos X en Maya usando Python
Estoy tratando de vincular un código Python a una tecla para poder alternar el modo de rayos X en Maya.
Una cosa que me confunde es que cuando ejecuto esta línea de código ...
def xrayQuery():
cmds.modelEditor('modelPanel4', q=True, xr=True)
xrayQuery()
no se devuelve ningún resultado, aunque he consultado el modo de rayos x. Pero cuando ejecuto solo el comando sin la función ...
cmds.modelEditor('modelPanel4', q=True, xr=True)
Obtengo lo que esperaba la primera vez, que es un resultado booleano basado en si el modo de rayos X está habilitado o no. ¿Alguien puede decirme por qué es esto?
Soy muy nuevo en Python dentro de Maya, ¡así que cualquier ayuda será muy apreciada! ¡Gracias!
Respuestas
Debe llamar a return si desea que la función definida por el usuario devuelva la misma salida que la llamada dentro. Como abajo:
def xrayQuery():
return cmds.modelEditor('modelPanel4', q=True, xr=True)
En una nota al margen, si pudiera explicar el propósito de escribir una función en lugar de llamar a la función original, sería útil comprender el caso de uso
Así que descubrí una manera de simplificar lo que estaba tratando de lograr, que eran unas pocas líneas de código para activar y desactivar el modo de vista de rayos X para una ventana gráfica específica. Pude eliminar la necesidad de declaraciones if else utilizando el operador 'not' en este bloque de código:
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()