From 068ba4793df88a178ce083fbcef8f939b8cdd1a5 Mon Sep 17 00:00:00 2001 From: Przemo Firszt Date: Tue, 20 Oct 2015 16:58:40 +0100 Subject: [PATCH] FEM: Add EigenmodeHighLimit property to analysis object Signed-off-by: Przemo Firszt --- src/Mod/Fem/FemTools.py | 14 +++++++++++--- src/Mod/Fem/_FemAnalysis.py | 5 +++++ 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/Mod/Fem/FemTools.py b/src/Mod/Fem/FemTools.py index b77ba2c71..f6d921b4b 100644 --- a/src/Mod/Fem/FemTools.py +++ b/src/Mod/Fem/FemTools.py @@ -276,8 +276,8 @@ class FemTools(QtCore.QRunnable, QtCore.QObject): # @param self The python object self # @param number number of eigenmodes that wll be calculated, default read for FEM prefs or 10 if not set in the FEM prefs # @param limit_low lower value of requested eigenfrequency range, default read for FEM prefs or 0.0 if not set in the FEM prefs - # @param limit_high higher value of requested eigenfrequency range, default 1000000.0 - def set_eigenmode_parameters(self, number=None, limit_low=None, limit_high=1000000.0): + # @param limit_high higher value of requested eigenfrequency range, default read for FEM prefs or 1000000.o if not set in the FEM prefs + def set_eigenmode_parameters(self, number=None, limit_low=None, limit_high=None): self.fem_prefs = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Fem") if number is not None: _number = number @@ -299,7 +299,15 @@ class FemTools(QtCore.QRunnable, QtCore.QObject): #Not yet in prefs, so it will always default to 0.0 _limit_low = self.fem_prefs.GetString("EigenmodeLowLimit", 0.0) - self.eigenmode_parameters = (_number, _limit_low, limit_high) + if limit_high is not None: + _limit_high = limit_high + else: + try: + _limit_high = self.analysis.EigenmodeHighLimit + except: + #Not yet in prefs, so it will always default to 1000000.0 + _limit_high = self.fem_prefs.GetString("EigenmodeHighLimit", 1000000.0) + self.eigenmode_parameters = (_number, _limit_low, _limit_high) ## Sets base_name # @param self The python object self diff --git a/src/Mod/Fem/_FemAnalysis.py b/src/Mod/Fem/_FemAnalysis.py index 0235563ad..36df4208f 100644 --- a/src/Mod/Fem/_FemAnalysis.py +++ b/src/Mod/Fem/_FemAnalysis.py @@ -51,6 +51,11 @@ class _FemAnalysis: ell = fem_prefs.GetFloat("EigenmodeLowLimit", 0.0) obj.EigenmodeLowLimit = (ell, 0.0, 1000000.0, 10000.0) + obj.addProperty("App::PropertyFloatConstraint", "EigenmodeHighLimit", "Fem", "High frequency limit for eigenmode calculations") + #Not yet in prefs, so it will always default to 1000000.0 + ehl = fem_prefs.GetFloat("EigenmodeHighLimit", 1000000.0) + obj.EigenmodeHighLimit = (ehl, 0.0, 1000000.0, 100000) + def execute(self, obj): return