FEM: Purge tool deletes all result objects. Fixes #23028
- Correctly deletes children of pipeline without error on delete - Ensures visualizations are also deleted as they are result objects too - Ensures purge tool uses a transaction, like all tools should
This commit is contained in:
@@ -109,11 +109,8 @@ App::DocumentObject* FemPostGroupExtension::getGroupOfObject(const App::Document
|
||||
|
||||
void FemPostGroupExtension::onExtendedUnsetupObject()
|
||||
{
|
||||
// remove all children!
|
||||
auto document = getExtendedObject()->getDocument();
|
||||
for (const auto& obj : Group.getValues()) {
|
||||
document->removeObject(obj->getNameInDocument());
|
||||
}
|
||||
// remove all children (if not already removed)!
|
||||
removeObjectsFromDocument();
|
||||
}
|
||||
|
||||
bool FemPostGroupExtension::allowObject(App::DocumentObject* obj)
|
||||
|
||||
@@ -926,7 +926,9 @@ class _ResultsPurge(CommandManager):
|
||||
def Activated(self):
|
||||
import femresult.resulttools as resulttools
|
||||
|
||||
FreeCAD.ActiveDocument.openTransaction("Purge FEM results")
|
||||
resulttools.purge_results(self.active_analysis)
|
||||
FreeCAD.ActiveDocument.commitTransaction()
|
||||
|
||||
|
||||
class _SolverCalculixContextManager:
|
||||
|
||||
@@ -80,6 +80,7 @@ class PostVisualization(base_fempythonobject.BaseFemPythonObject):
|
||||
|
||||
def __init__(self, obj):
|
||||
super().__init__(obj)
|
||||
self.Type = "Fem::FemPostVisualization"
|
||||
obj.addExtension("App::GroupExtensionPython")
|
||||
self._setup_properties(obj)
|
||||
|
||||
|
||||
@@ -75,6 +75,12 @@ def purge_results(analysis):
|
||||
analysis.Document.removeObject(m.Name)
|
||||
analysis.Document.recompute()
|
||||
|
||||
# remove visulizations
|
||||
for m in analysis.Group:
|
||||
if is_of_type(m, "Fem::FemPostVisualization"):
|
||||
analysis.Document.removeObject(m.Name)
|
||||
analysis.Document.recompute()
|
||||
|
||||
|
||||
def reset_mesh_deformation(resultobj):
|
||||
"""Resets result mesh deformation.
|
||||
|
||||
Reference in New Issue
Block a user