From 5816bf187166d98f3024c81a88e5fc7a268f92b1 Mon Sep 17 00:00:00 2001 From: Przemo Firszt Date: Fri, 5 Jun 2015 11:55:55 +0100 Subject: [PATCH] FEM: Move prepare_analysis_objects out of _JobControlTaskPanel class Signed-off-by: Przemo Firszt --- src/Mod/Fem/MechanicalAnalysis.py | 71 +++++++++++++++++-------------- 1 file changed, 39 insertions(+), 32 deletions(-) diff --git a/src/Mod/Fem/MechanicalAnalysis.py b/src/Mod/Fem/MechanicalAnalysis.py index 89cc474bd..44b853885 100644 --- a/src/Mod/Fem/MechanicalAnalysis.py +++ b/src/Mod/Fem/MechanicalAnalysis.py @@ -399,7 +399,16 @@ class _JobControlTaskPanel: if not FemGui.getActiveAnalysis(): QtGui.QMessageBox.critical(None, "Missing prerequisite", "No active Analysis") return False - self.prepare_analysis_objects() + self.MeshObject = None + # [{'Object':MaterialObject}, {}, ...] + self.MaterialObjects = [] + # [{'Object':FixedObject, 'NodeSupports':bool}, {}, ...] + self.FixedObjects = [] + # [{'Object':ForceObject, 'NodeLoad':value}, {}, ... + self.ForceObjects = [] + # [{'Object':PressureObject, 'xxxxxxxx':value}, {}, ...] + self.PressureObjects = [] + (self.MeshObject, self.MaterialObjects, self.FixedObjects, self.ForceObjects, self.PressureObjects) = prepare_analysis_objects() if not self.MeshObject: QtGui.QMessageBox.critical(None, "Missing prerequisite", "No mesh object in the Analysis") @@ -418,37 +427,6 @@ class _JobControlTaskPanel: return False return True - def prepare_analysis_objects(self): - self.MeshObject = None - # [{'Object':MaterialObject}, {}, ...] - self.MaterialObjects = [] - # [{'Object':FixedObject, 'NodeSupports':bool}, {}, ...] - self.FixedObjects = [] - # [{'Object':ForceObject, 'NodeLoad':value}, {}, ... - self.ForceObjects = [] - # [{'Object':PressureObject, 'xxxxxxxx':value}, {}, ...] - self.PressureObjects = [] - - for i in FemGui.getActiveAnalysis().Member: - if i.isDerivedFrom("Fem::FemMeshObject"): - self.MeshObject = i - elif i.isDerivedFrom("App::MaterialObjectPython"): - MaterialObjectDict = {} - MaterialObjectDict['Object'] = i - self.MaterialObjects.append(MaterialObjectDict) - elif i.isDerivedFrom("Fem::ConstraintFixed"): - FixedObjectDict = {} - FixedObjectDict['Object'] = i - self.FixedObjects.append(FixedObjectDict) - elif i.isDerivedFrom("Fem::ConstraintForce"): - ForceObjectDict = {} - ForceObjectDict['Object'] = i - self.ForceObjects.append(ForceObjectDict) - elif i.isDerivedFrom("Fem::ConstraintPressure"): - PressureObjectDict = {} - PressureObjectDict['Object'] = i - self.PressureObjects.append(PressureObjectDict) - def start_ext_editor(self, ext_editor_path, filename): if not hasattr(self, "ext_editor_process"): self.ext_editor_process = QtCore.QProcess() @@ -688,6 +666,35 @@ def reset_mesh_deformation(mesh=None): mesh = i mesh.ViewObject.applyDisplacement(0.0) + +def prepare_analysis_objects(): + MeshObject = None + MaterialObjects = [] + FixedObjects = [] + ForceObjects = [] + PressureObjects = [] + + for i in FemGui.getActiveAnalysis().Member: + if i.isDerivedFrom("Fem::FemMeshObject"): + MeshObject = i + elif i.isDerivedFrom("App::MaterialObjectPython"): + MaterialObjectDict = {} + MaterialObjectDict['Object'] = i + MaterialObjects.append(MaterialObjectDict) + elif i.isDerivedFrom("Fem::ConstraintFixed"): + FixedObjectDict = {} + FixedObjectDict['Object'] = i + FixedObjects.append(FixedObjectDict) + elif i.isDerivedFrom("Fem::ConstraintForce"): + ForceObjectDict = {} + ForceObjectDict['Object'] = i + ForceObjects.append(ForceObjectDict) + elif i.isDerivedFrom("Fem::ConstraintPressure"): + PressureObjectDict = {} + PressureObjectDict['Object'] = i + PressureObjects.append(PressureObjectDict) + return (MeshObject, MaterialObjects, FixedObjects, ForceObjects, PressureObjects) + FreeCADGui.addCommand('Fem_NewMechanicalAnalysis', _CommandNewMechanicalAnalysis()) FreeCADGui.addCommand('Fem_CreateFromShape', _CommandFemFromShape()) FreeCADGui.addCommand('Fem_MechanicalJobControl', _CommandMechanicalJobControl())