diff --git a/src/Mod/Fem/FemTools.py b/src/Mod/Fem/FemTools.py index dcdd0e3bbe..3809a028fd 100644 --- a/src/Mod/Fem/FemTools.py +++ b/src/Mod/Fem/FemTools.py @@ -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 diff --git a/src/Mod/Fem/PyGui/_ViewProviderFemResultMechanical.py b/src/Mod/Fem/PyGui/_ViewProviderFemResultMechanical.py index fa120f3996..dc8c050917 100644 --- a/src/Mod/Fem/PyGui/_ViewProviderFemResultMechanical.py +++ b/src/Mod/Fem/PyGui/_ViewProviderFemResultMechanical.py @@ -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():