Skip to content

Commit

Permalink
FEM: mesh objects, show them only if they are edited or needed for re…
Browse files Browse the repository at this point in the history
…sult viewing
  • Loading branch information
berndhahnebach authored and wwmayer committed Jul 3, 2017
1 parent b2fa046 commit c4fc809
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 2 deletions.
1 change: 0 additions & 1 deletion src/Mod/Fem/PyGui/_TaskPanelFemResultShow.py
Expand Up @@ -401,7 +401,6 @@ def update(self):
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:
Expand Down
1 change: 1 addition & 0 deletions src/Mod/Fem/PyGui/_ViewProviderFemMeshGmsh.py
Expand Up @@ -60,6 +60,7 @@ def setEdit(self, vobj, mode):

def unsetEdit(self, vobj, mode):
FreeCADGui.Control.closeDialog()
self.ViewObject.hide() # hide the mesh after edit is finished
return

def doubleClicked(self, vobj):
Expand Down
13 changes: 12 additions & 1 deletion src/Mod/Fem/PyGui/_ViewProviderFemResultMechanical.py
Expand Up @@ -66,12 +66,14 @@ def doubleClicked(self, vobj):
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
Expand Down Expand Up @@ -100,10 +102,19 @@ def setEdit(self, vobj, mode=0):

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):
return None

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

0 comments on commit c4fc809

Please sign in to comment.