Activer / désactiver le mode Rayons X dans Maya à l'aide de Python
J'essaie de lier du code Python à une clé afin de pouvoir basculer le mode X-Ray dans Maya.
Une chose qui me déroute, c'est que lorsque j'exécute cette ligne de code ...
def xrayQuery():
cmds.modelEditor('modelPanel4', q=True, xr=True)
xrayQuery()
aucun résultat n'est retourné, même si j'ai interrogé le mode xray. Mais quand je lance juste la commande sans la fonction ...
cmds.modelEditor('modelPanel4', q=True, xr=True)
J'obtiens ce que j'attendais la première fois, qui est un résultat booléen basé sur l'activation ou non du mode xray. Quelqu'un peut-il me dire pourquoi?
Je suis très nouveau dans Python dans Maya, donc toute aide sera très appréciée! Merci!
Réponses
Vous devez appeler return si vous souhaitez que la fonction définie par l'utilisateur renvoie la même sortie que celle appelée à l'intérieur. Comme ci-dessous:
def xrayQuery():
return cmds.modelEditor('modelPanel4', q=True, xr=True)
En passant, si vous pouviez expliquer le but d'écrire une fonction au lieu d'appeler la fonction d'origine, il serait utile de comprendre le cas d'utilisation
J'ai donc trouvé un moyen de simplifier ce que j'essayais de réaliser, à savoir quelques lignes de code pour activer et désactiver le mode de vue aux rayons X pour une fenêtre spécifique. J'ai pu éliminer le besoin d'instructions if else en utilisant l'opérateur 'not' dans ce bloc de code:
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()