FEM: mesh objects, show them only if they are edited or needed for result viewing
This commit is contained in:
@@ -401,7 +401,6 @@ class _TaskPanelFemResultShow:
|
||||
self.disable_empty_result_buttons()
|
||||
if (self.mesh_obj.FemMesh.NodeCount == len(self.result_obj.NodeNumbers)):
|
||||
self.suitable_results = True
|
||||
self.mesh_obj.ViewObject.Visibility = True
|
||||
hide_parts_constraints()
|
||||
else:
|
||||
if not self.mesh_obj.FemMesh.VolumeCount:
|
||||
|
||||
@@ -60,6 +60,7 @@ class _ViewProviderFemMeshGmsh:
|
||||
|
||||
def unsetEdit(self, vobj, mode):
|
||||
FreeCADGui.Control.closeDialog()
|
||||
self.ViewObject.hide() # hide the mesh after edit is finished
|
||||
return
|
||||
|
||||
def doubleClicked(self, vobj):
|
||||
|
||||
@@ -66,12 +66,14 @@ class _ViewProviderFemResultMechanical:
|
||||
return True
|
||||
|
||||
def setEdit(self, vobj, mode=0):
|
||||
|
||||
if FemGui.getActiveAnalysis() is not None:
|
||||
if hasattr(self.Object, "Mesh") and self.Object.Mesh:
|
||||
mem = FemGui.getActiveAnalysis().Member
|
||||
if self.Object in mem:
|
||||
if self.Object.Mesh in mem:
|
||||
hide_femmeshes_postpiplines()
|
||||
# only show the FEM mesh we would like to view results with
|
||||
self.Object.Mesh.ViewObject.show()
|
||||
import PyGui._TaskPanelFemResultShow
|
||||
taskd = PyGui._TaskPanelFemResultShow._TaskPanelFemResultShow(self.Object)
|
||||
taskd.obj = vobj.Object
|
||||
@@ -100,6 +102,7 @@ class _ViewProviderFemResultMechanical:
|
||||
|
||||
def unsetEdit(self, vobj, mode=0):
|
||||
FreeCADGui.Control.closeDialog()
|
||||
self.Object.Mesh.ViewObject.hide() # hide the mesh after result viewing is finished, but do not reset the coloring
|
||||
return
|
||||
|
||||
def __getstate__(self):
|
||||
@@ -107,3 +110,11 @@ class _ViewProviderFemResultMechanical:
|
||||
|
||||
def __setstate__(self, state):
|
||||
return None
|
||||
|
||||
|
||||
# helper
|
||||
def hide_femmeshes_postpiplines():
|
||||
# hide all visible FEM mesh objects and VTK FemPostPipeline objects
|
||||
for o in FreeCAD.ActiveDocument.Objects:
|
||||
if o.isDerivedFrom("Fem::FemMeshObject") or o.isDerivedFrom("Fem::FemPostPipeline"):
|
||||
o.ViewObject.hide()
|
||||
|
||||
Reference in New Issue
Block a user