Skip to content

Commit

Permalink
FEM: Add new properties to FEM preferences
Browse files Browse the repository at this point in the history
The new properties are NumberOfEigenmode, EigenmodeHighLimit and
EigenmodeLowLimit. All 3 are linked with analysis object properties.

Signed-off-by: Przemo Firszt <przemo@firszt.eu>
  • Loading branch information
PrzemoF authored and wwmayer committed Oct 25, 2015
1 parent 6ab7a43 commit 3dcc189
Show file tree
Hide file tree
Showing 3 changed files with 157 additions and 55 deletions.
202 changes: 150 additions & 52 deletions src/Mod/Fem/Gui/DlgSettingsFem.ui
Expand Up @@ -7,7 +7,7 @@
<x>0</x>
<y>0</y>
<width>555</width>
<height>453</height>
<height>518</height>
</rect>
</property>
<property name="windowTitle">
Expand Down Expand Up @@ -196,64 +196,152 @@
<item>
<widget class="QGroupBox" name="gb_analysis_params">
<property name="title">
<string>Default analysis type</string>
<string>Default analysis settings</string>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_4">
<item>
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="1">
<widget class="Gui::PrefComboBox" name="cb_analysis_type">
<property name="minimumSize">
<size>
<width>148</width>
<height>0</height>
</size>
</property>
<property name="toolTip">
<string>Default type on analysis</string>
</property>
<property name="prefEntry" stdset="0">
<cstring>AnalysisType</cstring>
</property>
<property name="prefPath" stdset="0">
<cstring>Mod/Fem</cstring>
</property>
<item>
<widget class="Gui::PrefComboBox" name="cb_analysis_type">
<property name="minimumSize">
<size>
<width>148</width>
<height>0</height>
</size>
</property>
<property name="toolTip">
<string>Default type on analysis</string>
</property>
<property name="prefEntry" stdset="0">
<cstring>AnalysisType</cstring>
</property>
<property name="prefPath" stdset="0">
<cstring>Mod/Fem</cstring>
</property>
<item>
<property name="text">
<string>Static</string>
</property>
<property name="icon">
<iconset resource="Resources/Fem.qrc">
<normaloff>:/icons/fem-new-analysis.svg</normaloff>:/icons/fem-new-analysis.svg</iconset>
</property>
</item>
<item>
<property name="text">
<string>Frequency</string>
</property>
<property name="icon">
<iconset resource="Resources/Fem.qrc">
<normaloff>:/icons/fem-frequency-analysis.svg</normaloff>:/icons/fem-frequency-analysis.svg</iconset>
</property>
</item>
</widget>
<property name="text">
<string>Static</string>
</property>
<property name="icon">
<iconset resource="Resources/Fem.qrc">
<normaloff>:/icons/fem-new-analysis.svg</normaloff>:/icons/fem-new-analysis.svg</iconset>
</property>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
<property name="text">
<string>Frequency</string>
</property>
<property name="icon">
<iconset resource="Resources/Fem.qrc">
<normaloff>:/icons/fem-frequency-analysis.svg</normaloff>:/icons/fem-frequency-analysis.svg</iconset>
</property>
</item>
</layout>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="l_eigenmode_number">
<property name="text">
<string>Eigenmode number</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="l_type">
<property name="text">
<string>Type</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="Gui::PrefSpinBox" name="sb_eigenmode_number">
<property name="maximum">
<number>100</number>
</property>
<property name="value">
<number>10</number>
</property>
<property name="prefEntry" stdset="0">
<cstring>NumberOfEigenmode</cstring>
</property>
<property name="prefPath" stdset="0">
<cstring>Mod/Fem</cstring>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="l_eigenmode_high_limit">
<property name="text">
<string>High frequency limit</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="Gui::PrefDoubleSpinBox" name="dsb_eigenmode_high_limit">
<property name="decimals">
<number>1</number>
</property>
<property name="maximum">
<double>1000000.000000000000000</double>
</property>
<property name="singleStep">
<double>10000.000000000000000</double>
</property>
<property name="value">
<double>1000000.000000000000000</double>
</property>
<property name="prefEntry" stdset="0">
<cstring>EigenmodeHighLimit</cstring>
</property>
<property name="prefPath" stdset="0">
<cstring>Mod/Fem</cstring>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="l_eigenmode_low_limit">
<property name="text">
<string>Low frequency limit</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="Gui::PrefDoubleSpinBox" name="dsb_eigenmode_low_limit">
<property name="decimals">
<number>1</number>
</property>
<property name="minimum">
<double>0.000000000000000</double>
</property>
<property name="maximum">
<double>1000000.000000000000000</double>
</property>
<property name="singleStep">
<double>10000.000000000000000</double>
</property>
<property name="value">
<double>0.000000000000000</double>
</property>
<property name="prefEntry" stdset="0">
<cstring>EigenmodeLowLimit</cstring>
</property>
<property name="prefPath" stdset="0">
<cstring>Mod/Fem</cstring>
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="QLabel" name="l_hz_1">
<property name="text">
<string>Hz</string>
</property>
</widget>
</item>
<item row="3" column="2">
<widget class="QLabel" name="l_hz_2">
<property name="text">
<string>Hz</string>
</property>
</widget>
</item>
</layout>
</item>
Expand Down Expand Up @@ -398,6 +486,11 @@
<extends>Gui::FileChooser</extends>
<header>Gui/PrefWidgets.h</header>
</customwidget>
<customwidget>
<class>Gui::PrefSpinBox</class>
<extends>QSpinBox</extends>
<header>Gui/PrefWidgets.h</header>
</customwidget>
<customwidget>
<class>Gui::PrefCheckBox</class>
<extends>QCheckBox</extends>
Expand All @@ -408,6 +501,11 @@
<extends>QComboBox</extends>
<header>Gui/PrefWidgets.h</header>
</customwidget>
<customwidget>
<class>Gui::PrefDoubleSpinBox</class>
<extends>QDoubleSpinBox</extends>
<header>Gui/PrefWidgets.h</header>
</customwidget>
</customwidgets>
<resources>
<include location="Resources/Fem.qrc"/>
Expand Down
6 changes: 6 additions & 0 deletions src/Mod/Fem/Gui/DlgSettingsFemImp.cpp
Expand Up @@ -53,6 +53,9 @@ void DlgSettingsFemImp::saveSettings()
fc_ext_editor->onSave();
fc_ccx_binary->onSave();
cb_analysis_type->onSave();
sb_eigenmode_number->onSave();
dsb_eigenmode_high_limit->onSave();
dsb_eigenmode_low_limit->onSave();
cb_use_built_in_materials->onSave();
cb_use_mat_from_config_dir->onSave();
cb_use_mat_from_custom_dir->onSave();
Expand All @@ -66,6 +69,9 @@ void DlgSettingsFemImp::loadSettings()
fc_ext_editor->onRestore();
fc_ccx_binary->onRestore();
cb_analysis_type->onRestore();
sb_eigenmode_number->onRestore();
dsb_eigenmode_high_limit->onRestore();
dsb_eigenmode_low_limit->onRestore();
cb_use_built_in_materials->onRestore();
cb_use_mat_from_config_dir->onRestore();
cb_use_mat_from_custom_dir->onRestore();
Expand Down
4 changes: 1 addition & 3 deletions src/Mod/Fem/_FemAnalysis.py
Expand Up @@ -42,7 +42,6 @@ def __init__(self, obj):
obj.WorkingDir = fem_prefs.GetString("WorkingDir", "")

obj.addProperty("App::PropertyIntegerConstraint", "NumberOfEigenmodes", "Fem", "Number of modes for frequency calculations")
#Not yet in prefs, so it will always default to 10
noe = fem_prefs.GetInt("NumberOfEigenmodes", 10)
obj.NumberOfEigenmodes = (noe, 1, 100, 1)

Expand All @@ -52,9 +51,8 @@ def __init__(self, obj):
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)
obj.EigenmodeHighLimit = (ehl, 0.0, 1000000.0, 10000.0)

def execute(self, obj):
return
Expand Down

0 comments on commit 3dcc189

Please sign in to comment.