From 042ded01e05c7c36a46d38081c9da2accf006ec0 Mon Sep 17 00:00:00 2001 From: Przemo Firszt Date: Tue, 20 Oct 2015 16:58:07 +0100 Subject: [PATCH] FEM: Add EigenmodeLowLimit property to analysis object Signed-off-by: Przemo Firszt --- src/Mod/Fem/FemTools.py | 15 ++++++++++++--- src/Mod/Fem/_FemAnalysis.py | 5 +++++ 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/Mod/Fem/FemTools.py b/src/Mod/Fem/FemTools.py index 2bf1ec25b..b77ba2c71 100644 --- a/src/Mod/Fem/FemTools.py +++ b/src/Mod/Fem/FemTools.py @@ -275,9 +275,9 @@ class FemTools(QtCore.QRunnable, QtCore.QObject): ## Sets eigenmode parameters for CalculiX frequency analysis # @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 0.0 + # @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=0.0, limit_high=1000000.0): + def set_eigenmode_parameters(self, number=None, limit_low=None, limit_high=1000000.0): self.fem_prefs = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Fem") if number is not None: _number = number @@ -290,7 +290,16 @@ class FemTools(QtCore.QRunnable, QtCore.QObject): if _number < 1: _number = 1 - self.eigenmode_parameters = (_number, limit_low, limit_high) + if limit_low is not None: + _limit_low = limit_low + else: + try: + _limit_low = self.analysis.EigenmodeLowLimit + except: + #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) ## Sets base_name # @param self The python object self diff --git a/src/Mod/Fem/_FemAnalysis.py b/src/Mod/Fem/_FemAnalysis.py index 08d42d633..0235563ad 100644 --- a/src/Mod/Fem/_FemAnalysis.py +++ b/src/Mod/Fem/_FemAnalysis.py @@ -46,6 +46,11 @@ class _FemAnalysis: noe = fem_prefs.GetInt("NumberOfEigenmodes", 10) obj.NumberOfEigenmodes = (noe, 1, 100, 1) + obj.addProperty("App::PropertyFloatConstraint", "EigenmodeLowLimit", "Fem", "Low frequency limit for eigenmode calculations") + #Not yet in prefs, so it will always default to 0.0 + ell = fem_prefs.GetFloat("EigenmodeLowLimit", 0.0) + obj.EigenmodeLowLimit = (ell, 0.0, 1000000.0, 10000.0) + def execute(self, obj): return