diff --git a/src/Mod/Fem/Gui/DlgSettingsFem.ui b/src/Mod/Fem/Gui/DlgSettingsFem.ui
index 38908d73db..f3fb8c91cd 100644
--- a/src/Mod/Fem/Gui/DlgSettingsFem.ui
+++ b/src/Mod/Fem/Gui/DlgSettingsFem.ui
@@ -21,30 +21,30 @@
6
-
-
-
-
- 0
- 0
-
-
-
- Qt::LeftToRight
-
-
- CalculiX
-
-
- Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop
-
-
-
- QLayout::SetNoConstraint
-
-
-
-
-
-
-
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+ Qt::LeftToRight
+
+
+ CalculiX
+
+
+ Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop
+
+
+
+ QLayout::SetNoConstraint
+
+
-
+
-
@@ -62,18 +62,24 @@
-
-
-
-
+
+
-
false
+
+
+ 100
+ 0
+
+
External editor:
- -
+
-
false
@@ -86,38 +92,119 @@
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 0
+
+
+
+ Leave blank to use default CalculiX ccx binary file
+
+
+ ccxBinaryPath
+
+
+ Mod/Fem
+
+
+
+ -
+
+
+
+ 100
+ 0
+
+
+
+ ccx binary
+
+
+
- -
-
+
+
+
+ -
+
+
+ Materials
+
+
+
-
+
-
-
-
- ccx binary
-
-
-
- -
-
-
- Leave blank to use default CalculiX ccx binary file
-
-
- ccxBinaryPath
-
-
- Mod/Fem
-
-
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 0
+
+
+
+ Gui::FileChooser::Directory
+
+
+ CustomMaterialsDir
+
+
+ Mod/Fem
+
+
+
+ -
+
+
+
+ 100
+ 0
+
+
+
+ User directory
+
+
+
+
-
-
-
+
+
+
-
@@ -172,22 +259,6 @@
-
- cb_int_editor
- toggled(bool)
- l_ext_editor
- setDisabled(bool)
-
-
- 125
- 49
-
-
- 120
- 74
-
-
-
cb_int_editor
toggled(bool)
@@ -204,6 +275,22 @@
+
+ cb_int_editor
+ toggled(bool)
+ l_ext_editor
+ setDisabled(bool)
+
+
+ 125
+ 49
+
+
+ 120
+ 74
+
+
+
cb_int_editor
toggled(bool)
diff --git a/src/Mod/Fem/Gui/DlgSettingsFemImp.cpp b/src/Mod/Fem/Gui/DlgSettingsFemImp.cpp
index a0b4c3a858..9e7e53e461 100644
--- a/src/Mod/Fem/Gui/DlgSettingsFemImp.cpp
+++ b/src/Mod/Fem/Gui/DlgSettingsFemImp.cpp
@@ -46,6 +46,7 @@ void DlgSettingsFemImp::saveSettings()
cb_int_editor->onSave();
fc_ext_editor->onSave();
fc_ccx_binary->onSave();
+ fc_custom_mat_dir->onSave();
}
void DlgSettingsFemImp::loadSettings()
@@ -53,6 +54,7 @@ void DlgSettingsFemImp::loadSettings()
cb_int_editor->onRestore();
fc_ext_editor->onRestore();
fc_ccx_binary->onRestore();
+ fc_custom_mat_dir->onRestore();
}
/**
diff --git a/src/Mod/Fem/MechanicalMaterial.py b/src/Mod/Fem/MechanicalMaterial.py
index 7a411d77a2..29620bf617 100644
--- a/src/Mod/Fem/MechanicalMaterial.py
+++ b/src/Mod/Fem/MechanicalMaterial.py
@@ -207,5 +207,12 @@ class _MechanicalMaterialTaskPanel:
material_name = os.path.basename(i[:-l])
self.form.comboBox_MaterialsInDir.addItem(material_name)
self.pathList = self.pathList + user_mat_path_list
+ self.fem_prefs = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Fem")
+ custom_mat_dir = self.fem_prefs.GetString("CustomMaterialsDir","")
+ custom_mat_path_list = glob.glob(custom_mat_dir + '/*' + mat_file_extension)
+ for i in custom_mat_path_list:
+ material_name = os.path.basename(i[:-l])
+ self.form.comboBox_MaterialsInDir.addItem(material_name)
+ self.pathList = self.pathList + custom_mat_path_list
FreeCADGui.addCommand('Fem_MechanicalMaterial',_CommandMechanicalMaterial())