From e52d28a5fdac7a882dbf4420907b1486b70d5018 Mon Sep 17 00:00:00 2001 From: Bernd Hahnebach Date: Tue, 20 Dec 2016 18:11:37 +0100 Subject: [PATCH] FEM: add length values to task panel of meshregion --- src/Mod/Fem/TaskPanelFemMeshRegion.ui | 68 +++++++++++++++++++++----- src/Mod/Fem/_TaskPanelFemMeshRegion.py | 31 +++++++++--- 2 files changed, 80 insertions(+), 19 deletions(-) diff --git a/src/Mod/Fem/TaskPanelFemMeshRegion.ui b/src/Mod/Fem/TaskPanelFemMeshRegion.ui index 8d1206c600..c980140920 100644 --- a/src/Mod/Fem/TaskPanelFemMeshRegion.ui +++ b/src/Mod/Fem/TaskPanelFemMeshRegion.ui @@ -23,22 +23,59 @@ - FEM mesh region + Parameter - - - Use FreeCAD Property Editor + + + QFormLayout::AllNonFixedFieldsGrow - - - - - - to edit the characteristic length - - + + + + Max element size: + + + + + + + + 0 + 0 + + + + + 80 + 20 + + + + 0.0 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 1.000000000000000 + + + 1000000000.000000000000000 + + + mm + + + 2 + + + 0.000000000000000 + + + + @@ -105,6 +142,13 @@ + + + Gui::InputField + QLineEdit +
Gui/InputField.h
+
+
diff --git a/src/Mod/Fem/_TaskPanelFemMeshRegion.py b/src/Mod/Fem/_TaskPanelFemMeshRegion.py index 5759be7233..a9c4418177 100644 --- a/src/Mod/Fem/_TaskPanelFemMeshRegion.py +++ b/src/Mod/Fem/_TaskPanelFemMeshRegion.py @@ -38,28 +38,26 @@ class _TaskPanelFemMeshRegion: def __init__(self, obj): FreeCADGui.Selection.clearSelection() self.sel_server = None + self.obj = obj self.selection_mode_solid = False self.selection_mode_std_print_message = "Select Faces, Edges and Vertices by single click on them to add them to the list." self.selection_mode_solid_print_message = "Select Solids by single click on a Face or Edge which belongs to the Solid, to add the Solid to the list." - self.obj = obj - self.references = [] - if self.obj.References: - self.tuplereferences = self.obj.References - self.get_references() self.form = FreeCADGui.PySideUic.loadUi(FreeCAD.getHomePath() + "Mod/Fem/TaskPanelFemMeshRegion.ui") + QtCore.QObject.connect(self.form.if_elelen, QtCore.SIGNAL("valueChanged(Base::Quantity)"), self.elelen_changed) QtCore.QObject.connect(self.form.rb_standard, QtCore.SIGNAL("toggled(bool)"), self.choose_selection_mode_standard) QtCore.QObject.connect(self.form.rb_solid, QtCore.SIGNAL("toggled(bool)"), self.choose_selection_mode_solid) QtCore.QObject.connect(self.form.pushButton_Reference, QtCore.SIGNAL("clicked()"), self.add_references) self.form.list_References.setContextMenuPolicy(QtCore.Qt.CustomContextMenu) self.form.list_References.connect(self.form.list_References, QtCore.SIGNAL("customContextMenuRequested(QPoint)"), self.references_list_right_clicked) - self.rebuild_list_References() + self.get_meshregion_props() + self.update() def accept(self): + self.set_meshregion_props() if self.sel_server: FreeCADGui.Selection.removeObserver(self.sel_server) - self.obj.References = self.references FreeCADGui.ActiveDocument.resetEdit() FreeCAD.ActiveDocument.recompute() return True @@ -70,6 +68,25 @@ class _TaskPanelFemMeshRegion: FreeCADGui.ActiveDocument.resetEdit() return True + def get_meshregion_props(self): + self.elelen = self.obj.CharacteristicLength + self.references = [] + if self.obj.References: + self.tuplereferences = self.obj.References + self.get_references() + + def set_meshregion_props(self): + self.obj.References = self.references + self.obj.CharacteristicLength = self.elelen + + def update(self): + 'fills the widgets' + self.form.if_elelen.setText(self.elelen.UserString) + self.rebuild_list_References() + + def elelen_changed(self, base_quantity_value): + self.elelen = base_quantity_value + def choose_selection_mode_standard(self, state): self.selection_mode_solid = not state if self.sel_server and not self.selection_mode_solid: