import os from pymxs import runtime as rt def force_menu_to_ui(): try: # 1. Garante que o MacroScript (Action) existe para o botão funcionar plugin_dir = os.path.dirname(os.path.realpath(__file__)).replace("\\", "/") macro_cmd = f""" macroScript VR4Life_Launcher category:"Immerse Games" tooltip:"Abrir VR4Life" ( python.executeFile @{plugin_dir}/run_vr4life.py@ ) """ rt.execute(macro_cmd) # 2. Localiza a barra de menus principal do 3ds Max main_menu = rt.menuMan.getMainMenuBar() # 3. Verifica se o menu VR4Life já está lá para não duplicar already_exists = False for i in range(1, main_menu.numItems() + 1): if main_menu.getItem(i).getTitle() == "VR4Life": already_exists = True break if not already_exists: # Tenta encontrar o menu definido no seu .mnx # No Max 2026, usamos o título que você deu no arquivo vr_menu = rt.menuMan.findMenu("VR4Life") if vr_menu: # Cria o item de interface e insere antes do 'Help' (último item) menu_item = rt.menuMan.createSubMenuItem("VR4Life", vr_menu) main_menu.addItem(menu_item, main_menu.numItems()) rt.menuMan.updateMenuBar() print("VR4Life: Menu injetado com sucesso na barra principal.") else: print("VR4Life: Definição de menu não encontrada. Tente reiniciar o Max.") return True except Exception as e: print(f"Erro ao injetar menu: {str(e)}") return False if __name__ == "__main__": force_menu_to_ui()