From 6b7ec3d85a87ea72c9972ebd4f58a59614e594da Mon Sep 17 00:00:00 2001 From: qingfengxia Date: Fri, 16 Jun 2017 23:41:44 +0100 Subject: [PATCH] FEM: add FemMeshBoundaryLayer Command and icon file --- .../icons/fem-femmesh-boundary-layer.svg | 372 ++++++++++++++++++ src/Mod/Fem/Gui/Workbench.cpp | 2 + src/Mod/Fem/InitGui.py | 1 + .../Fem/PyGui/_CommandFemMeshBoundaryLayer.py | 57 +++ 4 files changed, 432 insertions(+) create mode 100644 src/Mod/Fem/Gui/Resources/icons/fem-femmesh-boundary-layer.svg create mode 100644 src/Mod/Fem/PyGui/_CommandFemMeshBoundaryLayer.py diff --git a/src/Mod/Fem/Gui/Resources/icons/fem-femmesh-boundary-layer.svg b/src/Mod/Fem/Gui/Resources/icons/fem-femmesh-boundary-layer.svg new file mode 100644 index 0000000000..75848ec18d --- /dev/null +++ b/src/Mod/Fem/Gui/Resources/icons/fem-femmesh-boundary-layer.svg @@ -0,0 +1,372 @@ + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Mod/Fem/Gui/Workbench.cpp b/src/Mod/Fem/Gui/Workbench.cpp index c616f74e82..9af85a6aa2 100755 --- a/src/Mod/Fem/Gui/Workbench.cpp +++ b/src/Mod/Fem/Gui/Workbench.cpp @@ -96,6 +96,7 @@ Gui::ToolBarItem* Workbench::setupToolBars() const *mesh << "FEM_MeshNetgenFromShape" << "FEM_MeshGmshFromShape" << "Separator" + << "FEM_MeshBoundaryLayer" << "FEM_MeshRegion" << "FEM_MeshGroup" << "Separator" @@ -189,6 +190,7 @@ Gui::MenuItem* Workbench::setupMenuBar() const *mesh << "FEM_MeshNetgenFromShape" << "FEM_MeshGmshFromShape" << "Separator" + << "FEM_MeshBoundaryLayer" << "FEM_MeshRegion" << "FEM_MeshGroup" << "Separator" diff --git a/src/Mod/Fem/InitGui.py b/src/Mod/Fem/InitGui.py index 71e043cb09..dd7395fb4c 100644 --- a/src/Mod/Fem/InitGui.py +++ b/src/Mod/Fem/InitGui.py @@ -54,6 +54,7 @@ class FemWorkbench (Workbench): import PyGui._CommandFemMaterialFluid import PyGui._CommandFemMaterialMechanicalNonlinear import PyGui._CommandFemMesh2Mesh + import PyGui._CommandFemMeshBoundaryLayer import PyGui._CommandFemMeshClear import PyGui._CommandFemMeshGmshFromShape import PyGui._CommandFemMeshGroup diff --git a/src/Mod/Fem/PyGui/_CommandFemMeshBoundaryLayer.py b/src/Mod/Fem/PyGui/_CommandFemMeshBoundaryLayer.py new file mode 100644 index 0000000000..40ee92362c --- /dev/null +++ b/src/Mod/Fem/PyGui/_CommandFemMeshBoundaryLayer.py @@ -0,0 +1,57 @@ +# *************************************************************************** +# * * +# * 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__ = "_CommandMeshBoundaryLayer" +__author__ = "Bernd Hahnebach, Qingfeng Xia" +__url__ = "http://www.freecadweb.org" + +## @package CommandFemMeshBoundaryLayer +# \ingroup FEM + +import FreeCAD +from FemCommands import FemCommands +import FreeCADGui +from PySide import QtCore + + +class _CommandFemMeshBoundaryLayer(FemCommands): + "The FEM_MeshBoundaryLayer command definition" + def __init__(self): + super(_CommandFemMeshBoundaryLayer, self).__init__() + self.resources = {'Pixmap': 'fem-femmesh-boundary-layer', + 'MenuText': QtCore.QT_TRANSLATE_NOOP("FEM_MeshBoundaryLayer", "FEM mesh boundary layer"), + 'Accel': "M, B", + 'ToolTip': QtCore.QT_TRANSLATE_NOOP("FEM_MeshBoundaryLayer", "Creates a FEM mesh boundary layer")} + self.is_active = 'with_gmsh_femmesh' + + def Activated(self): + FreeCAD.ActiveDocument.openTransaction("Create FemMeshBoundaryLayer") + 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("ObjectsFem.makeMeshBoundaryLayer(App.ActiveDocument." + sobj.Name + ")") + + FreeCADGui.Selection.clearSelection() + +FreeCADGui.addCommand('FEM_MeshBoundaryLayer', _CommandFemMeshBoundaryLayer())