From 43a9e96192fdea171e0cd0caa6530b09bf5756f6 Mon Sep 17 00:00:00 2001 From: Bernd Hahnebach Date: Thu, 5 Oct 2017 05:59:10 +0100 Subject: [PATCH] FEM: command modules, get rid of duplicate selection code --- src/Mod/Fem/PyGui/_CommandFemMeshBoundaryLayer.py | 7 ++----- src/Mod/Fem/PyGui/_CommandFemMeshGroup.py | 7 ++----- src/Mod/Fem/PyGui/_CommandFemMeshRegion.py | 7 ++----- src/Mod/Fem/PyGui/_CommandFemSolverRun.py | 4 +--- 4 files changed, 7 insertions(+), 18 deletions(-) diff --git a/src/Mod/Fem/PyGui/_CommandFemMeshBoundaryLayer.py b/src/Mod/Fem/PyGui/_CommandFemMeshBoundaryLayer.py index 22118def9f..39d1f9553a 100644 --- a/src/Mod/Fem/PyGui/_CommandFemMeshBoundaryLayer.py +++ b/src/Mod/Fem/PyGui/_CommandFemMeshBoundaryLayer.py @@ -46,11 +46,8 @@ class _CommandFemMeshBoundaryLayer(FemCommands): 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(FreeCAD.ActiveDocument, FreeCAD.ActiveDocument." + sobj.Name + ")") + self.mesh = FreeCADGui.Selection.getSelection()[0] # see 'with_gmsh_femmesh' in FemCommands for selection check + FreeCADGui.doCommand("ObjectsFem.makeMeshBoundaryLayer(FreeCAD.ActiveDocument, FreeCAD.ActiveDocument." + self.mesh.Name + ")") FreeCADGui.Selection.clearSelection() diff --git a/src/Mod/Fem/PyGui/_CommandFemMeshGroup.py b/src/Mod/Fem/PyGui/_CommandFemMeshGroup.py index 4954380a7f..5c60f0475b 100644 --- a/src/Mod/Fem/PyGui/_CommandFemMeshGroup.py +++ b/src/Mod/Fem/PyGui/_CommandFemMeshGroup.py @@ -46,11 +46,8 @@ class _CommandFemMeshGroup(FemCommands): def Activated(self): FreeCAD.ActiveDocument.openTransaction("Create FemMeshGroup") 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.makeMeshGroup(FreeCAD.ActiveDocument, FreeCAD.ActiveDocument." + sobj.Name + ")") + self.mesh = FreeCADGui.Selection.getSelection()[0] # see 'with_gmsh_femmesh' in FemCommands for selection check + FreeCADGui.doCommand("ObjectsFem.makeMeshGroup(FreeCAD.ActiveDocument, FreeCAD.ActiveDocument." + self.mesh.Name + ")") FreeCADGui.Selection.clearSelection() diff --git a/src/Mod/Fem/PyGui/_CommandFemMeshRegion.py b/src/Mod/Fem/PyGui/_CommandFemMeshRegion.py index 83d913e2cd..79aef6a2aa 100644 --- a/src/Mod/Fem/PyGui/_CommandFemMeshRegion.py +++ b/src/Mod/Fem/PyGui/_CommandFemMeshRegion.py @@ -46,11 +46,8 @@ class _CommandFemMeshRegion(FemCommands): def Activated(self): FreeCAD.ActiveDocument.openTransaction("Create 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("ObjectsFem.makeMeshRegion(FreeCAD.ActiveDocument, FreeCAD.ActiveDocument." + sobj.Name + ")") + self.mesh = FreeCADGui.Selection.getSelection()[0] # see 'with_gmsh_femmesh' in FemCommands for selection check + FreeCADGui.doCommand("ObjectsFem.makeMeshRegion(FreeCAD.ActiveDocument, FreeCAD.ActiveDocument." + self.mesh.Name + ")") FreeCADGui.Selection.clearSelection() diff --git a/src/Mod/Fem/PyGui/_CommandFemSolverRun.py b/src/Mod/Fem/PyGui/_CommandFemSolverRun.py index 5ccec9157f..cce1f8b1d2 100644 --- a/src/Mod/Fem/PyGui/_CommandFemSolverRun.py +++ b/src/Mod/Fem/PyGui/_CommandFemSolverRun.py @@ -49,9 +49,7 @@ class _CommandFemSolverRun(FemCommands): else: print ("CalculiX failed ccx finished with error {}".format(ret_code)) - sel = FreeCADGui.Selection.getSelection() - if len(sel) == 1 and sel[0].isDerivedFrom("Fem::FemSolverObjectPython"): - self.solver = sel[0] + self.solver = FreeCADGui.Selection.getSelection()[0] # see 'with_solver' in FemCommands for selection check if self.solver.SolverType == "FemSolverCalculix": import FemToolsCcx self.fea = FemToolsCcx.FemToolsCcx(None, self.solver)