Dieses Thema befasst sich mit der Verwendung von 3ds Max Batch im Lieferumfang von 3ds Max 2018.4 Update und höher. Informationen zur Verwendung von 3ds Max Batch im Rahmen von 3ds Max 2018.2 Update und 2018.3 Update finden Sie unter Verwenden der älteren 3ds Max Batch-Version.
3dsmaxbatch.exe <script_file> [options]
In dieser Syntax ist <script_file> der Name eines MAXScript- oder Python-Skripts und ein erforderlicher Parameter. 3ds Max Batch erkennt den Skripttyp automatisch.
3ds Max Batch wird gestartet und lädt die angegebene 3ds Max-Szenendatei (falls verfügbar – dies ist ein optionaler Parameter). Anschließend werden script_file und jegliche zusätzliche Eingaben, sofern vorhanden, ausgeführt. Anschließend wird das Programm beendet.
Sie können eine oder mehrere der folgenden Optionen an 3dsmaxbatch.exe übergeben.
Ausführlichkeitsstufe des Systemprotokolls. Gültige Argumente sind:
Der Standardwert ist 2.
Datumsformat-Zeichenfolge für das Konsolenprotokoll. Beispiel: yyyy-MM-dd oder ddd, MM/dd/yyyy
Eine Beschreibung der Formate für Datums- und Uhrzeitzeichenfolgen finden Sie unter https://docs.microsoft.com/de-DE/dotnet/standard/base-types/standard-date-and-time-format-strings.
Zeitformat-Zeichenfolge für das Konsolenprotokoll. Beispiel: hh:mm:ss oder ss : mm
Eine Beschreibung der Formate für Datums- und Uhrzeitzeichenfolgen finden Sie unter https://docs.microsoft.com/de-DE/dotnet/standard/base-types/standard-date-and-time-format-strings.
Die 3ds Max-Konfigurationsdatei (.ini). Vorgabemäßig handelt es sich dabei um die benutzerspezifische Vorgabe-Konfigurationsdatei (3dsmax.ini).
Die Konfigurationsdatei für das 3ds Max-Plug-in (.ini). Vorgabemäßig handelt es sich dabei um die benutzerspezifische Vorgabe-Plug-in-Konfigurationsdatei (Plugin.UserSettings.ini)
Schlagen Sie unter „Plugin.ini“ im 3ds Max-Entwicklerhandbuch nach, um weitere Informationen zu erhalten.
Die Aufzeichnungsprotokolldatei von 3ds Max zur Erfassung der Ausgabe der Aufzeichnungsfunktion. Vorgabemäßig wird kein Aufzeichnungsprotokoll erstellt.
Schlagen Sie unter „Aufzeichnungsprotokoll aktivieren“ im MAXScript-Handbuch nach, um weitere Informationen zu erhalten.
Die Systemprotokolldatei von 3ds Max. In dieser Datei werden Skriptfehler und Ausnahmen protokolliert. Vorgabemäßig handelt es sich dabei um die benutzerspezifische Systemprotokolldatei (Max.log)
Zustand des Dialogfeld-Monitors. Ist diese Option aktiviert, überprüft der Dialogfeld-Monitor auf von Plug-ins stammende Dialogfelder und schließt diese. Gültige Optionen sind: on|off, yes|no, 1|0 und true|false.
Die Vorgabe lautet off.
Weitere Informationen über den Dialogfeld-Monitor finden Sie unter „Benutzeroberfläche: DialogMonitorOPS“ im Handbuch zu MAXScript.
MAXScript-Zeichenfolgenparameteroption, wobei arg = <key>:<value> ist.
<value> kann als MAXScript-Zeichenfolge in <script_file> über das Wörterbuch maxOps.mxsCmdLineArgs mit <key> als Wörterbuchschlüssel abgerufen werden.
Die Zeichenfolge muss eine MAXScript-Zeichenfolge, d. h. in Anführungszeichen eingeschlossen sein, wobei Anführungszeichen und andere Sonderzeichen innerhalb der Zeichenfolge das Escape-Zeichen aufweisen müssen. Das Präfix @ vor der Zeichenfolge bedeutet, dass es sich um eine wortwörtliche Zeichenfolge handelt. Konsultieren Sie das Thema zu Zeichenfolgenliteralen im MAXScript-Handbuch, um weitere Informationen zu erhalten.
Es sind mehrfache Angaben möglich.
MAXScript-Wertparameteroption, wobei arg = <key>:<value> ist.
<value> kann als MAXScript-Wert in <script_file> über das Wörterbuch maxOps.mxsCmdLineArgs mit <key> als Wörterbuchschlüssel abgerufen werden.
Der Parameter <value> muss in Anführungszeichen gesetzt werden.
Es sind mehrfache Angaben möglich.
Die 3ds Max-Eingabeszenendatei, die vor der Ausführung von <script_file> zu laden ist.
Gibt an, ob der Python-3-Warnmodus aktiviert werden soll, in dem Elemente in Python-Skripts, die nicht mit Python 3 kompatibel sind, Warnungen auslösen. Gültige Werte für "arg" sind "1/0", "on/off", "yes/no" und "true/false", wobei der jeweils erste Wert den Modus aktiviert und der jeweils zweite Wert den Modus deaktiviert. Der Modus ist vorgabemäßig deaktiviert. Konsultieren Sie den Abschnitt über den Python-3-Warnmodus in der Hilfe zur 3ds Max Python-API, um weitere Informationen zu diesem Modus zu erhalten.
Als Argumente übergebene Pfade sind relativ zum aktuellen Verzeichnis, sofern sie nicht vollständig qualifiziert sind.
Anhand der beiden Befehlszeilenoptionen -mxsString und -mxsValue können Sie Zeichenfolgen bzw. Werte an die ausgeführte MAXScript-Datei übergeben. Die Werte stehen im Wörterbuch maxOps.mxsCmdLineArgs innerhalb von MAXScript als Schlüssel/Wert-Datenpaare zur Verfügung.
Beispiel für einen Befehlszeilenaufruf:
<3dsmaxpath>3dsmaxbatch demo_mxscmdline.ms -mxsString string1:"Hello" -mxsValue value1:"[3,12,22]" -mxsValue value2:"Point3 3 8 2.3" -listenerLog "test.log"
Und das Skript demo_mxscmdline.ms:
opts = maxOps.mxsCmdLineArgs for k in opts.keys do ( format "% == % class: %\n" k opts[k] (classOf opts[k]) )
Das Aufzeichnungsprotokoll test.log wird die folgende Ausgabe aufweisen:
#string1 == Hello class: String #value2 == [3,8,2.3] class: Point3 #value1 == [3,12,22] class: Point3
Mit Python-Skripten kann auf diese Werte über das Objekt pymxs.runtime zugegriffen werden.
Das gleiche Skript in Python würde folgendermaßen aussehen:
# demo using pymxs from pymxs import runtime as rt opts = rt.maxops.mxsCmdLineArgs for k in opts.keys: print "{} == {} class: {}\n".format(k, opts[k], rt.classof(opts[k])) # you can also get dict values using runtime.name, for example: # value1 = opts[rt.name('value1')] # or using runtime.execute to run MAXScript code # value1=rt.execute("GetDictValue maxops.mxsCmdLineArgs #value1")
Mit MAXScript können Sie auch Nachrichten zur Protokolldatei hinzufügen. Verwenden Sie die MAXScript-Funktion logsystem.logEntry <string> broadcast:true, um Skriptfortschritte zu protokollieren. Der Parameter broadcast:true gibt an, dass 3ds Max diese Protokollmeldung an 3ds Max Batch senden sollte.
Sie können eine 3ds Max-Szenendatei als ein Argument in 3ds Max Batch (-sceneFile) oder in Ihrem Skript mit loadMaxFile() laden. Welche Methode Sie letztendlich verwenden, hängt davon ab, wie Sie mit fehlenden Plug-ins und XRefs umgehen möchten. Die Methode loadMaxFile() bietet Argumente für den Umgang mit fehlenden Plug-Ins oder XRefs, auf deren Basis Ihr Skript entsprechend angepasst wird (siehe „Ruhemodus“ im MAXScript-Handbuch). Beim Laden einer Datei über -sceneFile werden Informationen zu den fehlenden Plug-ins und XRefs auf der Konsole ausgegeben, sodass das automatisierte 3ds Max Batch-Skript diese Informationen verarbeiten kann.
Das Skript kann die MAXScript-Methode maxops.isInNonInteractiveMode() verwenden, um zu ermitteln, ob es in einer 3ds Max-Sitzung mit Benutzeroberfläche oder in 3ds Max Batch ausgeführt wird. Weitere Informationen finden Sie im Thema "Benutzeroberfläche: maxops" im MAXScript-Handbuch, um weitere Informationen zu erhalten.
Exit-Codes
Ihr Automatisierungswerkzeug kann die Exit-Codes aus 3ds Max Batch und 3ds Max überprüfen, um festzustellen, ob der Auftrag erfolgreich ausgeführt wurde oder nicht und was gegebenenfalls die Ursache des Problems war. Bei erfolgreicher Ausführung wird 3ds Max Batch mit dem Exit-Code 0 beendet. Bei fehlerhafter Ausführung meldet 3ds Max Batch die folgenden Exit-Codes zusammen mit den übergebenen Parametern oder mit der Kommunikation mit 3ds Max:
Wenn 3ds Max einen Fehler protokolliert, meldet 3ds Max Batch einen Exit-Code, der ungleich null ist.
Bei nicht erfolgreicher Ausführung meldet 3ds Max Batch zudem den Exit-Code von 3ds Max (0).
MAXScript unterstützt nunmehr das Beenden von 3ds Max mit einem benutzerdefinierten Exit-Code. Rufen Sie dazu quitMax mit dem Argument exicode auf. Beispielsweise dieses MAXScript:
quitMAX quiet:true exitCode:-314159
Hierdurch wird der Exit-Code -314159 auf der Konsole ausgegeben:
6/12/2018 15:46:05 PM; Specified option script: testscript.ms 6/12/2018 15:46:05 PM; Defaulted option dm: 0 6/12/2018 15:46:05 PM; Defaulted option li: 0 6/12/2018 15:46:05 PM; 3ds Max Install Location: C:\Program Files\Autodesk\3ds Max 2019\ 6/12/2018 15:46:05 PM; 3ds Max Executable: 3dsmax.exe 6/12/2018 15:46:05 PM; Secure Mode: 'OFF' 6/12/2018 15:46:05 PM; Dialog Monitor: Off 6/12/2018 15:46:05 PM; Script command: " -mxs "(filein @\"C:\Program Files\Autodesk\3ds Max 2019\testscript.ms\")"" 6/12/2018 15:46:06 PM; Product version: 3ds Max 2019.2 Update (21.2.0.2095) 6/12/2018 15:46:06 PM; Data collection and use is 'OFF'. 6/12/2018 15:46:30 PM; 3ds Max Exit Code = -314159
C:\Program Files\Autodesk\3ds Max 2019>3dsmaxbatch.exe testscript.ms -v 5