Schalten Sie den Röntgenmodus in Maya mit Python um
Ich versuche, Python-Code an einen Schlüssel zu binden, damit ich den Röntgenmodus in Maya umschalten kann.
Eine Sache, die mich verwirrt, ist, dass wenn ich diese Codezeile ausführe ...
def xrayQuery():
cmds.modelEditor('modelPanel4', q=True, xr=True)
xrayQuery()
Es wird kein Ergebnis zurückgegeben, obwohl ich den Röntgenmodus abgefragt habe. Aber wenn ich nur den Befehl ohne die Funktion ausführe ...
cmds.modelEditor('modelPanel4', q=True, xr=True)
Beim ersten Mal erhalte ich das, was ich erwartet hatte. Dies ist ein boolesches Ergebnis, das davon abhängt, ob der Röntgenmodus aktiviert ist oder nicht. Kann mir jemand sagen warum das so ist?
Ich bin sehr neu in Python in Maya, daher wird jede Hilfe sehr geschätzt! Vielen Dank!
Antworten
Sie müssen return aufrufen, wenn die benutzerdefinierte Funktion dieselbe Ausgabe wie im Inneren zurückgeben soll. Wie unten:
def xrayQuery():
return cmds.modelEditor('modelPanel4', q=True, xr=True)
Nebenbei bemerkt, wenn Sie den Zweck erklären könnten, eine Funktion zu schreiben, anstatt die ursprüngliche Funktion aufzurufen, wäre es hilfreich, den Anwendungsfall zu verstehen
Also habe ich einen Weg gefunden, um das zu vereinfachen, was ich erreichen wollte, nämlich ein paar Codezeilen, um den Röntgenansichtsmodus für ein bestimmtes Ansichtsfenster ein- und auszuschalten. Ich konnte die Notwendigkeit von if else-Anweisungen beseitigen, indem ich den Operator 'not' in diesem Codeblock verwendete:
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()