From 4c4e76aa2b29797601e5cdb501a82fde7ce59a8d Mon Sep 17 00:00:00 2001 From: Przemo Firszt Date: Thu, 25 Jun 2015 11:49:08 +0100 Subject: [PATCH] FEM: Use check_prerequisites from FemTools Signed-off-by: Przemo Firszt --- src/Mod/Fem/FemTools.py | 6 ++-- src/Mod/Fem/MechanicalAnalysis.py | 60 ++----------------------------- 2 files changed, 6 insertions(+), 60 deletions(-) diff --git a/src/Mod/Fem/FemTools.py b/src/Mod/Fem/FemTools.py index a1535c537..435c66916 100644 --- a/src/Mod/Fem/FemTools.py +++ b/src/Mod/Fem/FemTools.py @@ -28,11 +28,11 @@ import FemGui class FemTools: def __init__(self, analysis_object=None): if analysis_object: - self.fem_analysis = analysis_object + self.analysis = analysis_object else: - self.fem_analysis = FemGui.getActiveAnalysis() + self.analysis = FemGui.getActiveAnalysis() self.mesh = None - for m in self.fem_analysis.Member: + for m in self.analysis.Member: if m.isDerivedFrom("Fem::FemMeshObject"): self.mesh = m diff --git a/src/Mod/Fem/MechanicalAnalysis.py b/src/Mod/Fem/MechanicalAnalysis.py index e9614d47a..52dc0557f 100644 --- a/src/Mod/Fem/MechanicalAnalysis.py +++ b/src/Mod/Fem/MechanicalAnalysis.py @@ -393,20 +393,10 @@ class _JobControlTaskPanel: self.Start = time.time() self.femConsoleMessage("Check dependencies...") self.form.label_Time.setText('Time: {0:4.1f}: '.format(time.time() - self.Start)) - active_analysis = FemGui.getActiveAnalysis() - 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() - message = check_prerequisites(active_analysis, self.MeshObject, self.MaterialObjects, - self.FixedObjects, self.ForceObjects, self.PressureObjects) + fea = FemTools() + fea.update_objects() + message = fea.check_prerequisites() if message != "": QtGui.QMessageBox.critical(None, "Missing prerequisit(s)", message) return False @@ -625,50 +615,6 @@ def results_present(): return results -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) - - -def check_prerequisites(analysis_obj, mesh_obj, material_obj, - fixed_obj, force_obj, pressure_obj): - message = "" - if not analysis_obj: - message += "No active Analysis\n" - if not mesh_obj: - message += "No mesh object in the Analysis\n" - if not material_obj: - message += "No material object in the Analysis\n" - if not fixed_obj: - message += "No fixed-constraint nodes defined in the Analysis\n" - if not (force_obj or pressure_obj): - message += "No force-constraint or pressure-constraint defined in the Analysis\n" - return message - FreeCADGui.addCommand('Fem_NewMechanicalAnalysis', _CommandNewMechanicalAnalysis()) FreeCADGui.addCommand('Fem_CreateFromShape', _CommandFemFromShape()) FreeCADGui.addCommand('Fem_MechanicalJobControl', _CommandMechanicalJobControl())