You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
2.2 KiB
Python
51 lines
2.2 KiB
Python
import os
|
|
import shutil
|
|
import pymxs
|
|
|
|
def instalar_menu_vr4life():
|
|
try:
|
|
# 1. Pega o nome exato do arquivo que você gerou no 3ds Max
|
|
# (Altere aqui se você salvou com outro nome)
|
|
nome_arquivo_mnx = "VR4Life.mnx"
|
|
|
|
# 2. Descobre a pasta atual onde este instalador Python está rodando
|
|
diretorio_atual = os.path.dirname(os.path.realpath(__file__))
|
|
caminho_origem_mnx = os.path.join(diretorio_atual, nome_arquivo_mnx)
|
|
|
|
# Trava de segurança: verifica se você não esqueceu de colocar o .mnx junto
|
|
if not os.path.exists(caminho_origem_mnx):
|
|
pymxs.runtime.messageBox(
|
|
f"Erro na instalação: O arquivo '{nome_arquivo_mnx}' não foi encontrado na pasta.",
|
|
title="VR4Life - Erro"
|
|
)
|
|
return False
|
|
|
|
# 3. Magia do pymxs: Pergunta ao 3ds Max onde fica a pasta UI daquele usuário
|
|
# Geralmente é C:\Users\[Nome]\AppData\Local\Autodesk\3dsMax\2026 - 64bit\ENU\en-US\UI\
|
|
pasta_ui_usuario = pymxs.runtime.pathConfig.getDir(pymxs.runtime.name("userUI"))
|
|
caminho_destino_mnx = os.path.join(pasta_ui_usuario, nome_arquivo_mnx)
|
|
|
|
# 4. Copia o arquivo .mnx silenciosamente para a máquina do cliente
|
|
shutil.copy2(caminho_origem_mnx, caminho_destino_mnx)
|
|
|
|
# 5. Avisa no console interno do 3ds Max que deu certo (ótimo para debug)
|
|
pymxs.runtime.print_(f"VR4Life: Arquivo de menu copiado com sucesso para {pasta_ui_usuario}\n")
|
|
|
|
# 6. Alerta final de sucesso na tela para a sua equipe
|
|
pymxs.runtime.messageBox(
|
|
"O menu do VR4Life foi instalado com sucesso!\n\nSe ele não aparecer imediatamente no topo, reinicie o 3ds Max.",
|
|
title="VR4Life - Instalação Concluída"
|
|
)
|
|
return True
|
|
|
|
except Exception as e:
|
|
# Captura qualquer erro (falta de permissão no Windows, etc.)
|
|
pymxs.runtime.messageBox(
|
|
f"Falha ao instalar o menu.\nErro técnico: {str(e)}",
|
|
title="VR4Life - Erro Fatal"
|
|
)
|
|
return False
|
|
|
|
# Dispara a função quando o script for rodado no 3ds Max
|
|
if __name__ == '__main__':
|
|
instalar_menu_vr4life() |