79 lines
2.8 KiB
Python
79 lines
2.8 KiB
Python
![]() |
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)
|