| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | __title__ = "FreeCAD FEM mesh gmsh task panel for the document object" |
| | __author__ = "Bernd Hahnebach" |
| | __url__ = "https://www.freecad.org" |
| |
|
| | |
| | |
| | |
| |
|
| | from PySide import QtCore |
| |
|
| | import FreeCAD |
| | import FreeCADGui |
| |
|
| | from femmesh import gmshtools |
| |
|
| | from . import base_femlogtaskpanel |
| |
|
| |
|
| | class _TaskPanel(base_femlogtaskpanel._BaseLogTaskPanel): |
| | """ |
| | The TaskPanel for editing References property of |
| | MeshGmsh objects and creation of new FEM mesh |
| | """ |
| |
|
| | def __init__(self, obj): |
| | super().__init__(obj, gmshtools.GmshTools(obj)) |
| |
|
| | self.form = FreeCADGui.PySideUic.loadUi( |
| | FreeCAD.getHomePath() + "Mod/Fem/Resources/ui/MeshGmsh.ui" |
| | ) |
| | self.text_log = self.form.te_output |
| | self.text_time = self.form.l_time |
| |
|
| | self.setup_connections() |
| |
|
| | def setup_connections(self): |
| | super().setup_connections() |
| |
|
| | QtCore.QObject.connect( |
| | self.form.qsb_max_size, QtCore.SIGNAL("valueChanged(Base::Quantity)"), self.max_changed |
| | ) |
| | QtCore.QObject.connect( |
| | self.form.qsb_min_size, QtCore.SIGNAL("valueChanged(Base::Quantity)"), self.min_changed |
| | ) |
| | QtCore.QObject.connect( |
| | self.form.cb_dimension, QtCore.SIGNAL("activated(int)"), self.choose_dimension |
| | ) |
| | QtCore.QObject.connect( |
| | self.form.cb_order, QtCore.SIGNAL("activated(int)"), self.choose_order |
| | ) |
| | self.form.cb_dimension.addItems(self.obj.getEnumerationsOfProperty("ElementDimension")) |
| |
|
| | self.form.cb_order.addItems(self.obj.getEnumerationsOfProperty("ElementOrder")) |
| | QtCore.QObject.connect( |
| | self.form.pb_get_gmsh_version, QtCore.SIGNAL("clicked()"), self.get_version |
| | ) |
| |
|
| | self.get_object_params() |
| | self.set_widgets() |
| |
|
| | def get_object_params(self): |
| | self.clmax = self.obj.CharacteristicLengthMax |
| | self.clmin = self.obj.CharacteristicLengthMin |
| | self.dimension = self.obj.ElementDimension |
| | self.order = self.obj.ElementOrder |
| |
|
| | def set_object_params(self): |
| | self.obj.CharacteristicLengthMax = self.clmax |
| | self.obj.CharacteristicLengthMin = self.clmin |
| | self.obj.ElementDimension = self.dimension |
| | self.obj.ElementOrder = self.order |
| |
|
| | def set_widgets(self): |
| | "fills the widgets" |
| | self.form.qsb_max_size.setProperty("value", self.clmax) |
| | FreeCADGui.ExpressionBinding(self.form.qsb_max_size).bind( |
| | self.obj, "CharacteristicLengthMax" |
| | ) |
| | self.form.qsb_min_size.setProperty("value", self.clmin) |
| | FreeCADGui.ExpressionBinding(self.form.qsb_min_size).bind( |
| | self.obj, "CharacteristicLengthMin" |
| | ) |
| | index_dimension = self.form.cb_dimension.findText(self.dimension) |
| | self.form.cb_dimension.setCurrentIndex(index_dimension) |
| | index_order = self.form.cb_order.findText(self.order) |
| | self.form.cb_order.setCurrentIndex(index_order) |
| |
|
| | def max_changed(self, base_quantity_value): |
| | self.clmax = base_quantity_value |
| |
|
| | def min_changed(self, base_quantity_value): |
| | self.clmin = base_quantity_value |
| |
|
| | def choose_dimension(self, index): |
| | if index < 0: |
| | return |
| | self.form.cb_dimension.setCurrentIndex(index) |
| | self.dimension = self.form.cb_dimension.itemText(index) |
| |
|
| | def choose_order(self, index): |
| | if index < 0: |
| | return |
| | self.form.cb_order.setCurrentIndex(index) |
| | self.order = self.form.cb_order.itemText(index) |
| |
|