FEM: Python constraints, hide meshes while constraint task panel is opened

This commit is contained in:
Bernd Hahnebach
2018-05-21 14:31:51 +02:00
committed by wmayer
parent 8243c7c194
commit 995606a2fc
9 changed files with 53 additions and 7 deletions

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)