import FreeCAD import FreeCADGui FreeCADGui.addCommand(, my_function1) FreeCADGui.addCommand(, my_function1) FreeCADGui.addCommand(, my_function1) FreeCADGui.addCommand(, my_function1) FreeCADGui.addCommand(, my_function1) FreeCADGui.addCommand(, my_function1) FreeCADGui.addCommand(, my_function1) FreeCADGui.addCommand(, my_function1) FreeCADGui.addCommand(, my_function1) class MyWorkbenchGui: def Initialize(self): # Словарь с именами функций и путями к иконкам commands_dict = { "MyCommand1": (my_function1, "Path/to/icon1.svg"), "MyCommand2": (my_function2, "Path/to/icon2.svg") } # Регистрация команд и иконок register_commands(commands_dict) # Создание панели инструментов и добавление команд с иконками self.appendToolbar("My Tools", [("MyCommand1", "MyCommand1_icon"), ("MyCommand2", "MyCommand2_icon")]) def appendToolbar(self, toolbar_name, commands): toolbar = FreeCADGui.ToolBar(toolbar_name) for cmd, icon in commands: toolbar.appendCommand(cmd, icon) class MyWorkbench: def __init__(self): self.__class__.Icon = FreeCAD.getHomePath() + "Path\\to\\icon.svg" self.__class__.MenuText = "Assembly Structure Analysis" self.__class__.ToolTip = "Workbench made for structure analysis and assembly planning" def GetClassName(self): return "Gui::AsmSAWorkbench" def Initialize(self): # Create toolbar self.appendToolbar("Preprocessing", ["Check Model", "Constraints Autogeneration", "Constraints Editing"]) self.appendToolbar("Analysis", ["Generate AdjMatrix", "Generate Relationship Matrix", "Clusterisation", "StepByStepClusterisation"]) self.appendToolbar("AssemblySequence", ["Generate Assembly Sequences", "Decomposition Step" ]) # Create menu # self.appendMenu("My Menu", ["MySubMenu1", "MySubMenu2"]) def Activated(self): # Code to run when the workbench is activated pass def Deactivated(self): # Code to run when the workbench is deactivated pass def GetResources(self): return {'Pixmap': self.__class__.Icon, 'MenuText': self.__class__.MenuText, 'ToolTip': self.__class__.ToolTip} def appendToolbar(self, toolbar_name, commands): toolbar = FreeCADGui.ToolBar(toolbar_name) for cmd in commands: toolbar.appendCommand(cmd) def appendMenu(self, menu_name, commands): menu = FreeCADGui.Menu(menu_name) for cmd in commands: menu.appendCommand(cmd) # Create instance of the workbench my_workbench = MyWorkbench() # Register the workbench with FreeCAD FreeCADGui.addWorkbench(my_workbench)