From 264d5e91ede103d26e59b8678fb6852b95060345 Mon Sep 17 00:00:00 2001 From: Bernd Hahnebach Date: Sun, 16 Jun 2019 18:26:05 +0200 Subject: [PATCH] FEM: reinforced material, add a GUI command --- src/Mod/Fem/Gui/Workbench.cpp | 2 ++ src/Mod/Fem/femcommands/commands.py | 35 +++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/src/Mod/Fem/Gui/Workbench.cpp b/src/Mod/Fem/Gui/Workbench.cpp index 84646e8c71..10598fbf14 100755 --- a/src/Mod/Fem/Gui/Workbench.cpp +++ b/src/Mod/Fem/Gui/Workbench.cpp @@ -87,6 +87,7 @@ Gui::ToolBarItem* Workbench::setupToolBars() const << "FEM_MaterialSolid" << "FEM_MaterialFluid" << "FEM_MaterialMechanicalNonlinear" + << "FEM_MaterialReinforced" << "FEM_MaterialEditor" << "Separator" << "FEM_ElementGeometry1D" @@ -190,6 +191,7 @@ Gui::MenuItem* Workbench::setupMenuBar() const *material << "FEM_MaterialSolid" << "FEM_MaterialFluid" << "FEM_MaterialMechanicalNonlinear" + << "FEM_MaterialReinforced" << "FEM_MaterialEditor"; Gui::MenuItem* elec = new Gui::MenuItem; diff --git a/src/Mod/Fem/femcommands/commands.py b/src/Mod/Fem/femcommands/commands.py index 4a08def59f..e14f1d0146 100644 --- a/src/Mod/Fem/femcommands/commands.py +++ b/src/Mod/Fem/femcommands/commands.py @@ -665,6 +665,37 @@ class _CommandFemMaterialMechanicalNonlinear(CommandManager): FreeCAD.ActiveDocument.recompute() +class _CommandFemMaterialReinforced(CommandManager): + "The FEM_MaterialReinforced command definition" + def __init__(self): + super(_CommandFemMaterialReinforced, self).__init__() + self.resources = { + 'Pixmap': 'fem-material-reinforced', + 'MenuText': QtCore.QT_TRANSLATE_NOOP( + "FEM_MaterialReinforced", + "Reinforced material (concrete)" + ), + 'Accel': "M, M", + 'ToolTip': QtCore.QT_TRANSLATE_NOOP( + "FEM_MaterialReinforced", + "Creates a material for reinforced matrix material such as concrete" + ) + } + self.is_active = 'with_analysis' + + def Activated(self): + FreeCAD.ActiveDocument.openTransaction("Create Reinforced Material") + FreeCADGui.addModule("ObjectsFem") + FreeCADGui.doCommand( + "FemGui.getActiveAnalysis().addObject(ObjectsFem." + "makeMaterialReinforced(FreeCAD.ActiveDocument, 'ReinforcedMaterial'))" + ) + FreeCADGui.doCommand( + "FreeCADGui.ActiveDocument.setEdit(FreeCAD.ActiveDocument.ActiveObject.Name)" + ) + FreeCAD.ActiveDocument.recompute() + + class _CommandFemMaterialSolid(CommandManager): "The FEM_MaterialSolid command definition" def __init__(self): @@ -1296,6 +1327,10 @@ FreeCADGui.addCommand( 'FEM_MaterialMechanicalNonlinear', _CommandFemMaterialMechanicalNonlinear() ) +FreeCADGui.addCommand( + 'FEM_MaterialReinforced', + _CommandFemMaterialReinforced() +) FreeCADGui.addCommand( 'FEM_MaterialSolid', _CommandFemMaterialSolid()