2016-09-20 5 views
2

Ich muss für einige MSA Callback der MSConnection registrieren und die Szene Pfade abfragen. Ich muss sowohl vor als auch nach dem Maya-Pfad gehen. (öffnen, Datei speichern)maya kBeforeSave Callback

Hier ist, was ich bisher habe.

def before(*args, **kwargs): 
    print 'BEFORE: ' + cmds.file(query = True) 

def after(*args, **kwargs): 
    print 'AFTER: ' + cmds.file(query = True) 

om.MSceneMessage.addCallback(om.MSceneMessage.kBeforeOpen, before) 
om.MSceneMessage.addCallback(om.MSceneMessage.kAfterOpen, after) 

om.MSceneMessage.addCallback(om.MSceneMessage.kBeforeSave, before) 
om.MSceneMessage.addCallback(om.MSceneMessage.kAfterSave, after) 

Fall Szenario1; In Szene test_01.ma, OPEN Szene test_02.ma

Funktioniert wie erwartet.

VOR: ../../test_01.ma

NACH: ../../test_02.ma

Fall Szenarios2; In Szene test_01.ma, SAVE Szene test_02.ma

Funktioniert NICHT wie erwartet.

VOR: ../../test_02.ma

NACH: ../../test_02.ma

ich auch 'kBeforeSaveCheck' Rückruf versucht, mit dem gleichen Ergebnis.

+0

ich bin erstaunt, was das Abfrageergebnis (außer Runtime :: Flag nicht abgefragt werden kann !!) sein würde, was die Informationen, die Sie wollen Abfrage, scenename? inkl. Pfad? –

Antwort

0

erhalten die scenename

def scene_id(*args): 
    return cmds.file(query=True, scenename=True) 

def before(*args, **kwargs): 
    print 'BEFORE: {0}'.format(scene_id()) 

def after(*args, **kwargs): 
    print 'After: {0}'.format(scene_id()) 
+0

Bitte fügen Sie immer eine Erklärung zu Ihrem Code hinzu ... – andreas