Ich erstelle ein UI-Tool, das während Mays Start geladen wird und einige Module nach der Initialisierung von VRay ausführt (andernfalls wird ein Fehler ausgelöst).Maya (Python): Befehl running condition und scriptJob aus einem Modul
Ein Vorschlag aus meiner breiteren Frage here hat mich dazu gebracht, die Bedingung und scriptJob Befehle auszuprobieren.
Der listener.py Code unten funktioniert, wenn sie von Script-Editor innerhalb Mayas laufen, aber wenn ich den Hörer Modul und führen Sie es mit dem launcher.py Code importieren, bekomme ich diesen Fehler:
Error: line 1: name 'is_vray_loaded' is not defined
Traceback: (most recent call last):
File "<maya console>", line 1, in <module>
NameError: name 'is_vray_loaded' is not defined
Hinweis dass der Bedingungsbefehl eine mel-Befehlssyntax benötigt (scheint ein Fehler zu sein), so dass nur der Aufruf der normalen Funktion nicht funktioniert und ein Fehler auftritt, dass die Prozedur nicht gefunden werden kann).
Hier ist der Zuhörer:
# vray_listener.py
import os
import maya.cmds as mc
import maya.mel as mel
vray_plugin_path_2016 = os.path.join('C:', os.sep, 'Program Files', 'Autodesk', 'Maya2016', 'vray', 'plug-ins', 'vrayformaya.mll')
#-----------------------------------------------------------------------
def is_vray_loaded():
return mc.pluginInfo(vray_plugin_path_2016, q=1, l=True)
#-----------------------------------------------------------------------
def hey():
print 'hey'
mc.condition('vray_initialized', initialize=True, d='idle', s='python("is_vray_loaded()");')
mc.scriptJob(ct=['vray_initialized', 'hey()'])
Hier ist der Launcher:
# launcher.py
import sys
vray_listener_path = 'S:/path/to/module'
if vray_listener_path not in sys.path:
sys.path.append(vray_listener_path)
import vray_listener
reload(vray_listener)
willkommen, lesen Sie bitte, dass, http://stackoverflow.com/questions/24616757/maya-python-cmds-button-mit-ui-passing-variables-und-calling-a-function –
Vielen Dank für die Hilfe und den Link ! Ich dachte, es funktionierte, aber es sieht so aus, als gäbe es eine Variable im Cache, die es so aussehen ließ, als würde es funktionieren. Ich kann die Arbeitsergebnisse nicht auf einem neuen Open von Maya reproduzieren. –
lassen Sie mich bitte Ihre Lösung kennen, für das nächste Mal ...... der gleiche Fehler? –