FEM: Use check_prerequisites from FemTools

Signed-off-by: Przemo Firszt <przemo@firszt.eu>
This commit is contained in:
Przemo Firszt 2015-06-25 11:49:08 +01:00 committed by wmayer
parent 3187141dfe
commit 4c4e76aa2b
2 changed files with 6 additions and 60 deletions

View File

@ -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

View File

@ -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())