| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | __title__ = "FreeCAD FEM mesh boundary layer task panel for the document object" |
| | __author__ = "Bernd Hahnebach, Qingfeng Xia" |
| | __url__ = "https://www.freecad.org" |
| |
|
| | |
| | |
| | |
| |
|
| | from PySide import QtCore |
| |
|
| | import FreeCAD |
| | import FreeCADGui |
| |
|
| | from femguiutils import selection_widgets |
| | from . import base_femtaskpanel |
| |
|
| |
|
| | class _TaskPanel(base_femtaskpanel._BaseTaskPanel): |
| | """ |
| | The TaskPanel for editing References property of MeshBoundaryLayer objects |
| | """ |
| |
|
| | def __init__(self, obj): |
| | super().__init__(obj) |
| |
|
| | |
| | self.parameter_widget = FreeCADGui.PySideUic.loadUi( |
| | FreeCAD.getHomePath() + "Mod/Fem/Resources/ui/MeshBoundaryLayer.ui" |
| | ) |
| | QtCore.QObject.connect( |
| | self.parameter_widget.isb_number_of_layers, |
| | QtCore.SIGNAL("valueChanged(int)"), |
| | self.number_of_layers_changed, |
| | ) |
| | QtCore.QObject.connect( |
| | self.parameter_widget.qsb_min_thickness, |
| | QtCore.SIGNAL("valueChanged(Base::Quantity)"), |
| | self.min_thickness_changed, |
| | ) |
| | |
| | QtCore.QObject.connect( |
| | self.parameter_widget.dsb_growth_rate, |
| | QtCore.SIGNAL("valueChanged(double)"), |
| | self.growth_rate_changed, |
| | ) |
| | self.init_parameter_widget() |
| |
|
| | |
| | |
| | self.selection_widget = selection_widgets.GeometryElementsSelection( |
| | obj.References, ["Solid", "Face", "Edge", "Vertex"], True, False |
| | ) |
| |
|
| | |
| | self.form = [self.parameter_widget, self.selection_widget] |
| |
|
| | def accept(self): |
| | self.set_mesh_boundarylayer_props() |
| | self.obj.References = self.selection_widget.references |
| | self.selection_widget.finish_selection() |
| | return super().accept() |
| |
|
| | def reject(self): |
| | self.selection_widget.finish_selection() |
| | return super().reject() |
| |
|
| | def init_parameter_widget(self): |
| | self.min_thickness = self.obj.MinimumThickness |
| | self.number_of_layers = self.obj.NumberOfLayers |
| | self.growth_rate = self.obj.GrowthRate |
| | FreeCADGui.ExpressionBinding(self.parameter_widget.qsb_min_thickness).bind( |
| | self.obj, "MinimumThickness" |
| | ) |
| | self.parameter_widget.qsb_min_thickness.setProperty("value", self.min_thickness) |
| |
|
| | FreeCADGui.ExpressionBinding(self.parameter_widget.dsb_growth_rate).bind( |
| | self.obj, "GrowthRate" |
| | ) |
| | self.parameter_widget.dsb_growth_rate.setProperty("value", self.growth_rate) |
| |
|
| | FreeCADGui.ExpressionBinding(self.parameter_widget.isb_number_of_layers).bind( |
| | self.obj, "NumberOfLayers" |
| | ) |
| | self.parameter_widget.isb_number_of_layers.setProperty("value", self.number_of_layers) |
| |
|
| | def set_mesh_boundarylayer_props(self): |
| | self.obj.MinimumThickness = self.min_thickness |
| | self.obj.NumberOfLayers = self.number_of_layers |
| | self.obj.GrowthRate = self.growth_rate |
| |
|
| | def min_thickness_changed(self, base_quantity_value): |
| | self.min_thickness = base_quantity_value |
| |
|
| | def number_of_layers_changed(self, value): |
| | self.number_of_layers = value |
| |
|
| | def growth_rate_changed(self, value): |
| | self.growth_rate = value |
| |
|