FEM: Add EigenmodeHighLimit property to analysis object

Signed-off-by: Przemo Firszt <przemo@firszt.eu>
This commit is contained in:
Przemo Firszt 2015-10-20 16:58:40 +01:00 committed by wmayer
parent 042ded01e0
commit 068ba4793d
2 changed files with 16 additions and 3 deletions

View File

@ -276,8 +276,8 @@ class FemTools(QtCore.QRunnable, QtCore.QObject):
# @param self The python object self # @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 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_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 # @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=1000000.0): def set_eigenmode_parameters(self, number=None, limit_low=None, limit_high=None):
self.fem_prefs = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Fem") self.fem_prefs = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Fem")
if number is not None: if number is not None:
_number = number _number = number
@ -299,7 +299,15 @@ class FemTools(QtCore.QRunnable, QtCore.QObject):
#Not yet in prefs, so it will always default to 0.0 #Not yet in prefs, so it will always default to 0.0
_limit_low = self.fem_prefs.GetString("EigenmodeLowLimit", 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 ## Sets base_name
# @param self The python object self # @param self The python object self

View File

@ -51,6 +51,11 @@ class _FemAnalysis:
ell = fem_prefs.GetFloat("EigenmodeLowLimit", 0.0) ell = fem_prefs.GetFloat("EigenmodeLowLimit", 0.0)
obj.EigenmodeLowLimit = (ell, 0.0, 1000000.0, 10000.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): def execute(self, obj):
return return