From 995606a2fca1717fd44e280708e213b2efd2df7f Mon Sep 17 00:00:00 2001 From: Bernd Hahnebach Date: Mon, 21 May 2018 14:31:51 +0200 Subject: [PATCH] FEM: Python constraints, hide meshes while constraint task panel is opened --- .../_ViewProviderFemConstraintElectrostaticPotential.py | 9 +++++++-- .../_ViewProviderFemConstraintFlowVelocity.py | 9 +++++++-- .../_ViewProviderFemConstraintInitialFlowVelocity.py | 9 +++++++-- .../Fem/femguiobjects/_ViewProviderFemElementFluid1D.py | 5 +++++ .../femguiobjects/_ViewProviderFemElementGeometry1D.py | 5 +++++ .../femguiobjects/_ViewProviderFemElementGeometry2D.py | 5 +++++ .../femguiobjects/_ViewProviderFemElementRotation1D.py | 5 +++++ src/Mod/Fem/femguiobjects/_ViewProviderFemMaterial.py | 5 +++++ src/Mod/Fem/femguiobjects/_ViewProviderFemMeshGmsh.py | 8 +++++++- 9 files changed, 53 insertions(+), 7 deletions(-) diff --git a/src/Mod/Fem/femguiobjects/_ViewProviderFemConstraintElectrostaticPotential.py b/src/Mod/Fem/femguiobjects/_ViewProviderFemConstraintElectrostaticPotential.py index 4cdf6a216a..c4a5f530bf 100644 --- a/src/Mod/Fem/femguiobjects/_ViewProviderFemConstraintElectrostaticPotential.py +++ b/src/Mod/Fem/femguiobjects/_ViewProviderFemConstraintElectrostaticPotential.py @@ -26,7 +26,7 @@ __author__ = "Markus Hovorka, Bernd Hahnebach" __url__ = "http://www.freecadweb.org" -import FreeCAD as App +import FreeCAD import femtools.femutils as FemUtils from . import ViewProviderFemConstraint from FreeCAD import Units @@ -41,6 +41,11 @@ class ViewProxy(ViewProviderFemConstraint.ViewProxy): return ":/icons/fem-constraint-electrostatic-potential.svg" def setEdit(self, vobj, mode=0): + # hide all meshes + for o in FreeCAD.ActiveDocument.Objects: + if o.isDerivedFrom("Fem::FemMeshObject"): + o.ViewObject.hide() + # show task panel task = _TaskPanel(vobj.Object) Gui.Control.showDialog(task) @@ -61,7 +66,7 @@ class _TaskPanel(object): self._refWidget = FemSelectionWidgets.BoundarySelector() self._refWidget.setReferences(obj.References) self._paramWidget = Gui.PySideUic.loadUi( - App.getHomePath() + "Mod/Fem/Resources/ui/ElectrostaticPotential.ui") + FreeCAD.getHomePath() + "Mod/Fem/Resources/ui/ElectrostaticPotential.ui") self._initParamWidget() self.form = [self._refWidget, self._paramWidget] analysis = FemUtils.findAnalysisOfMember(obj) diff --git a/src/Mod/Fem/femguiobjects/_ViewProviderFemConstraintFlowVelocity.py b/src/Mod/Fem/femguiobjects/_ViewProviderFemConstraintFlowVelocity.py index debc854f96..3b1ea5d5e1 100644 --- a/src/Mod/Fem/femguiobjects/_ViewProviderFemConstraintFlowVelocity.py +++ b/src/Mod/Fem/femguiobjects/_ViewProviderFemConstraintFlowVelocity.py @@ -26,7 +26,7 @@ __author__ = "Markus Hovorka, Bernd Hahnebach" __url__ = "http://www.freecadweb.org" -import FreeCAD as App +import FreeCAD import femtools.femutils as FemUtils from . import ViewProviderFemConstraint from FreeCAD import Units @@ -41,6 +41,11 @@ class ViewProxy(ViewProviderFemConstraint.ViewProxy): return ":/icons/fem-constraint-flow-velocity.svg" def setEdit(self, vobj, mode=0): + # hide all meshes + for o in FreeCAD.ActiveDocument.Objects: + if o.isDerivedFrom("Fem::FemMeshObject"): + o.ViewObject.hide() + # show task panel task = _TaskPanel(vobj.Object) Gui.Control.showDialog(task) @@ -61,7 +66,7 @@ class _TaskPanel(object): self._refWidget = FemSelectionWidgets.BoundarySelector() self._refWidget.setReferences(obj.References) self._paramWidget = Gui.PySideUic.loadUi( - App.getHomePath() + "Mod/Fem/Resources/ui/FlowVelocity.ui") + FreeCAD.getHomePath() + "Mod/Fem/Resources/ui/FlowVelocity.ui") self._initParamWidget() self.form = [self._refWidget, self._paramWidget] analysis = FemUtils.findAnalysisOfMember(obj) diff --git a/src/Mod/Fem/femguiobjects/_ViewProviderFemConstraintInitialFlowVelocity.py b/src/Mod/Fem/femguiobjects/_ViewProviderFemConstraintInitialFlowVelocity.py index 8734ec036d..ee206ab6c0 100644 --- a/src/Mod/Fem/femguiobjects/_ViewProviderFemConstraintInitialFlowVelocity.py +++ b/src/Mod/Fem/femguiobjects/_ViewProviderFemConstraintInitialFlowVelocity.py @@ -26,7 +26,7 @@ __author__ = "Markus Hovorka, Bernd Hahnebach" __url__ = "http://www.freecadweb.org" -import FreeCAD as App +import FreeCAD import femtools.femutils as FemUtils from . import ViewProviderFemConstraint from FreeCAD import Units @@ -40,6 +40,11 @@ class ViewProxy(ViewProviderFemConstraint.ViewProxy): return ":/icons/fem-constraint-initial-flow-velocity.svg" def setEdit(self, vobj, mode=0): + # hide all meshes + for o in FreeCAD.ActiveDocument.Objects: + if o.isDerivedFrom("Fem::FemMeshObject"): + o.ViewObject.hide() + # show task panel task = _TaskPanel(vobj.Object) Gui.Control.showDialog(task) @@ -58,7 +63,7 @@ class _TaskPanel(object): def __init__(self, obj): self._obj = obj self._paramWidget = Gui.PySideUic.loadUi( - App.getHomePath() + "Mod/Fem/Resources/ui/InitialFlowVelocity.ui") + FreeCAD.getHomePath() + "Mod/Fem/Resources/ui/InitialFlowVelocity.ui") self._initParamWidget() self.form = [self._paramWidget] analysis = FemUtils.findAnalysisOfMember(obj) diff --git a/src/Mod/Fem/femguiobjects/_ViewProviderFemElementFluid1D.py b/src/Mod/Fem/femguiobjects/_ViewProviderFemElementFluid1D.py index 6e646a7d51..fee368653f 100644 --- a/src/Mod/Fem/femguiobjects/_ViewProviderFemElementFluid1D.py +++ b/src/Mod/Fem/femguiobjects/_ViewProviderFemElementFluid1D.py @@ -67,6 +67,11 @@ class _ViewProviderFemElementFluid1D: return def setEdit(self, vobj, mode=0): + # hide all meshes + for o in FreeCAD.ActiveDocument.Objects: + if o.isDerivedFrom("Fem::FemMeshObject"): + o.ViewObject.hide() + # show task panel taskd = _TaskPanelFemElementFluid1D(self.Object) taskd.obj = vobj.Object FreeCADGui.Control.showDialog(taskd) diff --git a/src/Mod/Fem/femguiobjects/_ViewProviderFemElementGeometry1D.py b/src/Mod/Fem/femguiobjects/_ViewProviderFemElementGeometry1D.py index 7aaef4616c..37b2cc1359 100644 --- a/src/Mod/Fem/femguiobjects/_ViewProviderFemElementGeometry1D.py +++ b/src/Mod/Fem/femguiobjects/_ViewProviderFemElementGeometry1D.py @@ -66,6 +66,11 @@ class _ViewProviderFemElementGeometry1D: return def setEdit(self, vobj, mode=0): + # hide all meshes + for o in FreeCAD.ActiveDocument.Objects: + if o.isDerivedFrom("Fem::FemMeshObject"): + o.ViewObject.hide() + # show task panel taskd = _TaskPanelFemElementGeometry1D(self.Object) taskd.obj = vobj.Object FreeCADGui.Control.showDialog(taskd) diff --git a/src/Mod/Fem/femguiobjects/_ViewProviderFemElementGeometry2D.py b/src/Mod/Fem/femguiobjects/_ViewProviderFemElementGeometry2D.py index 6836cd030a..7136b6b48a 100644 --- a/src/Mod/Fem/femguiobjects/_ViewProviderFemElementGeometry2D.py +++ b/src/Mod/Fem/femguiobjects/_ViewProviderFemElementGeometry2D.py @@ -65,6 +65,11 @@ class _ViewProviderFemElementGeometry2D: return def setEdit(self, vobj, mode=0): + # hide all meshes + for o in FreeCAD.ActiveDocument.Objects: + if o.isDerivedFrom("Fem::FemMeshObject"): + o.ViewObject.hide() + # show task panel taskd = _TaskPanelFemElementGeometry2D(self.Object) taskd.obj = vobj.Object FreeCADGui.Control.showDialog(taskd) diff --git a/src/Mod/Fem/femguiobjects/_ViewProviderFemElementRotation1D.py b/src/Mod/Fem/femguiobjects/_ViewProviderFemElementRotation1D.py index 0165b35d32..71df523486 100644 --- a/src/Mod/Fem/femguiobjects/_ViewProviderFemElementRotation1D.py +++ b/src/Mod/Fem/femguiobjects/_ViewProviderFemElementRotation1D.py @@ -66,6 +66,11 @@ class _ViewProviderFemElementRotation1D: ''' # do not activate the task panel, since rotation with reference shapes is not yet supported def setEdit(self, vobj, mode=0): + # hide all meshes + for o in FreeCAD.ActiveDocument.Objects: + if o.isDerivedFrom("Fem::FemMeshObject"): + o.ViewObject.hide() + # show task panel taskd = _TaskPanelFemElementRotation1D(self.Object) taskd.obj = vobj.Object FreeCADGui.Control.showDialog(taskd) diff --git a/src/Mod/Fem/femguiobjects/_ViewProviderFemMaterial.py b/src/Mod/Fem/femguiobjects/_ViewProviderFemMaterial.py index 8505befd86..c9430bb4e7 100644 --- a/src/Mod/Fem/femguiobjects/_ViewProviderFemMaterial.py +++ b/src/Mod/Fem/femguiobjects/_ViewProviderFemMaterial.py @@ -63,6 +63,11 @@ class _ViewProviderFemMaterial: return def setEdit(self, vobj, mode): + # hide all meshes + for o in FreeCAD.ActiveDocument.Objects: + if o.isDerivedFrom("Fem::FemMeshObject"): + o.ViewObject.hide() + # show task panel taskd = _TaskPanelFemMaterial(self.Object) taskd.obj = vobj.Object FreeCADGui.Control.showDialog(taskd) diff --git a/src/Mod/Fem/femguiobjects/_ViewProviderFemMeshGmsh.py b/src/Mod/Fem/femguiobjects/_ViewProviderFemMeshGmsh.py index 3761f92c54..0408a30204 100644 --- a/src/Mod/Fem/femguiobjects/_ViewProviderFemMeshGmsh.py +++ b/src/Mod/Fem/femguiobjects/_ViewProviderFemMeshGmsh.py @@ -61,7 +61,13 @@ class _ViewProviderFemMeshGmsh: return def setEdit(self, vobj, mode): - self.ViewObject.show() # show the mesh on edit if it is hided + # hide all meshes + for o in FreeCAD.ActiveDocument.Objects: + if o.isDerivedFrom("Fem::FemMeshObject"): + o.ViewObject.hide() + # show the mesh we like to edit + self.ViewObject.show() + # show task panel taskd = _TaskPanelFemMeshGmsh(self.Object) taskd.obj = vobj.Object FreeCADGui.Control.showDialog(taskd)