From e4cdb2fcc989dd2a55ab08aa7cc2fe22e75d10d9 Mon Sep 17 00:00:00 2001 From: UR-0 Date: Wed, 19 Feb 2020 08:04:24 +0100 Subject: [PATCH] FEM: ResultMechanical add migration code f0r old result objects Stats containing (min, avg, max) converted to (min, max) Add Messagebox if histogram requested, but not available --- .../femguiobjects/_ViewProviderFemResultMechanical.py | 8 +++++++- src/Mod/Fem/femobjects/_FemResultMechanical.py | 10 +++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/Mod/Fem/femguiobjects/_ViewProviderFemResultMechanical.py b/src/Mod/Fem/femguiobjects/_ViewProviderFemResultMechanical.py index aae5ef7ddc..0ca622eb31 100644 --- a/src/Mod/Fem/femguiobjects/_ViewProviderFemResultMechanical.py +++ b/src/Mod/Fem/femguiobjects/_ViewProviderFemResultMechanical.py @@ -442,7 +442,13 @@ class _TaskPanelFemResultShow: self.none_selected(True) def show_histogram_clicked(self): - plt.show() + if len(plt.get_fignums()) > 0: + plt.show() + else: + QtGui.QMessageBox.information(None, + self.result_obj.Label + " - Information", + "No histogram available.\nPlease select a result type first." + ) def user_defined_text(self, equation): FreeCAD.FEM_dialog["results_type"] = "user" diff --git a/src/Mod/Fem/femobjects/_FemResultMechanical.py b/src/Mod/Fem/femobjects/_FemResultMechanical.py index 5c09deebfe..c710426222 100644 --- a/src/Mod/Fem/femobjects/_FemResultMechanical.py +++ b/src/Mod/Fem/femobjects/_FemResultMechanical.py @@ -286,7 +286,7 @@ class _FemResultMechanical(): # initialize the Stats with the appropriate count of items # see fill_femresult_stats in femresult/resulttools.py - zero_list = 39 * [0] + zero_list = 26 * [0] obj.Stats = zero_list # standard Feature methods @@ -315,6 +315,14 @@ class _FemResultMechanical(): obj.vonMises = obj.StressValues obj.removeProperty("StressValues") + # migrate old result objects, because property "Stats" + # consisting of min, avg, max values was reduced to min, max in commit ??????? + if len(obj.Stats) == 39: + temp = obj.Stats + for i in range(12, -1, -1): + del temp [3 * i + 1] + obj.Stats = temp + def __getstate__(self): return self.Type