FEM: mesh result object, make it child of mechanical result

This commit is contained in:
Bernd Hahnebach
2017-08-02 05:53:39 +01:00
parent 265d10ca80
commit 193f96771a
2 changed files with 16 additions and 1 deletions

View File

@@ -66,8 +66,11 @@ class FemTools(QtCore.QRunnable, QtCore.QObject):
def purge_results(self):
for m in self.analysis.Member:
if (m.isDerivedFrom('Fem::FemResultObject')):
if m.Mesh and hasattr(m.Mesh, "Proxy") and m.Mesh.Proxy.Type == "FemMeshResult":
self.analysis.Document.removeObject(m.Mesh.Name)
self.analysis.Document.removeObject(m.Name)
self.results_present = False
FreeCAD.ActiveDocument.recompute()
## Resets mesh deformation
# @param self The python object self

View File

@@ -70,7 +70,8 @@ class _ViewProviderFemResultMechanical:
if hasattr(self.Object, "Mesh") and self.Object.Mesh:
mem = FemGui.getActiveAnalysis().Member
if self.Object in mem:
if self.Object.Mesh in mem:
# if self.Object.Mesh in mem:
if True:
hide_femmeshes_postpiplines()
# only show the FEM mesh we would like to view results with
self.Object.Mesh.ViewObject.show()
@@ -111,6 +112,17 @@ class _ViewProviderFemResultMechanical:
def __setstate__(self, state):
return None
def claimChildren(self):
return [self.Object.Mesh] # claimChildren needs to return a list !
def onDelete(self, feature, subelements):
try:
for obj in self.claimChildren():
obj.ViewObject.show()
except Exception as err:
FreeCAD.Console.PrintError("Error in onDelete: " + err.message)
return True
# helper
def hide_femmeshes_postpiplines():