From 1a05e6755ab50daa5d2ed9683786cd55f396e9fb Mon Sep 17 00:00:00 2001 From: Bernd Hahnebach Date: Fri, 21 Jul 2017 06:21:40 +0100 Subject: [PATCH] FEM: load stats, give error message if more than one results object in the analysis and no result object was geven --- src/Mod/Fem/FemTools.py | 40 ++++++++++++++++++++-------------------- src/Mod/Fem/TestFem.py | 2 ++ 2 files changed, 22 insertions(+), 20 deletions(-) diff --git a/src/Mod/Fem/FemTools.py b/src/Mod/Fem/FemTools.py index 9b3cbb9bb0..d77f817768 100644 --- a/src/Mod/Fem/FemTools.py +++ b/src/Mod/Fem/FemTools.py @@ -633,27 +633,27 @@ class FemTools(QtCore.QRunnable, QtCore.QObject): # - MFlow - MassFlowRate # - NPress - NetworkPressure # - None - always return (0.0, 0.0, 0.0) - def get_stats(self, result_type): + def get_stats(self, result_type, results_name=None): + self.use_results(results_name) + m = self.result_object stats = (0.0, 0.0, 0.0) - for m in self.analysis.Member: - if m.isDerivedFrom("Fem::FemResultObject"): - match_table = { - "U1": (m.Stats[0], m.Stats[1], m.Stats[2]), - "U2": (m.Stats[3], m.Stats[4], m.Stats[5]), - "U3": (m.Stats[6], m.Stats[7], m.Stats[8]), - "Uabs": (m.Stats[9], m.Stats[10], m.Stats[11]), - "Sabs": (m.Stats[12], m.Stats[13], m.Stats[14]), - "MaxPrin": (m.Stats[15], m.Stats[16], m.Stats[17]), - "MidPrin": (m.Stats[18], m.Stats[19], m.Stats[20]), - "MinPrin": (m.Stats[21], m.Stats[22], m.Stats[23]), - "MaxShear": (m.Stats[24], m.Stats[25], m.Stats[26]), - "Peeq": (m.Stats[27], m.Stats[28], m.Stats[29]), - "Temp": (m.Stats[30], m.Stats[31], m.Stats[32]), - "MFlow": (m.Stats[33], m.Stats[34], m.Stats[35]), - "NPress": (m.Stats[36], m.Stats[37], m.Stats[38]), - "None": (0.0, 0.0, 0.0) - } - stats = match_table[result_type] + match_table = { + "U1": (m.Stats[0], m.Stats[1], m.Stats[2]), + "U2": (m.Stats[3], m.Stats[4], m.Stats[5]), + "U3": (m.Stats[6], m.Stats[7], m.Stats[8]), + "Uabs": (m.Stats[9], m.Stats[10], m.Stats[11]), + "Sabs": (m.Stats[12], m.Stats[13], m.Stats[14]), + "MaxPrin": (m.Stats[15], m.Stats[16], m.Stats[17]), + "MidPrin": (m.Stats[18], m.Stats[19], m.Stats[20]), + "MinPrin": (m.Stats[21], m.Stats[22], m.Stats[23]), + "MaxShear": (m.Stats[24], m.Stats[25], m.Stats[26]), + "Peeq": (m.Stats[27], m.Stats[28], m.Stats[29]), + "Temp": (m.Stats[30], m.Stats[31], m.Stats[32]), + "MFlow": (m.Stats[33], m.Stats[34], m.Stats[35]), + "NPress": (m.Stats[36], m.Stats[37], m.Stats[38]), + "None": (0.0, 0.0, 0.0) + } + stats = match_table[result_type] return stats diff --git a/src/Mod/Fem/TestFem.py b/src/Mod/Fem/TestFem.py index 11ab3acd95..d40dba3369 100644 --- a/src/Mod/Fem/TestFem.py +++ b/src/Mod/Fem/TestFem.py @@ -297,6 +297,8 @@ class FemCcxAnalysisTest(unittest.TestCase): self.active_doc.saveAs(static_save_fc_file) # frequency + fcc_print('Reset Statik analysis') + fea.reset_all() fcc_print('Setting analysis type to \'frequency\"') fea.set_analysis_type("frequency") self.assertTrue(True if fea.analysis_type == 'frequency' else False, "Setting anlysis type to \'frequency\' failed")