From fe1a733ced63d95b2312af8492147e711b6d1c3f Mon Sep 17 00:00:00 2001 From: Bernd Hahnebach Date: Mon, 20 Feb 2017 18:03:37 +0100 Subject: [PATCH] FEM: mesh region 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/FemMeshRegion.py | 49 ------------------------------- src/Mod/Fem/ObjectsFem.py | 17 +++++++++++ src/Mod/Fem/_CommandMeshRegion.py | 4 +-- 5 files changed, 19 insertions(+), 53 deletions(-) delete mode 100644 src/Mod/Fem/FemMeshRegion.py diff --git a/src/Mod/Fem/App/CMakeLists.txt b/src/Mod/Fem/App/CMakeLists.txt index bd1876c0f087..f28c2c38bbad 100644 --- a/src/Mod/Fem/App/CMakeLists.txt +++ b/src/Mod/Fem/App/CMakeLists.txt @@ -126,7 +126,6 @@ SET(FemScripts_SRCS FemInputWriterCcx.py FemInputWriterZ88.py FemMesh2Mesh.py - FemMeshRegion.py FemMeshTools.py FemTools.py FemToolsCcx.py diff --git a/src/Mod/Fem/CMakeLists.txt b/src/Mod/Fem/CMakeLists.txt index bcee19b9060d..e2ff2f3de3fd 100755 --- a/src/Mod/Fem/CMakeLists.txt +++ b/src/Mod/Fem/CMakeLists.txt @@ -62,7 +62,6 @@ INSTALL( _TaskPanelFemMeshGroup.py TaskPanelFemMeshGroup.ui - FemMeshRegion.py _FemMeshRegion.py _ViewProviderFemMeshRegion.py _CommandMeshRegion.py diff --git a/src/Mod/Fem/FemMeshRegion.py b/src/Mod/Fem/FemMeshRegion.py deleted file mode 100644 index f3332d92dc0c..000000000000 --- a/src/Mod/Fem/FemMeshRegion.py +++ /dev/null @@ -1,49 +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__ = "FemMeshRegion" -__author__ = "Bernd Hahnebach" -__url__ = "http://www.freecadweb.org" - -## \addtogroup FEM -# @{ - -import FreeCAD -import _FemMeshRegion - - -def makeFemMeshRegion(base_mesh, element_length=0.0, name="FEMMeshRegion"): - '''makeFemMeshRegion([length], [name]): creates a FEM mesh region object to define properties for a regon of a FEM mesh''' - obj = FreeCAD.ActiveDocument.addObject("Fem::FeaturePython", name) - _FemMeshRegion._FemMeshRegion(obj) - obj.CharacteristicLength = element_length - # obj.BaseMesh = base_mesh - # App::PropertyLinkList does not support append, we will use a temporary list to append the mesh region obj. to the list - tmplist = base_mesh.MeshRegionList - tmplist.append(obj) - base_mesh.MeshRegionList = tmplist - if FreeCAD.GuiUp: - import _ViewProviderFemMeshRegion - _ViewProviderFemMeshRegion._ViewProviderFemMeshRegion(obj.ViewObject) - return obj - -# @} diff --git a/src/Mod/Fem/ObjectsFem.py b/src/Mod/Fem/ObjectsFem.py index 083620c6ae60..28317afcfcf0 100644 --- a/src/Mod/Fem/ObjectsFem.py +++ b/src/Mod/Fem/ObjectsFem.py @@ -277,6 +277,23 @@ def makeMeshGroup(base_mesh, use_label=False, name="FEMMeshGroup"): return obj +def makeMeshRegion(base_mesh, element_length=0.0, name="FEMMeshRegion"): + '''makeMeshRegion([length], [name]): creates a FEM mesh region object to define properties for a regon of a FEM mesh''' + obj = FreeCAD.ActiveDocument.addObject("Fem::FeaturePython", name) + import _FemMeshRegion + _FemMeshRegion._FemMeshRegion(obj) + obj.CharacteristicLength = element_length + # obj.BaseMesh = base_mesh + # App::PropertyLinkList does not support append, we will use a temporary list to append the mesh region obj. to the list + tmplist = base_mesh.MeshRegionList + tmplist.append(obj) + base_mesh.MeshRegionList = tmplist + if FreeCAD.GuiUp: + import _ViewProviderFemMeshRegion + _ViewProviderFemMeshRegion._ViewProviderFemMeshRegion(obj.ViewObject) + return obj + + ''' # print supportedTypes App.newDocument() diff --git a/src/Mod/Fem/_CommandMeshRegion.py b/src/Mod/Fem/_CommandMeshRegion.py index bf1f84137130..6164c91311b1 100644 --- a/src/Mod/Fem/_CommandMeshRegion.py +++ b/src/Mod/Fem/_CommandMeshRegion.py @@ -45,12 +45,12 @@ def __init__(self): def Activated(self): FreeCAD.ActiveDocument.openTransaction("Create FemMeshRegion") - FreeCADGui.addModule("FemMeshRegion") + FreeCADGui.addModule("ObjectsFem") sel = FreeCADGui.Selection.getSelection() if (len(sel) == 1): sobj = sel[0] if len(sel) == 1 and hasattr(sobj, "Proxy") and sobj.Proxy.Type == "FemMeshGmsh": - FreeCADGui.doCommand("FemMeshRegion.makeFemMeshRegion(App.ActiveDocument." + sobj.Name + ")") + FreeCADGui.doCommand("ObjectsFem.makeMeshRegion(App.ActiveDocument." + sobj.Name + ")") FreeCADGui.Selection.clearSelection()