diff --git a/src/Mod/Fem/App/CMakeLists.txt b/src/Mod/Fem/App/CMakeLists.txt index 5d66dc2a5..82ddcb669 100644 --- a/src/Mod/Fem/App/CMakeLists.txt +++ b/src/Mod/Fem/App/CMakeLists.txt @@ -134,7 +134,6 @@ SET(FemScripts_SRCS FemTools.py FemToolsCcx.py FemToolsZ88.py - FemMaterial.py FemSelectionObserver.py ObjectsFem.py TestFem.py diff --git a/src/Mod/Fem/CMakeLists.txt b/src/Mod/Fem/CMakeLists.txt index be67e72e5..196541f52 100755 --- a/src/Mod/Fem/CMakeLists.txt +++ b/src/Mod/Fem/CMakeLists.txt @@ -87,7 +87,6 @@ INSTALL( _ViewProviderFemConstraintSelfWeight.py _CommandConstraintSelfWeight.py - FemMaterial.py _FemMaterial.py _ViewProviderFemMaterial.py _CommandMaterialSolid.py diff --git a/src/Mod/Fem/FemMaterial.py b/src/Mod/Fem/FemMaterial.py deleted file mode 100644 index 3d84440e8..000000000 --- a/src/Mod/Fem/FemMaterial.py +++ /dev/null @@ -1,60 +0,0 @@ -# *************************************************************************** -# * * -# * Copyright (c) 2013 - Juergen Riegel * -# * * -# * 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__ = "FemMaterial" -__author__ = "Juergen Riegel, Bernd Hahnebach" -__url__ = "http://www.freecadweb.org" - -## \addtogroup FEM -# @{ - -import FreeCAD -import _FemMaterial - - -def makeSolidMaterial(name): - '''makeSolidMaterial(name): makes an FEM Material for solid - ''' - obj = FreeCAD.ActiveDocument.addObject("App::MaterialObjectPython", name) - _FemMaterial._FemMaterial(obj) - obj.Category = 'Solid' - if FreeCAD.GuiUp: - import _ViewProviderFemMaterial - _ViewProviderFemMaterial._ViewProviderFemMaterial(obj.ViewObject) - # FreeCAD.ActiveDocument.recompute() - return obj - - -def makeFluidMaterial(name): - '''makeFluidMaterial(name): makes an FEM Material for fluid - ''' - obj = FreeCAD.ActiveDocument.addObject("App::MaterialObjectPython", name) - _FemMaterial._FemMaterial(obj) - obj.Category = 'Fluid' - if FreeCAD.GuiUp: - import _ViewProviderFemMaterial - _ViewProviderFemMaterial._ViewProviderFemMaterial(obj.ViewObject) - # FreeCAD.ActiveDocument.recompute() - return obj - -makeFemMaterial = makeSolidMaterial # alias to be compatible for FemTest.py -# @} diff --git a/src/Mod/Fem/ObjectsFem.py b/src/Mod/Fem/ObjectsFem.py index 52e5f3016..85e9327f5 100644 --- a/src/Mod/Fem/ObjectsFem.py +++ b/src/Mod/Fem/ObjectsFem.py @@ -95,6 +95,33 @@ def makeShellThickness(thickness=20.0, name="ShellThickness"): return obj +########## materials ########## +def makeMaterialSolid(name): + '''makeMaterialSolid(name): makes an FEM Material for solid''' + obj = FreeCAD.ActiveDocument.addObject("App::MaterialObjectPython", name) + import _FemMaterial + _FemMaterial._FemMaterial(obj) + obj.Category = 'Solid' + if FreeCAD.GuiUp: + import _ViewProviderFemMaterial + _ViewProviderFemMaterial._ViewProviderFemMaterial(obj.ViewObject) + # FreeCAD.ActiveDocument.recompute() + return obj + + +def makeMaterialFluid(name): + '''makeMaterialFluid(name): makes an FEM Material for fluid''' + obj = FreeCAD.ActiveDocument.addObject("App::MaterialObjectPython", name) + import _FemMaterial + _FemMaterial._FemMaterial(obj) + obj.Category = 'Fluid' + if FreeCAD.GuiUp: + import _ViewProviderFemMaterial + _ViewProviderFemMaterial._ViewProviderFemMaterial(obj.ViewObject) + # FreeCAD.ActiveDocument.recompute() + return obj + + ########## results ########## def makeMechanicalResult(name="MechanicalResult"): '''makeMechanicalResult(name): creates an mechanical object result to hold FEM results''' diff --git a/src/Mod/Fem/TestFem.py b/src/Mod/Fem/TestFem.py index 4e58ff8f6..0ecc25615 100644 --- a/src/Mod/Fem/TestFem.py +++ b/src/Mod/Fem/TestFem.py @@ -28,7 +28,6 @@ import Fem import FemToolsCcx import FreeCAD import ObjectsFem -import FemMaterial import csv import tempfile import unittest @@ -114,7 +113,7 @@ class FemTest(unittest.TestCase): self.active_doc.recompute() def create_new_material(self): - self.new_material_object = FemMaterial.makeFemMaterial('MechanicalMaterial') + self.new_material_object = ObjectsFem.makeMaterialSolid('MechanicalMaterial') mat = self.new_material_object.Material mat['Name'] = "Steel-Generic" mat['YoungsModulus'] = "200000 MPa" @@ -335,7 +334,7 @@ class TherMechFemTest(unittest.TestCase): self.active_doc.recompute() def create_new_material(self): - self.new_material_object = FemMaterial.makeFemMaterial('MechanicalMaterial') + self.new_material_object = ObjectsFem.makeMaterialSolid('MechanicalMaterial') mat = self.new_material_object.Material mat['Name'] = "Steel-Generic" mat['YoungsModulus'] = "200000 MPa" diff --git a/src/Mod/Fem/_CommandMaterialSolid.py b/src/Mod/Fem/_CommandMaterialSolid.py index d32628f52..c251d5585 100644 --- a/src/Mod/Fem/_CommandMaterialSolid.py +++ b/src/Mod/Fem/_CommandMaterialSolid.py @@ -49,8 +49,8 @@ class _CommandMaterialSolid(FemCommands): if FreeCAD.ActiveDocument is not femDoc: FreeCADGui.setActiveDocument(femDoc) FreeCAD.ActiveDocument.openTransaction("Create Solid Material") - FreeCADGui.addModule("FemMaterial") - FreeCADGui.doCommand("FemMaterial.makeSolidMaterial('SolidMaterial')") + FreeCADGui.addModule("ObjectsFem") + FreeCADGui.doCommand("ObjectsFem.makeMaterialSolid('SolidMaterial')") FreeCADGui.doCommand("App.activeDocument()." + FemGui.getActiveAnalysis().Name + ".Member = App.activeDocument()." + FemGui.getActiveAnalysis().Name + ".Member + [App.ActiveDocument.ActiveObject]") FreeCADGui.doCommand("Gui.activeDocument().setEdit(App.ActiveDocument.ActiveObject.Name)")