From 907a14d73ae1f8b5203cde5c8f7e0f1aaebac828 Mon Sep 17 00:00:00 2001 From: Bernd Hahnebach Date: Mon, 20 Feb 2017 18:00:19 +0100 Subject: [PATCH] FEM: nonlinear material object, move make def into make objects FEM module --- src/Mod/Fem/App/CMakeLists.txt | 1 - src/Mod/Fem/CMakeLists.txt | 1 - src/Mod/Fem/FemMaterialMechanicalNonlinear.py | 45 ------------------- src/Mod/Fem/ObjectsFem.py | 12 +++++ .../_CommandMaterialMechanicalNonlinear.py | 4 +- 5 files changed, 14 insertions(+), 49 deletions(-) delete mode 100644 src/Mod/Fem/FemMaterialMechanicalNonlinear.py diff --git a/src/Mod/Fem/App/CMakeLists.txt b/src/Mod/Fem/App/CMakeLists.txt index 82ddcb669..6017f2143 100644 --- a/src/Mod/Fem/App/CMakeLists.txt +++ b/src/Mod/Fem/App/CMakeLists.txt @@ -125,7 +125,6 @@ SET(FemScripts_SRCS FemInputWriter.py FemInputWriterCcx.py FemInputWriterZ88.py - FemMaterialMechanicalNonlinear.py FemMesh2Mesh.py FemMeshGmsh.py FemMeshGroup.py diff --git a/src/Mod/Fem/CMakeLists.txt b/src/Mod/Fem/CMakeLists.txt index 196541f52..372b94b27 100755 --- a/src/Mod/Fem/CMakeLists.txt +++ b/src/Mod/Fem/CMakeLists.txt @@ -94,7 +94,6 @@ INSTALL( _TaskPanelFemMaterial.py TaskPanelFemMaterial.ui - FemMaterialMechanicalNonlinear.py _FemMaterialMechanicalNonlinear.py _ViewProviderFemMaterialMechanicalNonlinear.py _CommandMaterialMechanicalNonlinear.py diff --git a/src/Mod/Fem/FemMaterialMechanicalNonlinear.py b/src/Mod/Fem/FemMaterialMechanicalNonlinear.py deleted file mode 100644 index 55dbf2ba9..000000000 --- a/src/Mod/Fem/FemMaterialMechanicalNonlinear.py +++ /dev/null @@ -1,45 +0,0 @@ -# *************************************************************************** -# * * -# * Copyright (c) 2016 - Bernd Hahnebach * -# * * -# * This program is free software; you can redistribute it and/or modify * -# * it under the terms of the GNU Lesser General Public License (LGPL) * -# * as published by the Free Software Foundation; either version 2 of * -# * the License, or (at your option) any later version. * -# * for detail see the LICENCE text file. * -# * * -# * This program is distributed in the hope that it will be useful, * -# * but WITHOUT ANY WARRANTY; without even the implied warranty of * -# * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -# * GNU Library General Public License for more details. * -# * * -# * You should have received a copy of the GNU Library General Public * -# * License along with this program; if not, write to the Free Software * -# * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -# * USA * -# * * -# *************************************************************************** - -__title__ = "FemMaterialMechanicalNonlinear" -__author__ = "Bernd Hahnebach" -__url__ = "http://www.freecadweb.org" - -## \addtogroup FEM -# @{ - -import FreeCAD -import FemGui -import _FemMaterialMechanicalNonlinear - - -def makeFemMaterialMechanicalNonlinear(base_material, name="MechanicalMaterialNonlinear"): - '''makeFemMaterialMechanicalNonlinear(base_material, [name]): creates an nonlinear material object''' - obj = FemGui.getActiveAnalysis().Document.addObject("Fem::FeaturePython", name) - _FemMaterialMechanicalNonlinear._FemMaterialMechanicalNonlinear(obj) - obj.LinearBaseMaterial = base_material - if FreeCAD.GuiUp: - import _ViewProviderFemMaterialMechanicalNonlinear - _ViewProviderFemMaterialMechanicalNonlinear._ViewProviderFemMaterialMechanicalNonlinear(obj.ViewObject) - return obj - -# @} diff --git a/src/Mod/Fem/ObjectsFem.py b/src/Mod/Fem/ObjectsFem.py index 85e9327f5..76e5d148d 100644 --- a/src/Mod/Fem/ObjectsFem.py +++ b/src/Mod/Fem/ObjectsFem.py @@ -122,6 +122,18 @@ def makeMaterialFluid(name): return obj +def makeMaterialMechanicalNonlinear(base_material, name="MechanicalMaterialNonlinear"): + '''makeMaterialMechanicalNonlinear(base_material, [name]): creates an nonlinear material object''' + obj = FreeCAD.ActiveDocument.addObject("Fem::FeaturePython", name) + import _FemMaterialMechanicalNonlinear + _FemMaterialMechanicalNonlinear._FemMaterialMechanicalNonlinear(obj) + obj.LinearBaseMaterial = base_material + if FreeCAD.GuiUp: + import _ViewProviderFemMaterialMechanicalNonlinear + _ViewProviderFemMaterialMechanicalNonlinear._ViewProviderFemMaterialMechanicalNonlinear(obj.ViewObject) + return obj + + ########## results ########## def makeMechanicalResult(name="MechanicalResult"): '''makeMechanicalResult(name): creates an mechanical object result to hold FEM results''' diff --git a/src/Mod/Fem/_CommandMaterialMechanicalNonlinear.py b/src/Mod/Fem/_CommandMaterialMechanicalNonlinear.py index 556425961..b90deeb23 100644 --- a/src/Mod/Fem/_CommandMaterialMechanicalNonlinear.py +++ b/src/Mod/Fem/_CommandMaterialMechanicalNonlinear.py @@ -57,9 +57,9 @@ class _CommandMaterialMechanicalNonlinear(FemCommands): break if allow_nonlinear_material: string_lin_mat_obj = "App.ActiveDocument.getObject('" + lin_mat_obj.Name + "')" - command_to_run = "FemGui.getActiveAnalysis().Member = FemGui.getActiveAnalysis().Member + [FemMaterialMechanicalNonlinear.makeFemMaterialMechanicalNonlinear(" + string_lin_mat_obj + ")]" + command_to_run = "FemGui.getActiveAnalysis().Member = FemGui.getActiveAnalysis().Member + [ObjectsFem.makeMaterialMechanicalNonlinear(" + string_lin_mat_obj + ")]" FreeCAD.ActiveDocument.openTransaction("Create FemMaterialMechanicalNonlinear") - FreeCADGui.addModule("FemMaterialMechanicalNonlinear") + FreeCADGui.addModule("ObjectsFem") FreeCADGui.doCommand(command_to_run) # set the material nonlinear property of the solver to nonlinear if only one solver is available and if this solver is a CalculiX solver solver_object = None