From 9a81201b24c4b8e8753adac2b612cedb917003d6 Mon Sep 17 00:00:00 2001 From: tarman3 Date: Mon, 27 Oct 2025 12:46:06 +0200 Subject: [PATCH] CAM: Simulator submenu in toolbar --- src/Mod/CAM/InitGui.py | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/src/Mod/CAM/InitGui.py b/src/Mod/CAM/InitGui.py index 710f786786..1381142a02 100644 --- a/src/Mod/CAM/InitGui.py +++ b/src/Mod/CAM/InitGui.py @@ -123,13 +123,14 @@ class CAMWorkbench(Workbench): # build commands list projcmdlist = ["CAM_Job", "CAM_Post", "CAM_Sanity"] - toolcmdlist = [ - "CAM_Inspect", - "CAM_Simulator", - "CAM_SimulatorGL", - "CAM_SelectLoop", - "CAM_OpActiveToggle", - ] + toolcmdlist = ["CAM_Inspect", "CAM_SelectLoop", "CAM_OpActiveToggle"] + + simcmdlist = ["CAM_SimulatorGL", "CAM_Simulator"] + prefs = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/CAM") + simLegacy = prefs.GetBool("DefaultSimulatorLegacy", False) + if simLegacy: + simcmdlist.reverse() + prepcmdlist = [ "CAM_Comment", "CAM_Stop", @@ -165,6 +166,14 @@ class CAMWorkbench(Workbench): toolcmdlist.extend(PathToolBitLibraryCmd.BarList) toolbitcmdlist = PathToolBitLibraryCmd.MenuList + simcmdgroup = ["CAM_SimTools"] + FreeCADGui.addCommand( + "CAM_SimTools", + PathCommandGroup( + simcmdlist, + QT_TRANSLATE_NOOP("CAM_SimTools", "Simulators"), + ), + ) engravecmdgroup = ["CAM_EngraveTools"] FreeCADGui.addCommand( "CAM_EngraveTools", @@ -243,7 +252,10 @@ class CAMWorkbench(Workbench): FreeCAD.Console.PrintError("OpenCamLib is not working!\n") self.appendToolbar(QT_TRANSLATE_NOOP("Workbench", "Project Setup"), projcmdlist) - self.appendToolbar(QT_TRANSLATE_NOOP("Workbench", "Tool Commands"), toolcmdlist) + self.appendToolbar( + QT_TRANSLATE_NOOP("Workbench", "Tool Commands"), + simcmdgroup + toolcmdlist, + ) self.appendToolbar( QT_TRANSLATE_NOOP("Workbench", "New Operations"), twodopcmdlist + drillingcmdgroup + engravecmdgroup + threedcmdgroup, @@ -258,6 +270,7 @@ class CAMWorkbench(Workbench): [QT_TRANSLATE_NOOP("Workbench", "&CAM")], projcmdlist + ["CAM_ExportTemplate", "Separator"] + + simcmdlist + toolcmdlist + toolbitcmdlist + ["Separator"]