3dsmaxbatch.exe <script_file> [options]
Nesta sintaxe, <script_file> é o nome de um MAXScript ou de um script Python, e é um parâmetro necessário. O 3ds Max Batch detecta automaticamente o tipo de script. Ele pode executar todas as extensões do MAXScript e arquivos .py, .pyc e .pyw do Python.
O 3ds Max Batch é iniciado e carrega o arquivo de cena especificado do 3ds Max (se fornecido; este é um parâmetro opcional). Ele executa o script_file e todas as entradas adicionais, se houver. Em seguida, é encerrado.
Você pode transmitir um ou mais dos seguintes itens como opções ao arquivo 3dsmaxbatch.exe.
Nível de verbosidade do registro do sistema. Argumentos válidos:
O valor padrão é 2.
Sequência de caracteres de formato de data para o registro do console. Por exemplo, "yyyy-MM-dd" ou "ddd, MM/dd/yyyy"
Consulte https://docs.microsoft.com/pt-BR/dotnet/standard/base-types/standard-date-and-time-format-strings para obter uma descrição dos formatos de sequências de caracteres de data e hora.
Sequência de caracteres de formato de hora para o registro do console. Por exemplo, "hh:mm:ss" ou "ss : mm"
Consulte https://docs.microsoft.com/pt-BR/dotnet/standard/base-types/standard-date-and-time-format-strings para obter uma descrição dos formatos de sequências de caracteres de data e hora.
O arquivo de configuração do 3ds (.ini). Adota o arquivo de configuração padrão por usuário (3dsmax.ini).
O arquivo de configuração de plug-in do 3ds Max (.ini). Adota o arquivo de configuração de plug-in padrão por usuário (Plugin.UserSettings.ini)
Consulte o tópico "Plugin.ini" no guia do desenvolvedor do 3ds Max para obter mais informações.
O arquivo de registro do 3ds Max Listener para capturar a saída do ouvinte. Nenhum registro de ouvinte é criado por padrão.
Consulte o tópico sobre "ativação do registro do Listener" no Guia do MAXScript para obter mais informações.
O arquivo de registro de sistema do 3ds Max. Os erros e exceções de script são registrados neste arquivo. Adota como padrão o arquivo de registro de sistema por usuário (Max.log)
Estado do Monitor de caixa de diálogo. Quando ativado, o monitor de caixa de diálogo detecta e fecha caixas de diálogo de plug-ins. Seleções válidas: 'on|off', 'yes|no', '1|0' e 'true|false'.
O padrão adotado é off.
Para obter mais informações sobre o Monitor de caixa de diálogo, consulte o tópico sobre "interface: DialogMonitorOPS" no Guia do MAXScript.
Opção de Parâmetro de sequência de caracteres do MAXScript, em que arg = <key>:<value> .
<value> é acessível como sequência de caracteres do MAXScript em <script_file> por meio do dicionário maxOps.mxsCmdLineArgs usando-se <key> como a chave de dicionário.
A sequência de caracteres deve ser do MAXScript, ou seja, deve estar entre aspas, e todas as aspas e outros caracteres especiais dentro da sequência de caracteres devem ser tratados como sequências de escape. A sequência de caracteres deve ter o prefixo '@', indicando que é do tipo literal. Consulte o tópico sobre "Literais de sequência de caracteres" no Guia do MAXScript para obter mais informações.
Podem ser especificados várias vezes.
Opção de parâmetro de valor do MAXScript, em que arg = <key>:<value>.
<value> é acessível como sequência de caracteres do MAXScript em <script_file> por meio do dicionário maxOps.mxsCmdLineArgs usando-se <key> como a chave de dicionário.
O parâmetro <value> deve ficar entre aspas.
Podem ser especificados várias vezes.
O arquivo de cena de entrada do 3ds Max a ser carregado antes de <script_file> ser executado.
Os caminhos transmitidos como argumentos são relativos ao diretório atual, a menos que sejam totalmente qualificados.
Duas opções da linha de comando permitem transmitir informações ao arquivo MAXScript executado: -mxsString e -mxsValue, que transmitem respectivamente sequências e valores. Os valores podem ser acessados dentro do MAXScript, no dicionário maxOps.mxsCmdLineArgs como DataPairs de chave/valor.
Por exemplo, considere esta chamada de linha de comando:
<3dsmaxpath>3dsmaxbatch demo_mxscmdline.ms -mxsString string1:"Hello" -mxsValue value1:"[3,12,22]" -mxsValue value2:"Point3 3 8 2.3" -listenerLog "test.log"
E o script demo_mxscmdline.ms:
opts = maxOps.mxsCmdLineArgs for k in opts.keys do ( format "% == % class: %\n" k opts[k] (classOf opts[k]) )
O registro de ouvinte test.log deve conter a saída:
#string1 == Hello class: String #value2 == [3,8,2.3] class: Point3 #value1 == [3,12,22] class: Point3
Os scripts Python também podem acessar esses valores por meio do objeto pymxs.runtime.
O mesmo script escrito em Python teria esta aparência:
# 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")
Você também pode adicionar mensagens ao arquivo de registro por meio do MAXScript. Use a função logsystem.logEntry <string> broadcast:true no MAXScript para registrar o andamento do script. O parâmetro broadcast:true indica que o 3ds Max deve transmitir essa mensagem de registro ao 3ds Max Batch.
Você pode carregar um arquivo de cena do 3ds Max como argumento em (-sceneFile) do 3ds Max Batch, ou no seu próprio script, com loadMaxFile(). O método escolhido vai depender de como você deseja reagir aos plug-ins e refexs ausentes. O método loadMaxFile() fornece argumentos para lidar com a ausência de plug-ins, refexs etc., para que seu script possa reagir corretamente (consulte o tópico sobre "modo de saída" no Guia do MAXScript). O carregamento de um arquivo através de -sceneFile imprimirá informações sobre plug-ins e refexs ausentes no console para serem usadas pelo script de automação que chama o 3ds Max Batch.
Seu script pode usar o método MAXScript maxops.isInNonInteractiveMode() para determinar se ele está em execução em uma sessão do 3ds Max que tem uma interface de usuário ou no 3ds Max Batch. Consulte o tópico "Interface: maxops" no Guia do MAXScript para obter mais informações.
Códigos de saída
O 3ds Max Batch reportará um código de saída diferente de zero quando o 3ds Max registrar um erro.
Além disso, ele também reportará o código de saída do 3ds Max, caso seja diferente de "sucesso" (0).
Sua ferramenta de automação pode verificar os códigos de saída do 3ds Max Batchx e do 3ds Max para determinar se o trabalho foi bem-sucedido e, caso tenha havido algum problema, qual foi a causa. Em caso de sucesso, o 3ds Max Batch sai com o código de saída 0. O 3ds Max Batch reportará esses códigos de saída se houver erro nos parâmetros transmitidos a ele ou na comunicação com o 3ds Max:
| Código de saída | Significado |
|---|---|
| 0 | Sucesso |
| -100 | Argumentos ausentes, ou os argumentos especificados não são válidos. |
| -110 | Não foi possível iniciar o processo do 3ds Max; o motivo específico está registrado no console. |
| -120 | Não foi possível estabelecer ou manter a comunicação com o processo do 3ds Max. |
| -130 | O 3ds Max reportou um erro durante a execução dos comandos. |
| Códigos de erro fatal adicionais: | |
| -1 | Falha genérica, exceção tratada |
| -2 | Exceção não tratada |
| -3 | O processo apresentou erro fatal ao processar WM_CLOSE |
| -4 | O processo apresentou erro fatal ao processar WM_DESTROY |
| -5 | O processo apresentou erro fatal antes do final de WinMain() |
| -6 | Sem memória |
| -7 | Não foi possível criar um dispositivo gráfico válido |
| -8 | Erro de licença |
| -9 | Não foi possível criar o aplicativo |
O MAXScript também permite sair do 3ds Max com um código de saída definido pelo usuário. Para isso, chame quitMax com o argumento exicode. Por exemplo, este MAXScript:
quitMAX quiet:true exitCode:-314159
O código de saída -314159 será impresso no console:
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