diff --git a/src/Mod/Fem/femguiobjects/FemSelectionWidgets.py b/src/Mod/Fem/femguiobjects/FemSelectionWidgets.py
index 3e1381e52e..8f5a595a5c 100644
--- a/src/Mod/Fem/femguiobjects/FemSelectionWidgets.py
+++ b/src/Mod/Fem/femguiobjects/FemSelectionWidgets.py
@@ -233,14 +233,21 @@ class GeometryElementsSelection(QtGui.QWidget):
def initElemTypes(self, eltypes):
self.sel_elem_types = eltypes
- # FreeCAD.Console.PrintMessage('Selection of: {} is allowed.\n'.format(self.sel_elem_types))
+ # FreeCAD.Console.PrintMessage(
+ # 'Selection of: {} is allowed.\n'.format(self.sel_elem_types)
+ # )
self.sel_elem_text = ''
for e in self.sel_elem_types:
self.sel_elem_text += (e + ', ')
self.sel_elem_text = self.sel_elem_text.rstrip(', ')
# FreeCAD.Console.PrintMessage('Selection of: ' + self.sel_elem_text + ' is allowed.\n')
- self.selection_mode_std_print_message = "Single click on a " + self.sel_elem_text + " will add it to the list"
- self.selection_mode_solid_print_message = "Single click on a Face or Edge which belongs to one Solid will add the Solid to the list"
+ self.selection_mode_std_print_message = (
+ "Single click on a " + self.sel_elem_text + " will add it to the list"
+ )
+ self.selection_mode_solid_print_message = (
+ "Single click on a Face or Edge which belongs "
+ "to one Solid will add the Solid to the list"
+ )
def initUI(self):
# auch ArchPanel ist coded ohne ui-file
@@ -280,10 +287,26 @@ class GeometryElementsSelection(QtGui.QWidget):
# signals and slots
self.list_References.itemSelectionChanged.connect(self.select_clicked_reference_shape)
self.list_References.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
- self.list_References.connect(self.list_References, QtCore.SIGNAL("customContextMenuRequested(QPoint)"), self.references_list_right_clicked)
- QtCore.QObject.connect(self.pushButton_Add, QtCore.SIGNAL("clicked()"), self.add_references)
- QtCore.QObject.connect(self.rb_standard, QtCore.SIGNAL("toggled(bool)"), self.choose_selection_mode_standard)
- QtCore.QObject.connect(self.rb_solid, QtCore.SIGNAL("toggled(bool)"), self.choose_selection_mode_solid)
+ self.list_References.connect(
+ self.list_References,
+ QtCore.SIGNAL("customContextMenuRequested(QPoint)"),
+ self.references_list_right_clicked
+ )
+ QtCore.QObject.connect(
+ self.pushButton_Add,
+ QtCore.SIGNAL("clicked()"),
+ self.add_references
+ )
+ QtCore.QObject.connect(
+ self.rb_standard,
+ QtCore.SIGNAL("toggled(bool)"),
+ self.choose_selection_mode_standard
+ )
+ QtCore.QObject.connect(
+ self.rb_solid,
+ QtCore.SIGNAL("toggled(bool)"),
+ self.choose_selection_mode_solid
+ )
def get_references(self):
for ref in self.tuplereferences:
@@ -324,10 +347,15 @@ class GeometryElementsSelection(QtGui.QWidget):
self.obj_notvisible.append(ref[0])
ref[0].ViewObject.Visibility = True
FreeCADGui.Selection.clearSelection()
- if ref[1].startswith('Solid') and (ref[0].Shape.ShapeType == 'Compound' or ref[0].Shape.ShapeType == 'CompSolid'):
- # selection of Solids of Compounds or CompSolids is not possible, because a Solid is no Subelement
- # since only Subelements can be selected, we're going to select all Faces of said Solids
- solid = FemMeshTools.get_element(ref[0], ref[1]) # the method getElement(element) doesn't return Solid elements
+ ref_sh_type = ref[0].Shape.ShapeType
+ if ref[1].startswith('Solid') \
+ and (ref_sh_type == 'Compound' or ref_sh_type == 'CompSolid'):
+ # selection of Solids of Compounds or CompSolids is not possible
+ # because a Solid is no Subelement
+ # since only Subelements can be selected
+ # we're going to select all Faces of said Solids
+ # the method getElement(element)doesn't return Solid elements
+ solid = FemMeshTools.get_element(ref[0], ref[1])
if not solid:
return
faces = []
@@ -359,8 +387,16 @@ class GeometryElementsSelection(QtGui.QWidget):
if not self.references:
menu_item_remove_selected.setDisabled(True)
menu_item_remove_all.setDisabled(True)
- self.connect(menu_item_remove_selected, QtCore.SIGNAL("triggered()"), self.remove_selected_reference)
- self.connect(menu_item_remove_all, QtCore.SIGNAL("triggered()"), self.remove_all_references)
+ self.connect(
+ menu_item_remove_selected,
+ QtCore.SIGNAL("triggered()"),
+ self.remove_selected_reference
+ )
+ self.connect(
+ menu_item_remove_all,
+ QtCore.SIGNAL("triggered()"),
+ self.remove_all_references
+ )
parentPosition = self.list_References.mapToGlobal(QtCore.QPoint(0, 0))
self.contextMenu.move(parentPosition + QPos)
self.contextMenu.show()
@@ -401,12 +437,17 @@ class GeometryElementsSelection(QtGui.QWidget):
else:
print_message = self.selection_mode_std_print_message
if not self.sel_server:
- # if we do not check, we would start a new SelectionObserver on every click on addReference button
+ # if we do not check, we would start a new SelectionObserver
+ # on every click on addReference button
# but close only one SelectionObserver on leaving the task panel
self.sel_server = FemSelectionObserver(self.selectionParser, print_message)
def selectionParser(self, selection):
- print('selection: ', selection[0].Shape.ShapeType, ' ', selection[0].Name, ' ', selection[1])
+ print('selection: {} {} {}'.format(
+ selection[0].Shape.ShapeType,
+ selection[0].Name,
+ selection[1]
+ ))
if hasattr(selection[0], "Shape") and selection[1]:
elt = selection[0].Shape.getElement(selection[1])
ele_ShapeType = elt.ShapeType
@@ -422,7 +463,9 @@ class GeometryElementsSelection(QtGui.QWidget):
if not found_edge:
solid_to_add = str(i + 1)
else:
- FreeCAD.Console.PrintMessage('Edge belongs to more than one solid\n')
+ FreeCAD.Console.PrintMessage(
+ 'Edge belongs to more than one solid\n'
+ )
solid_to_add = None
found_edge = True
elif ele_ShapeType == 'Face':
@@ -433,45 +476,68 @@ class GeometryElementsSelection(QtGui.QWidget):
if not found_face:
solid_to_add = str(i + 1)
else:
- FreeCAD.Console.PrintMessage('Face belongs to more than one solid\n')
+ FreeCAD.Console.PrintMessage(
+ 'Face belongs to more than one solid\n'
+ )
solid_to_add = None
found_face = True
if solid_to_add:
selection = (selection[0], 'Solid' + solid_to_add)
ele_ShapeType = 'Solid'
- FreeCAD.Console.PrintMessage('selection variable adapted to hold the Solid: ' + selection[0].Shape.ShapeType + ' ' + selection[0].Name + ' ' + selection[1] + ' \n')
+ FreeCAD.Console.PrintMessage(
+ 'selection variable adapted to hold the Solid: {} {} {}\n'
+ .format(selection[0].Shape.ShapeType, selection[0].Name, selection[1])
+ )
else:
return
if ele_ShapeType in self.sel_elem_types:
- if (self.selection_mode_solid and ele_ShapeType == 'Solid') or self.selection_mode_solid is False:
+ if (self.selection_mode_solid and ele_ShapeType == 'Solid') \
+ or self.selection_mode_solid is False:
if selection not in self.references:
- if self.allow_multiple_geom_types is False: # only equal shape types are allowed to add
+ # only equal shape types are allowed to add
+ if self.allow_multiple_geom_types is False:
if self.has_equal_references_shape_types(ele_ShapeType):
self.references.append(selection)
- self.rebuild_list_References(self.get_allitems_text().index(self.get_item_text(selection)))
+ self.rebuild_list_References(
+ self.get_allitems_text().index(self.get_item_text(selection))
+ )
else:
- FreeCADGui.Selection.clearSelection() # selected shape will not added to the list
+ # selected shape will not added to the list
+ FreeCADGui.Selection.clearSelection()
else: # multiple shape types are allowed to add
self.references.append(selection)
- self.rebuild_list_References(self.get_allitems_text().index(self.get_item_text(selection)))
+ self.rebuild_list_References(
+ self.get_allitems_text().index(self.get_item_text(selection))
+ )
else:
- FreeCADGui.Selection.clearSelection() # selected shape will not added to the list
- message = self.get_item_text(selection) + ' is in reference list already!\n'
+ # selected shape will not added to the list
+ FreeCADGui.Selection.clearSelection()
+ message = (
+ '{} is in reference list already!\n'
+ .format(self.get_item_text(selection))
+ )
FreeCAD.Console.PrintMessage(message)
QtGui.QMessageBox.critical(None, "Geometry already in list", message)
else:
- FreeCADGui.Selection.clearSelection() # selected shape will not added to the list
+ # selected shape will not added to the list
+ FreeCADGui.Selection.clearSelection()
message = ele_ShapeType + ' is not allowed to add to the list!\n'
FreeCAD.Console.PrintMessage(message)
QtGui.QMessageBox.critical(None, "Wrong shape type", message)
def has_equal_references_shape_types(self, ref_shty=''):
for ref in self.references:
- r = FemMeshTools.get_element(ref[0], ref[1]) # the method getElement(element) does not return Solid elements
+ # the method getElement(element) does not return Solid elements
+ r = FemMeshTools.get_element(ref[0], ref[1])
if not r:
- FreeCAD.Console.PrintError('Problem in retrieving element: {} \n'.format(ref[1]))
+ FreeCAD.Console.PrintError(
+ 'Problem in retrieving element: {} \n'.format(ref[1])
+ )
continue
- # print(' ReferenceShape : ', r.ShapeType, ', ', ref[0].Name, ', ', ref[0].Label, ' --> ', ref[1])
+ FreeCAD.Console.PrintLog(
+ ' ReferenceShape : {}, {}, {} --> {}'
+ .format(r.ShapeType, ref[0].Name, ref[0].Label, ref[1])
+ )
if not ref_shty:
ref_shty = r.ShapeType
if r.ShapeType != ref_shty:
diff --git a/src/Mod/Fem/femguiobjects/ViewProviderFemConstraint.py b/src/Mod/Fem/femguiobjects/ViewProviderFemConstraint.py
index 33833c1f79..67a96badbc 100644
--- a/src/Mod/Fem/femguiobjects/ViewProviderFemConstraint.py
+++ b/src/Mod/Fem/femguiobjects/ViewProviderFemConstraint.py
@@ -60,12 +60,14 @@ class ViewProxy(object):
def setEdit(self, vobj, mode=0):
# needs to be overwritten if task panel exists
- # avoid edit mode by return False, https://forum.freecadweb.org/viewtopic.php?t=12139&start=10#p161062
+ # avoid edit mode by return False
+ # https://forum.freecadweb.org/viewtopic.php?t=12139&start=10#p161062
return False
def doubleClicked(self, vobj):
guidoc = FreeCADGui.getDocument(vobj.Object.Document)
- # check if another VP is in edit mode, https://forum.freecadweb.org/viewtopic.php?t=13077#p104702
+ # check if another VP is in edit mode
+ # https://forum.freecadweb.org/viewtopic.php?t=13077#p104702
if not guidoc.getInEdit():
guidoc.setEdit(vobj.Object.Name)
else:
diff --git a/src/Mod/Fem/femguiobjects/_ViewProviderFemConstraintSelfWeight.py b/src/Mod/Fem/femguiobjects/_ViewProviderFemConstraintSelfWeight.py
index d035ae124b..438e26c755 100644
--- a/src/Mod/Fem/femguiobjects/_ViewProviderFemConstraintSelfWeight.py
+++ b/src/Mod/Fem/femguiobjects/_ViewProviderFemConstraintSelfWeight.py
@@ -53,12 +53,14 @@ class _ViewProviderFemConstraintSelfWeight:
return
def setEdit(self, vobj, mode=0):
- # avoid edit mode by return False, https://forum.freecadweb.org/viewtopic.php?t=12139&start=10#p161062
+ # avoid edit mode by return False
+ # https://forum.freecadweb.org/viewtopic.php?t=12139&start=10#p161062
return False
def doubleClicked(self, vobj):
guidoc = FreeCADGui.getDocument(vobj.Object.Document)
- # check if another VP is in edit mode, https://forum.freecadweb.org/viewtopic.php?t=13077#p104702
+ # check if another VP is in edit mode
+ # https://forum.freecadweb.org/viewtopic.php?t=13077#p104702
if not guidoc.getInEdit():
guidoc.setEdit(vobj.Object.Name)
else:
diff --git a/src/Mod/Fem/femguiobjects/_ViewProviderFemElementFluid1D.py b/src/Mod/Fem/femguiobjects/_ViewProviderFemElementFluid1D.py
index 3b9f8ea5ee..1fb9a5b010 100644
--- a/src/Mod/Fem/femguiobjects/_ViewProviderFemElementFluid1D.py
+++ b/src/Mod/Fem/femguiobjects/_ViewProviderFemElementFluid1D.py
@@ -87,7 +87,8 @@ class _ViewProviderFemElementFluid1D:
def doubleClicked(self, vobj):
guidoc = FreeCADGui.getDocument(vobj.Object.Document)
- # check if another VP is in edit mode, https://forum.freecadweb.org/viewtopic.php?t=13077#p104702
+ # check if another VP is in edit mode
+ # https://forum.freecadweb.org/viewtopic.php?t=13077#p104702
if not guidoc.getInEdit():
guidoc.setEdit(vobj.Object.Name)
else:
@@ -112,48 +113,188 @@ class _TaskPanelFemElementFluid1D:
self.obj = obj
# parameter widget
- self.parameterWidget = FreeCADGui.PySideUic.loadUi(FreeCAD.getHomePath() + "Mod/Fem/Resources/ui/ElementFluid1D.ui")
- QtCore.QObject.connect(self.parameterWidget.cb_section_type, QtCore.SIGNAL("activated(int)"), self.sectiontype_changed)
- QtCore.QObject.connect(self.parameterWidget.cb_liquid_section_type, QtCore.SIGNAL("activated(int)"), self.liquidsectiontype_changed)
- QtCore.QObject.connect(self.parameterWidget.if_manning_area, QtCore.SIGNAL("valueChanged(Base::Quantity)"), self.manning_area_changed)
- QtCore.QObject.connect(self.parameterWidget.if_manning_radius, QtCore.SIGNAL("valueChanged(Base::Quantity)"), self.manning_radius_changed)
- QtCore.QObject.connect(self.parameterWidget.sb_manning_coefficient, QtCore.SIGNAL("valueChanged(double)"), self.manning_coefficient_changed)
- QtCore.QObject.connect(self.parameterWidget.if_enlarge_area1, QtCore.SIGNAL("valueChanged(Base::Quantity)"), self.enlarge_area1_changed)
- QtCore.QObject.connect(self.parameterWidget.if_enlarge_area2, QtCore.SIGNAL("valueChanged(Base::Quantity)"), self.enlarge_area2_changed)
- QtCore.QObject.connect(self.parameterWidget.if_contract_area1, QtCore.SIGNAL("valueChanged(Base::Quantity)"), self.contract_area1_changed)
- QtCore.QObject.connect(self.parameterWidget.if_contract_area2, QtCore.SIGNAL("valueChanged(Base::Quantity)"), self.contract_area2_changed)
- QtCore.QObject.connect(self.parameterWidget.if_inletpressure, QtCore.SIGNAL("valueChanged(Base::Quantity)"), self.inlet_pressure_changed)
- QtCore.QObject.connect(self.parameterWidget.if_outletpressure, QtCore.SIGNAL("valueChanged(Base::Quantity)"), self.outlet_pressure_changed)
- QtCore.QObject.connect(self.parameterWidget.if_inletflowrate, QtCore.SIGNAL("valueChanged(Base::Quantity)"), self.inlet_flowrate_changed)
- QtCore.QObject.connect(self.parameterWidget.if_outletflowrate, QtCore.SIGNAL("valueChanged(Base::Quantity)"), self.outlet_flowrate_changed)
- QtCore.QObject.connect(self.parameterWidget.gb_inletpressure, QtCore.SIGNAL("clicked(bool)"), self.inlet_pressure_active)
- QtCore.QObject.connect(self.parameterWidget.gb_outletpressure, QtCore.SIGNAL("clicked(bool)"), self.outlet_pressure_active)
- QtCore.QObject.connect(self.parameterWidget.gb_inletflowrate, QtCore.SIGNAL("clicked(bool)"), self.inlet_flowrate_active)
- QtCore.QObject.connect(self.parameterWidget.gb_outletflowrate, QtCore.SIGNAL("clicked(bool)"), self.outlet_flowrate_active)
- QtCore.QObject.connect(self.parameterWidget.if_entrance_pipe_area, QtCore.SIGNAL("valueChanged(Base::Quantity)"), self.entrance_pipe_area_changed)
- QtCore.QObject.connect(self.parameterWidget.if_entrance_area, QtCore.SIGNAL("valueChanged(Base::Quantity)"), self.entrance_area_changed)
- QtCore.QObject.connect(self.parameterWidget.if_diaphragm_pipe_area, QtCore.SIGNAL("valueChanged(Base::Quantity)"), self.diaphragm_pipe_area_changed)
- QtCore.QObject.connect(self.parameterWidget.if_diaphragm_area, QtCore.SIGNAL("valueChanged(Base::Quantity)"), self.diaphragm_area_changed)
- QtCore.QObject.connect(self.parameterWidget.if_bend_pipe_area, QtCore.SIGNAL("valueChanged(Base::Quantity)"), self.bend_pipe_area_changed)
- QtCore.QObject.connect(self.parameterWidget.sb_bradius_pdiameter, QtCore.SIGNAL("valueChanged(double)"), self.bradius_pdiameter_changed)
- QtCore.QObject.connect(self.parameterWidget.sb_bend_angle, QtCore.SIGNAL("valueChanged(double)"), self.bend_angle_changed)
- QtCore.QObject.connect(self.parameterWidget.sb_bend_loss_coefficient, QtCore.SIGNAL("valueChanged(double)"), self.bend_loss_coefficient_changed)
- QtCore.QObject.connect(self.parameterWidget.if_gatevalve_pipe_area, QtCore.SIGNAL("valueChanged(Base::Quantity)"), self.gatevalve_pipe_area_changed)
- QtCore.QObject.connect(self.parameterWidget.sb_gatevalve_closing_coeff, QtCore.SIGNAL("valueChanged(double)"), self.gatevalve_closing_coeff_changed)
- QtCore.QObject.connect(self.parameterWidget.if_colebrooke_pipe_area, QtCore.SIGNAL("valueChanged(Base::Quantity)"), self.colebrooke_pipe_area_changed)
- QtCore.QObject.connect(self.parameterWidget.if_colebrooke_radius, QtCore.SIGNAL("valueChanged(Base::Quantity)"), self.colebrooke_radius_changed)
- QtCore.QObject.connect(self.parameterWidget.if_colebrooke_grain_diameter, QtCore.SIGNAL("valueChanged(Base::Quantity)"), self.colebrooke_grain_diameter_changed)
- QtCore.QObject.connect(self.parameterWidget.sb_colebrooke_form_factor, QtCore.SIGNAL("valueChanged(double)"), self.colebrooke_form_factor_changed)
- QtCore.QObject.connect(self.parameterWidget.tw_pump_characteristics, QtCore.SIGNAL("cellChanged(int, int)"), self.pump_characteristics_changed)
- self.parameterWidget.cb_section_type.addItems(_FemElementFluid1D._FemElementFluid1D.known_fluid_types)
- self.parameterWidget.cb_liquid_section_type.addItems(_FemElementFluid1D._FemElementFluid1D.known_liquid_types)
- self.parameterWidget.cb_gas_section_type.addItems(_FemElementFluid1D._FemElementFluid1D.known_gas_types)
- self.parameterWidget.cb_channel_section_type.addItems(_FemElementFluid1D._FemElementFluid1D.known_channel_types)
+ self.parameterWidget = FreeCADGui.PySideUic.loadUi(
+ FreeCAD.getHomePath() + "Mod/Fem/Resources/ui/ElementFluid1D.ui"
+ )
+ QtCore.QObject.connect(
+ self.parameterWidget.cb_section_type,
+ QtCore.SIGNAL("activated(int)"),
+ self.sectiontype_changed
+ )
+ QtCore.QObject.connect(
+ self.parameterWidget.cb_liquid_section_type,
+ QtCore.SIGNAL("activated(int)"),
+ self.liquidsectiontype_changed
+ )
+ QtCore.QObject.connect(
+ self.parameterWidget.if_manning_area,
+ QtCore.SIGNAL("valueChanged(Base::Quantity)"),
+ self.manning_area_changed
+ )
+ QtCore.QObject.connect(
+ self.parameterWidget.if_manning_radius,
+ QtCore.SIGNAL("valueChanged(Base::Quantity)"),
+ self.manning_radius_changed
+ )
+ QtCore.QObject.connect(
+ self.parameterWidget.sb_manning_coefficient,
+ QtCore.SIGNAL("valueChanged(double)"),
+ self.manning_coefficient_changed
+ )
+ QtCore.QObject.connect(
+ self.parameterWidget.if_enlarge_area1,
+ QtCore.SIGNAL("valueChanged(Base::Quantity)"),
+ self.enlarge_area1_changed
+ )
+ QtCore.QObject.connect(
+ self.parameterWidget.if_enlarge_area2,
+ QtCore.SIGNAL("valueChanged(Base::Quantity)"),
+ self.enlarge_area2_changed
+ )
+ QtCore.QObject.connect(
+ self.parameterWidget.if_contract_area1,
+ QtCore.SIGNAL("valueChanged(Base::Quantity)"),
+ self.contract_area1_changed
+ )
+ QtCore.QObject.connect(
+ self.parameterWidget.if_contract_area2,
+ QtCore.SIGNAL("valueChanged(Base::Quantity)"),
+ self.contract_area2_changed
+ )
+ QtCore.QObject.connect(
+ self.parameterWidget.if_inletpressure,
+ QtCore.SIGNAL("valueChanged(Base::Quantity)"),
+ self.inlet_pressure_changed
+ )
+ QtCore.QObject.connect(
+ self.parameterWidget.if_outletpressure,
+ QtCore.SIGNAL("valueChanged(Base::Quantity)"),
+ self.outlet_pressure_changed
+ )
+ QtCore.QObject.connect(
+ self.parameterWidget.if_inletflowrate,
+ QtCore.SIGNAL("valueChanged(Base::Quantity)"),
+ self.inlet_flowrate_changed
+ )
+ QtCore.QObject.connect(
+ self.parameterWidget.if_outletflowrate,
+ QtCore.SIGNAL("valueChanged(Base::Quantity)"),
+ self.outlet_flowrate_changed
+ )
+ QtCore.QObject.connect(
+ self.parameterWidget.gb_inletpressure,
+ QtCore.SIGNAL("clicked(bool)"),
+ self.inlet_pressure_active
+ )
+ QtCore.QObject.connect(
+ self.parameterWidget.gb_outletpressure,
+ QtCore.SIGNAL("clicked(bool)"),
+ self.outlet_pressure_active
+ )
+ QtCore.QObject.connect(
+ self.parameterWidget.gb_inletflowrate,
+ QtCore.SIGNAL("clicked(bool)"),
+ self.inlet_flowrate_active
+ )
+ QtCore.QObject.connect(
+ self.parameterWidget.gb_outletflowrate,
+ QtCore.SIGNAL("clicked(bool)"),
+ self.outlet_flowrate_active
+ )
+ QtCore.QObject.connect(
+ self.parameterWidget.if_entrance_pipe_area,
+ QtCore.SIGNAL("valueChanged(Base::Quantity)"),
+ self.entrance_pipe_area_changed
+ )
+ QtCore.QObject.connect(
+ self.parameterWidget.if_entrance_area,
+ QtCore.SIGNAL("valueChanged(Base::Quantity)"),
+ self.entrance_area_changed
+ )
+ QtCore.QObject.connect(
+ self.parameterWidget.if_diaphragm_pipe_area,
+ QtCore.SIGNAL("valueChanged(Base::Quantity)"),
+ self.diaphragm_pipe_area_changed
+ )
+ QtCore.QObject.connect(
+ self.parameterWidget.if_diaphragm_area,
+ QtCore.SIGNAL("valueChanged(Base::Quantity)"),
+ self.diaphragm_area_changed
+ )
+ QtCore.QObject.connect(
+ self.parameterWidget.if_bend_pipe_area,
+ QtCore.SIGNAL("valueChanged(Base::Quantity)"),
+ self.bend_pipe_area_changed
+ )
+ QtCore.QObject.connect(
+ self.parameterWidget.sb_bradius_pdiameter,
+ QtCore.SIGNAL("valueChanged(double)"),
+ self.bradius_pdiameter_changed
+ )
+ QtCore.QObject.connect(
+ self.parameterWidget.sb_bend_angle,
+ QtCore.SIGNAL("valueChanged(double)"),
+ self.bend_angle_changed
+ )
+ QtCore.QObject.connect(
+ self.parameterWidget.sb_bend_loss_coefficient,
+ QtCore.SIGNAL("valueChanged(double)"),
+ self.bend_loss_coefficient_changed
+ )
+ QtCore.QObject.connect(
+ self.parameterWidget.if_gatevalve_pipe_area,
+ QtCore.SIGNAL("valueChanged(Base::Quantity)"),
+ self.gatevalve_pipe_area_changed
+ )
+ QtCore.QObject.connect(
+ self.parameterWidget.sb_gatevalve_closing_coeff,
+ QtCore.SIGNAL("valueChanged(double)"),
+ self.gatevalve_closing_coeff_changed
+ )
+ QtCore.QObject.connect(
+ self.parameterWidget.if_colebrooke_pipe_area,
+ QtCore.SIGNAL("valueChanged(Base::Quantity)"),
+ self.colebrooke_pipe_area_changed
+ )
+ QtCore.QObject.connect(
+ self.parameterWidget.if_colebrooke_radius,
+ QtCore.SIGNAL("valueChanged(Base::Quantity)"),
+ self.colebrooke_radius_changed
+ )
+ QtCore.QObject.connect(
+ self.parameterWidget.if_colebrooke_grain_diameter,
+ QtCore.SIGNAL("valueChanged(Base::Quantity)"),
+ self.colebrooke_grain_diameter_changed
+ )
+ QtCore.QObject.connect(
+ self.parameterWidget.sb_colebrooke_form_factor,
+ QtCore.SIGNAL("valueChanged(double)"),
+ self.colebrooke_form_factor_changed
+ )
+ QtCore.QObject.connect(
+ self.parameterWidget.tw_pump_characteristics,
+ QtCore.SIGNAL("cellChanged(int, int)"),
+ self.pump_characteristics_changed
+ )
+ self.parameterWidget.cb_section_type.addItems(
+ _FemElementFluid1D._FemElementFluid1D.known_fluid_types
+ )
+ self.parameterWidget.cb_liquid_section_type.addItems(
+ _FemElementFluid1D._FemElementFluid1D.known_liquid_types
+ )
+ self.parameterWidget.cb_gas_section_type.addItems(
+ _FemElementFluid1D._FemElementFluid1D.known_gas_types
+ )
+ self.parameterWidget.cb_channel_section_type.addItems(
+ _FemElementFluid1D._FemElementFluid1D.known_channel_types
+ )
self.get_fluidsection_props()
self.updateParameterWidget()
# geometry selection widget
- self.selectionWidget = FemSelectionWidgets.GeometryElementsSelection(obj.References, ['Edge'])
+ self.selectionWidget = FemSelectionWidgets.GeometryElementsSelection(
+ obj.References, ['Edge']
+ )
# form made from param and selection widget
self.form = [self.parameterWidget, self.selectionWidget]
@@ -251,7 +392,9 @@ class _TaskPanelFemElementFluid1D:
index_sectiontype = self.parameterWidget.cb_section_type.findText(self.SectionType)
self.parameterWidget.cb_section_type.setCurrentIndex(index_sectiontype)
self.parameterWidget.sw_section_type.setCurrentIndex(index_sectiontype)
- index_liquidsectiontype = self.parameterWidget.cb_liquid_section_type.findText(self.LiquidSectionType)
+ index_liquidsectiontype = self.parameterWidget.cb_liquid_section_type.findText(
+ self.LiquidSectionType
+ )
self.parameterWidget.cb_liquid_section_type.setCurrentIndex(index_liquidsectiontype)
self.parameterWidget.sw_liquid_section_type.setCurrentIndex(index_liquidsectiontype)
self.parameterWidget.if_manning_area.setText(self.ManningArea.UserString)
@@ -261,8 +404,12 @@ class _TaskPanelFemElementFluid1D:
self.parameterWidget.if_enlarge_area2.setText(self.EnlargeArea2.UserString)
self.parameterWidget.if_contract_area1.setText(self.ContractArea1.UserString)
self.parameterWidget.if_contract_area2.setText(self.ContractArea2.UserString)
- self.parameterWidget.if_inletpressure.setText(FreeCAD.Units.Quantity(1000 * self.InletPressure, FreeCAD.Units.Pressure).UserString)
- self.parameterWidget.if_outletpressure.setText(FreeCAD.Units.Quantity(1000 * self.OutletPressure, FreeCAD.Units.Pressure).UserString)
+ self.parameterWidget.if_inletpressure.setText(FreeCAD.Units.Quantity(
+ 1000 * self.InletPressure, FreeCAD.Units.Pressure).UserString
+ )
+ self.parameterWidget.if_outletpressure.setText(FreeCAD.Units.Quantity(
+ 1000 * self.OutletPressure, FreeCAD.Units.Pressure).UserString
+ )
self.parameterWidget.if_inletflowrate.setText(str(self.InletFlowRate))
self.parameterWidget.if_outletflowrate.setText(str(self.OutletFlowRate))
self.parameterWidget.gb_inletpressure.setChecked(self.InletPressureActive)
@@ -281,25 +428,35 @@ class _TaskPanelFemElementFluid1D:
self.parameterWidget.sb_gatevalve_closing_coeff.setValue(self.GateValveClosingCoeff)
self.parameterWidget.if_colebrooke_pipe_area.setText(self.ColebrookeArea.UserString)
self.parameterWidget.if_colebrooke_radius.setText(self.ColebrookeRadius.UserString)
- self.parameterWidget.if_colebrooke_grain_diameter.setText(self.ColebrookeGrainDiameter.UserString)
+ self.parameterWidget.if_colebrooke_grain_diameter.setText(
+ self.ColebrookeGrainDiameter.UserString
+ )
self.parameterWidget.sb_colebrooke_form_factor.setValue(self.ColebrookeFormFactor)
for i in range(len(self.PumpFlowRate)):
- self.parameterWidget.tw_pump_characteristics.setItem(i, 0, QtGui.QTableWidgetItem(str(self.PumpFlowRate[i])))
- self.parameterWidget.tw_pump_characteristics.setItem(i, 1, QtGui.QTableWidgetItem(str(self.PumpHeadLoss[i])))
+ self.parameterWidget.tw_pump_characteristics.setItem(
+ i, 0, QtGui.QTableWidgetItem(str(self.PumpFlowRate[i]))
+ )
+ self.parameterWidget.tw_pump_characteristics.setItem(
+ i, 1, QtGui.QTableWidgetItem(str(self.PumpHeadLoss[i]))
+ )
def sectiontype_changed(self, index):
if index < 0:
return
self.parameterWidget.cb_section_type.setCurrentIndex(index)
self.parameterWidget.sw_section_type.setCurrentIndex(index)
- self.SectionType = str(self.parameterWidget.cb_section_type.itemText(index)) # parameterWidget returns unicode
+ # parameterWidget returns unicode
+ self.SectionType = str(self.parameterWidget.cb_section_type.itemText(index))
def liquidsectiontype_changed(self, index):
if index < 0:
return
self.parameterWidget.cb_liquid_section_type.setCurrentIndex(index)
self.parameterWidget.sw_liquid_section_type.setCurrentIndex(index)
- self.LiquidSectionType = str(self.parameterWidget.cb_liquid_section_type.itemText(index)) # parameterWidget returns unicode
+ # parameterWidget returns unicode
+ self.LiquidSectionType = str(
+ self.parameterWidget.cb_liquid_section_type.itemText(index)
+ )
def manning_area_changed(self, base_quantity_value):
self.ManningArea = base_quantity_value
@@ -323,16 +480,24 @@ class _TaskPanelFemElementFluid1D:
self.ContractArea2 = base_quantity_value
def inlet_pressure_changed(self, base_quantity_value):
- self.InletPressure = float(FreeCAD.Units.Quantity(base_quantity_value).getValueAs("MPa"))
+ self.InletPressure = float(
+ FreeCAD.Units.Quantity(base_quantity_value).getValueAs("MPa")
+ )
def outlet_pressure_changed(self, base_quantity_value):
- self.OutletPressure = float(FreeCAD.Units.Quantity(base_quantity_value).getValueAs("MPa"))
+ self.OutletPressure = float(
+ FreeCAD.Units.Quantity(base_quantity_value).getValueAs("MPa")
+ )
def inlet_flowrate_changed(self, base_quantity_value):
- self.InletFlowRate = float(FreeCAD.Units.Quantity(base_quantity_value).getValueAs("kg/s"))
+ self.InletFlowRate = float(
+ FreeCAD.Units.Quantity(base_quantity_value).getValueAs("kg/s")
+ )
def outlet_flowrate_changed(self, base_quantity_value):
- self.OutletFlowRate = float(FreeCAD.Units.Quantity(base_quantity_value).getValueAs("kg/s"))
+ self.OutletFlowRate = float(
+ FreeCAD.Units.Quantity(base_quantity_value).getValueAs("kg/s")
+ )
def inlet_pressure_active(self, active):
self.InletPressureActive = active
@@ -390,6 +555,10 @@ class _TaskPanelFemElementFluid1D:
def pump_characteristics_changed(self, row, column):
if column == 0:
- self.PumpFlowRate[row] = float(self.parameterWidget.tw_pump_characteristics.item(row, column).text())
+ self.PumpFlowRate[row] = float(
+ self.parameterWidget.tw_pump_characteristics.item(row, column).text()
+ )
else:
- self.PumpHeadLoss[row] = float(self.parameterWidget.tw_pump_characteristics.item(row, column).text())
+ self.PumpHeadLoss[row] = float(
+ self.parameterWidget.tw_pump_characteristics.item(row, column).text()
+ )
diff --git a/src/Mod/Fem/femguiobjects/_ViewProviderFemElementGeometry1D.py b/src/Mod/Fem/femguiobjects/_ViewProviderFemElementGeometry1D.py
index 1772ab6cce..04f209df89 100644
--- a/src/Mod/Fem/femguiobjects/_ViewProviderFemElementGeometry1D.py
+++ b/src/Mod/Fem/femguiobjects/_ViewProviderFemElementGeometry1D.py
@@ -84,7 +84,8 @@ class _ViewProviderFemElementGeometry1D:
def doubleClicked(self, vobj):
guidoc = FreeCADGui.getDocument(vobj.Object.Document)
- # check if another VP is in edit mode, https://forum.freecadweb.org/viewtopic.php?t=13077#p104702
+ # check if another VP is in edit mode
+ # https://forum.freecadweb.org/viewtopic.php?t=13077#p104702
if not guidoc.getInEdit():
guidoc.setEdit(vobj.Object.Name)
else:
@@ -109,19 +110,52 @@ class _TaskPanelFemElementGeometry1D:
self.obj = obj
# parameter widget
- self.parameterWidget = FreeCADGui.PySideUic.loadUi(FreeCAD.getHomePath() + "Mod/Fem/Resources/ui/ElementGeometry1D.ui")
- QtCore.QObject.connect(self.parameterWidget.cb_crosssectiontype, QtCore.SIGNAL("activated(int)"), self.sectiontype_changed)
- QtCore.QObject.connect(self.parameterWidget.if_rec_height, QtCore.SIGNAL("valueChanged(Base::Quantity)"), self.rec_height_changed)
- QtCore.QObject.connect(self.parameterWidget.if_rec_width, QtCore.SIGNAL("valueChanged(Base::Quantity)"), self.rec_width_changed)
- QtCore.QObject.connect(self.parameterWidget.if_circ_diameter, QtCore.SIGNAL("valueChanged(Base::Quantity)"), self.circ_diameter_changed)
- QtCore.QObject.connect(self.parameterWidget.if_pipe_diameter, QtCore.SIGNAL("valueChanged(Base::Quantity)"), self.pipe_diameter_changed)
- QtCore.QObject.connect(self.parameterWidget.if_pipe_thickness, QtCore.SIGNAL("valueChanged(Base::Quantity)"), self.pipe_thickness_changed)
- self.parameterWidget.cb_crosssectiontype.addItems(_FemElementGeometry1D._FemElementGeometry1D.known_beam_types) # it is inside the class thus double _FemElementGeometry1D
+ self.parameterWidget = FreeCADGui.PySideUic.loadUi(
+ FreeCAD.getHomePath() + "Mod/Fem/Resources/ui/ElementGeometry1D.ui"
+ )
+ QtCore.QObject.connect(
+ self.parameterWidget.cb_crosssectiontype,
+ QtCore.SIGNAL("activated(int)"),
+ self.sectiontype_changed
+ )
+ QtCore.QObject.connect(
+ self.parameterWidget.if_rec_height,
+ QtCore.SIGNAL("valueChanged(Base::Quantity)"),
+ self.rec_height_changed
+ )
+ QtCore.QObject.connect(
+ self.parameterWidget.if_rec_width,
+ QtCore.SIGNAL("valueChanged(Base::Quantity)"),
+ self.rec_width_changed
+ )
+ QtCore.QObject.connect(
+ self.parameterWidget.if_circ_diameter,
+ QtCore.SIGNAL("valueChanged(Base::Quantity)"),
+ self.circ_diameter_changed
+ )
+ QtCore.QObject.connect(
+ self.parameterWidget.if_pipe_diameter,
+ QtCore.SIGNAL("valueChanged(Base::Quantity)"),
+ self.pipe_diameter_changed
+ )
+ QtCore.QObject.connect(
+ self.parameterWidget.if_pipe_thickness,
+ QtCore.SIGNAL("valueChanged(Base::Quantity)"),
+ self.pipe_thickness_changed
+ )
+
+ # it is inside the class thus double _FemElementGeometry1D
+ self.parameterWidget.cb_crosssectiontype.addItems(
+ _FemElementGeometry1D._FemElementGeometry1D.known_beam_types
+ )
self.get_beamsection_props()
self.updateParameterWidget()
# geometry selection widget
- self.selectionWidget = FemSelectionWidgets.GeometryElementsSelection(obj.References, ['Edge'])
+ self.selectionWidget = FemSelectionWidgets.GeometryElementsSelection(
+ obj.References,
+ ['Edge']
+ )
# form made from param and selection widget
self.form = [self.parameterWidget, self.selectionWidget]
@@ -162,7 +196,9 @@ class _TaskPanelFemElementGeometry1D:
def updateParameterWidget(self):
'fills the widgets'
- index_crosssectiontype = self.parameterWidget.cb_crosssectiontype.findText(self.SectionType)
+ index_crosssectiontype = self.parameterWidget.cb_crosssectiontype.findText(
+ self.SectionType
+ )
self.parameterWidget.cb_crosssectiontype.setCurrentIndex(index_crosssectiontype)
self.parameterWidget.if_rec_height.setText(self.RectHeight.UserString)
self.parameterWidget.if_rec_width.setText(self.RectWidth.UserString)
@@ -174,7 +210,8 @@ class _TaskPanelFemElementGeometry1D:
if index < 0:
return
self.parameterWidget.cb_crosssectiontype.setCurrentIndex(index)
- self.SectionType = str(self.parameterWidget.cb_crosssectiontype.itemText(index)) # parameterWidget returns unicode
+ # parameterWidget returns unicode
+ self.SectionType = str(self.parameterWidget.cb_crosssectiontype.itemText(index))
def rec_height_changed(self, base_quantity_value):
self.RectHeight = base_quantity_value
diff --git a/src/Mod/Fem/femguiobjects/_ViewProviderFemElementGeometry2D.py b/src/Mod/Fem/femguiobjects/_ViewProviderFemElementGeometry2D.py
index 7a34cd19d0..e71984927f 100644
--- a/src/Mod/Fem/femguiobjects/_ViewProviderFemElementGeometry2D.py
+++ b/src/Mod/Fem/femguiobjects/_ViewProviderFemElementGeometry2D.py
@@ -83,7 +83,8 @@ class _ViewProviderFemElementGeometry2D:
def doubleClicked(self, vobj):
guidoc = FreeCADGui.getDocument(vobj.Object.Document)
- # check if another VP is in edit mode, https://forum.freecadweb.org/viewtopic.php?t=13077#p104702
+ # check if another VP is in edit mode
+ # https://forum.freecadweb.org/viewtopic.php?t=13077#p104702
if not guidoc.getInEdit():
guidoc.setEdit(vobj.Object.Name)
else:
@@ -108,12 +109,21 @@ class _TaskPanelFemElementGeometry2D:
self.obj = obj
# parameter widget
- self.parameterWidget = FreeCADGui.PySideUic.loadUi(FreeCAD.getHomePath() + "Mod/Fem/Resources/ui/ElementGeometry2D.ui")
- QtCore.QObject.connect(self.parameterWidget.if_thickness, QtCore.SIGNAL("valueChanged(Base::Quantity)"), self.thickness_changed)
+ self.parameterWidget = FreeCADGui.PySideUic.loadUi(
+ FreeCAD.getHomePath() + "Mod/Fem/Resources/ui/ElementGeometry2D.ui"
+ )
+ QtCore.QObject.connect(
+ self.parameterWidget.if_thickness,
+ QtCore.SIGNAL("valueChanged(Base::Quantity)"),
+ self.thickness_changed
+ )
self.init_parameter_widget()
# geometry selection widget
- self.selectionWidget = FemSelectionWidgets.GeometryElementsSelection(obj.References, ['Face'])
+ self.selectionWidget = FemSelectionWidgets.GeometryElementsSelection(
+ obj.References,
+ ['Face']
+ )
# form made from param and selection widget
self.form = [self.parameterWidget, self.selectionWidget]
diff --git a/src/Mod/Fem/femguiobjects/_ViewProviderFemElementRotation1D.py b/src/Mod/Fem/femguiobjects/_ViewProviderFemElementRotation1D.py
index ea46a07acd..8fb0320fbd 100644
--- a/src/Mod/Fem/femguiobjects/_ViewProviderFemElementRotation1D.py
+++ b/src/Mod/Fem/femguiobjects/_ViewProviderFemElementRotation1D.py
@@ -84,12 +84,14 @@ class _ViewProviderFemElementRotation1D:
'''
def setEdit(self, vobj, mode=0):
- # avoid edit mode by return False, https://forum.freecadweb.org/viewtopic.php?t=12139&start=10#p161062
+ # avoid edit mode by return False
+ # https://forum.freecadweb.org/viewtopic.php?t=12139&start=10#p161062
return False
def doubleClicked(self, vobj):
guidoc = FreeCADGui.getDocument(vobj.Object.Document)
- # check if another VP is in edit mode, https://forum.freecadweb.org/viewtopic.php?t=13077#p104702
+ # check if another VP is in edit mode
+ # https://forum.freecadweb.org/viewtopic.php?t=13077#p104702
if not guidoc.getInEdit():
guidoc.setEdit(vobj.Object.Name)
else:
@@ -113,13 +115,22 @@ class _TaskPanelFemElementRotation1D:
self.obj = obj
# parameter widget
- self.parameterWidget = FreeCADGui.PySideUic.loadUi(FreeCAD.getHomePath() + "Mod/Fem/Resources/ui/ElementRotation1D.ui")
- QtCore.QObject.connect(self.parameterWidget.if_rotation, QtCore.SIGNAL("valueChanged(Base::Quantity)"), self.rotation_changed)
+ self.parameterWidget = FreeCADGui.PySideUic.loadUi(
+ FreeCAD.getHomePath() + "Mod/Fem/Resources/ui/ElementRotation1D.ui"
+ )
+ QtCore.QObject.connect(
+ self.parameterWidget.if_rotation,
+ QtCore.SIGNAL("valueChanged(Base::Quantity)"),
+ self.rotation_changed
+ )
self.rotation = self.obj.Rotation
self.parameterWidget.if_rotation.setText(self.rotation.UserString)
# geometry selection widget
- self.selectionWidget = FemSelectionWidgets.GeometryElementsSelection(obj.References, ['Edge'])
+ self.selectionWidget = FemSelectionWidgets.GeometryElementsSelection(
+ obj.References,
+ ['Edge']
+ )
# form made from param and selection widget
self.form = [self.parameterWidget, self.selectionWidget]
diff --git a/src/Mod/Fem/femguiobjects/_ViewProviderFemMaterialMechanicalNonlinear.py b/src/Mod/Fem/femguiobjects/_ViewProviderFemMaterialMechanicalNonlinear.py
index e22f2e1a6d..1dcc3179e9 100644
--- a/src/Mod/Fem/femguiobjects/_ViewProviderFemMaterialMechanicalNonlinear.py
+++ b/src/Mod/Fem/femguiobjects/_ViewProviderFemMaterialMechanicalNonlinear.py
@@ -63,12 +63,14 @@ class _ViewProviderFemMaterialMechanicalNonlinear:
return
def setEdit(self, vobj, mode=0):
- # avoid edit mode by return False, https://forum.freecadweb.org/viewtopic.php?t=12139&start=10#p161062
+ # avoid edit mode by return False
+ # https://forum.freecadweb.org/viewtopic.php?t=12139&start=10#p161062
return False
def doubleClicked(self, vobj):
guidoc = FreeCADGui.getDocument(vobj.Object.Document)
- # check if another VP is in edit mode, https://forum.freecadweb.org/viewtopic.php?t=13077#p104702
+ # check if another VP is in edit mode
+ # https://forum.freecadweb.org/viewtopic.php?t=13077#p104702
if not guidoc.getInEdit():
guidoc.setEdit(vobj.Object.Name)
else:
diff --git a/src/Mod/Fem/femguiobjects/_ViewProviderFemMeshBoundaryLayer.py b/src/Mod/Fem/femguiobjects/_ViewProviderFemMeshBoundaryLayer.py
index f8b452a9b9..5153b139d3 100644
--- a/src/Mod/Fem/femguiobjects/_ViewProviderFemMeshBoundaryLayer.py
+++ b/src/Mod/Fem/femguiobjects/_ViewProviderFemMeshBoundaryLayer.py
@@ -83,7 +83,8 @@ class _ViewProviderFemMeshBoundaryLayer:
def doubleClicked(self, vobj):
guidoc = FreeCADGui.getDocument(vobj.Object.Document)
- # check if another VP is in edit mode, https://forum.freecadweb.org/viewtopic.php?t=13077#p104702
+ # check if another VP is in edit mode
+ # https://forum.freecadweb.org/viewtopic.php?t=13077#p104702
if not guidoc.getInEdit():
guidoc.setEdit(vobj.Object.Name)
else:
@@ -108,14 +109,33 @@ class _TaskPanelFemMeshBoundaryLayer:
self.obj = obj
# parameter widget
- self.parameterWidget = FreeCADGui.PySideUic.loadUi(FreeCAD.getHomePath() + "Mod/Fem/Resources/ui/MeshBoundaryLayer.ui")
- QtCore.QObject.connect(self.parameterWidget.bl_number_of_layers, QtCore.SIGNAL("valueChanged(int)"), self.bl_number_of_layers_changed)
- QtCore.QObject.connect(self.parameterWidget.bl_min_thickness, QtCore.SIGNAL("valueChanged(Base::Quantity)"), self.bl_min_thickness_changed)
- QtCore.QObject.connect(self.parameterWidget.bl_growth_rate, QtCore.SIGNAL("valueChanged(double)"), self.bl_growth_rate_changed) # becareful of signal signature for QDoubleSpinbox
+ self.parameterWidget = FreeCADGui.PySideUic.loadUi(
+ FreeCAD.getHomePath() + "Mod/Fem/Resources/ui/MeshBoundaryLayer.ui"
+ )
+ QtCore.QObject.connect(
+ self.parameterWidget.bl_number_of_layers,
+ QtCore.SIGNAL("valueChanged(int)"),
+ self.bl_number_of_layers_changed
+ )
+ QtCore.QObject.connect(
+ self.parameterWidget.bl_min_thickness,
+ QtCore.SIGNAL("valueChanged(Base::Quantity)"),
+ self.bl_min_thickness_changed
+ )
+ # be careful of signal signature for QDoubleSpinbox
+ QtCore.QObject.connect(
+ self.parameterWidget.bl_growth_rate,
+ QtCore.SIGNAL("valueChanged(double)"),
+ self.bl_growth_rate_changed
+ )
self.init_parameter_widget()
# geometry selection widget
- self.selectionWidget = FemSelectionWidgets.GeometryElementsSelection(obj.References, ['Solid', 'Face', 'Edge', 'Vertex']) # start with Solid in list!
+ # start with Solid in list!
+ self.selectionWidget = FemSelectionWidgets.GeometryElementsSelection(
+ obj.References,
+ ['Solid', 'Face', 'Edge', 'Vertex']
+ )
# form made from param and selection widget
self.form = [self.parameterWidget, self.selectionWidget]
diff --git a/src/Mod/Fem/femguiobjects/_ViewProviderFemMeshGmsh.py b/src/Mod/Fem/femguiobjects/_ViewProviderFemMeshGmsh.py
index 02aa524f59..11543485d5 100644
--- a/src/Mod/Fem/femguiobjects/_ViewProviderFemMeshGmsh.py
+++ b/src/Mod/Fem/femguiobjects/_ViewProviderFemMeshGmsh.py
@@ -80,11 +80,14 @@ class _ViewProviderFemMeshGmsh:
return True
def doubleClicked(self, vobj):
- # Group meshing is only active on active analysis, we should make sure the analysis the mesh belongs too is active
+ # Group meshing is only active on active analysis
+ # we should make sure the analysis the mesh belongs too is active
gui_doc = FreeCADGui.getDocument(vobj.Object.Document)
if not gui_doc.getInEdit():
- # may be go the other way around and just activate the analysis the user has doubleClicked on ?!
- # not a fast one, we need to iterate over all member of all analysis to know to which analysis the object belongs too!!!
+ # may be go the other way around and just activate the
+ # analysis the user has doubleClicked on ?!
+ # not a fast one, we need to iterate over all member of all
+ # analysis to know to which analysis the object belongs too!!!
# first check if there is an analysis in the active document
found_an_analysis = False
for o in gui_doc.Document.Objects:
@@ -98,7 +101,10 @@ class _ViewProviderFemMeshGmsh:
if not gui_doc.getInEdit():
gui_doc.setEdit(vobj.Object.Name)
else:
- FreeCAD.Console.PrintError('Activate the analysis this Gmsh FEM mesh object belongs too!\n')
+ FreeCAD.Console.PrintError(
+ 'Activate the analysis this Gmsh FEM '
+ 'mesh object belongs too!\n'
+ )
else:
print('Gmsh FEM mesh object does not belong to the active analysis.')
found_mesh_analysis = False
@@ -108,16 +114,27 @@ class _ViewProviderFemMeshGmsh:
if m == self.Object:
found_mesh_analysis = True
FemGui.setActiveAnalysis(o)
- print('The analysis the Gmsh FEM mesh object belongs too was found and activated: ' + o.Name)
+ print(
+ 'The analysis the Gmsh FEM mesh object '
+ 'belongs to was found and activated: {}'
+ .format(o.Name)
+ )
gui_doc.setEdit(vobj.Object.Name)
break
if not found_mesh_analysis:
- print('Gmsh FEM mesh object does not belong to an analysis. Analysis group meshing will be deactivated.')
+ print(
+ 'Gmsh FEM mesh object does not belong to an analysis. '
+ 'Analysis group meshing will be deactivated.'
+ )
gui_doc.setEdit(vobj.Object.Name)
else:
FreeCAD.Console.PrintError('Active analysis is not in active document.')
else:
- print('No active analysis in active document, we are going to have a look if the Gmsh FEM mesh object belongs to a non active analysis.')
+ print(
+ 'No active analysis in active document, '
+ 'we are going to have a look if the Gmsh FEM mesh object '
+ 'belongs to a non active analysis.'
+ )
found_mesh_analysis = False
for o in gui_doc.Document.Objects:
if o.isDerivedFrom('Fem::FemAnalysisPython'):
@@ -125,11 +142,17 @@ class _ViewProviderFemMeshGmsh:
if m == self.Object:
found_mesh_analysis = True
FemGui.setActiveAnalysis(o)
- print('The analysis the Gmsh FEM mesh object belongs to was found and activated: ' + o.Name)
+ print(
+ 'The analysis the Gmsh FEM mesh object '
+ 'belongs to was found and activated: {}'.format(o.Name)
+ )
gui_doc.setEdit(vobj.Object.Name)
break
if not found_mesh_analysis:
- print('Gmsh FEM mesh object does not belong to an analysis. Analysis group meshing will be deactivated.')
+ print(
+ 'Gmsh FEM mesh object does not belong to an analysis. '
+ 'Analysis group meshing will be deactivated.'
+ )
gui_doc.setEdit(vobj.Object.Name)
else:
print('No analysis in the active document.')
@@ -148,7 +171,10 @@ class _ViewProviderFemMeshGmsh:
return None
def claimChildren(self):
- return (self.Object.MeshRegionList + self.Object.MeshGroupList + self.Object.MeshBoundaryLayerList)
+ reg_childs = self.Object.MeshRegionList
+ gro_childs = self.Object.MeshGroupList
+ bou_childs = self.Object.MeshBoundaryLayerList
+ return (reg_childs + gro_childs + bou_childs)
def onDelete(self, feature, subelements):
try:
@@ -165,11 +191,14 @@ class _ViewProviderFemMeshGmsh:
return True
def canDragObject(self, dragged_object):
- if hasattr(dragged_object, "Proxy") and dragged_object.Proxy.Type == "Fem::FemMeshBoundaryLayer":
+ if hasattr(dragged_object, "Proxy") \
+ and dragged_object.Proxy.Type == "Fem::FemMeshBoundaryLayer":
return True
- elif hasattr(dragged_object, "Proxy") and dragged_object.Proxy.Type == "Fem::FemMeshGroup":
+ elif hasattr(dragged_object, "Proxy") \
+ and dragged_object.Proxy.Type == "Fem::FemMeshGroup":
return True
- elif hasattr(dragged_object, "Proxy") and dragged_object.Proxy.Type == "Fem::FemMeshRegion":
+ elif hasattr(dragged_object, "Proxy") \
+ and dragged_object.Proxy.Type == "Fem::FemMeshRegion":
return True
else:
return False
@@ -192,15 +221,18 @@ class _ViewProviderFemMeshGmsh:
self.Object.MeshRegionList = objs
def dropObject(self, selfvp, incoming_object):
- if hasattr(incoming_object, "Proxy") and incoming_object.Proxy.Type == "Fem::FemMeshBoundaryLayer":
+ if hasattr(incoming_object, "Proxy") \
+ and incoming_object.Proxy.Type == "Fem::FemMeshBoundaryLayer":
objs = self.Object.MeshBoundaryLayerList
objs.append(incoming_object)
self.Object.MeshBoundaryLayerList = objs
- elif hasattr(incoming_object, "Proxy") and incoming_object.Proxy.Type == "Fem::FemMeshGroup":
+ elif hasattr(incoming_object, "Proxy") \
+ and incoming_object.Proxy.Type == "Fem::FemMeshGroup":
objs = self.Object.MeshGroupList
objs.append(incoming_object)
self.Object.MeshGroupList = objs
- elif hasattr(incoming_object, "Proxy") and incoming_object.Proxy.Type == "Fem::FemMeshRegion":
+ elif hasattr(incoming_object, "Proxy") \
+ and incoming_object.Proxy.Type == "Fem::FemMeshRegion":
objs = self.Object.MeshRegionList
objs.append(incoming_object)
self.Object.MeshRegionList = objs
@@ -208,30 +240,54 @@ class _ViewProviderFemMeshGmsh:
class _TaskPanelFemMeshGmsh:
- '''The TaskPanel for editing References property of FemMeshGmsh objects and creation of new FEM mesh'''
+ '''The TaskPanel for editing References property of
+ FemMeshGmsh objects and creation of new FEM mesh'''
def __init__(self, obj):
self.mesh_obj = obj
- self.form = FreeCADGui.PySideUic.loadUi(FreeCAD.getHomePath() + "Mod/Fem/Resources/ui/MeshGmsh.ui")
+ self.form = FreeCADGui.PySideUic.loadUi(
+ FreeCAD.getHomePath() + "Mod/Fem/Resources/ui/MeshGmsh.ui"
+ )
self.Timer = QtCore.QTimer()
self.Timer.start(100) # 100 milli seconds
self.gmsh_runs = False
self.console_message_gmsh = ''
- QtCore.QObject.connect(self.form.if_max, QtCore.SIGNAL("valueChanged(Base::Quantity)"), self.max_changed)
- QtCore.QObject.connect(self.form.if_min, 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.Timer, QtCore.SIGNAL("timeout()"), self.update_timer_text)
+ QtCore.QObject.connect(
+ self.form.if_max,
+ QtCore.SIGNAL("valueChanged(Base::Quantity)"),
+ self.max_changed
+ )
+ QtCore.QObject.connect(
+ self.form.if_min,
+ 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.Timer,
+ QtCore.SIGNAL("timeout()"),
+ self.update_timer_text
+ )
- self.form.cb_dimension.addItems(_FemMeshGmsh._FemMeshGmsh.known_element_dimensions)
+ self.form.cb_dimension.addItems(
+ _FemMeshGmsh._FemMeshGmsh.known_element_dimensions
+ )
self.get_mesh_params()
self.get_active_analysis()
self.update()
def getStandardButtons(self):
- return int(QtGui.QDialogButtonBox.Ok | QtGui.QDialogButtonBox.Apply | QtGui.QDialogButtonBox.Cancel)
+ button_value = int(
+ QtGui.QDialogButtonBox.Ok | QtGui.QDialogButtonBox.Apply | QtGui.QDialogButtonBox.Cancel
+ )
+ return button_value
# show a OK, a apply and a Cancel button
# def reject() is called on Cancel button
# def clicked(self, button) is needed, to access the apply button
@@ -272,8 +328,10 @@ class _TaskPanelFemMeshGmsh:
def console_log(self, message="", color="#000000"):
if (not isinstance(message, bytes)) and (sys.version_info.major < 3):
message = message.encode('utf-8', 'replace')
- self.console_message_gmsh = self.console_message_gmsh + '{0:4.1f}: {2}
'.\
- format(time.time() - self.Start, color, message)
+ self.console_message_gmsh = self.console_message_gmsh + (
+ '{0:4.1f}: {2}
'
+ .format(time.time() - self.Start, color, message)
+ )
self.form.te_output.setText(self.console_message_gmsh)
self.form.te_output.moveCursor(QtGui.QTextCursor.End)
@@ -300,14 +358,27 @@ class _TaskPanelFemMeshGmsh:
QApplication.setOverrideCursor(Qt.WaitCursor)
part = self.obj.Part
if self.mesh_obj.MeshRegionList:
- if part.Shape.ShapeType == "Compound" and hasattr(part, "Proxy"): # other part obj might not have a Proxy, thus an exception would be raised
- if (part.Proxy.Type == "FeatureBooleanFragments" or part.Proxy.Type == "FeatureSlice" or part.Proxy.Type == "FeatureXOR"):
+ # other part obj might not have a Proxy, thus an exception would be raised
+ if part.Shape.ShapeType == "Compound" and hasattr(part, "Proxy"):
+ if part.Proxy.Type == "FeatureBooleanFragments" \
+ or part.Proxy.Type == "FeatureSlice" \
+ or part.Proxy.Type == "FeatureXOR":
error_message = (
- 'The mesh to shape is a boolean split tools Compound and the mesh has mesh region list. '
+ 'The shape to mesh is a boolean split tools Compound '
+ 'and the mesh has mesh region list. '
'Gmsh could return unexpected meshes in such circumstances. '
- 'It is strongly recommended to extract the shape to mesh from the Compound and use this one.'
+ 'It is strongly recommended to extract the shape '
+ 'to mesh from the Compound and use this one.'
+ )
+ qtbox_title = (
+ "Shape to mesh is a BooleanFragmentsCompound "
+ "and mesh regions are defined"
+ )
+ QtGui.QMessageBox.critical(
+ None,
+ qtbox_title,
+ error_message
)
- QtGui.QMessageBox.critical(None, "Shape to mesh is a BooleanFragmentsCompound and mesh regions are defined", error_message)
self.Start = time.time()
self.form.l_time.setText('Time: {0:4.1f}: '.format(time.time() - self.Start))
self.console_message_gmsh = ''
diff --git a/src/Mod/Fem/femguiobjects/_ViewProviderFemMeshGroup.py b/src/Mod/Fem/femguiobjects/_ViewProviderFemMeshGroup.py
index 10615a11fc..d1065c9b1e 100644
--- a/src/Mod/Fem/femguiobjects/_ViewProviderFemMeshGroup.py
+++ b/src/Mod/Fem/femguiobjects/_ViewProviderFemMeshGroup.py
@@ -82,7 +82,8 @@ class _ViewProviderFemMeshGroup:
def doubleClicked(self, vobj):
guidoc = FreeCADGui.getDocument(vobj.Object.Document)
- # check if another VP is in edit mode, https://forum.freecadweb.org/viewtopic.php?t=13077#p104702
+ # check if another VP is in edit mode
+ # https://forum.freecadweb.org/viewtopic.php?t=13077#p104702
if not guidoc.getInEdit():
guidoc.setEdit(vobj.Object.Name)
else:
@@ -107,13 +108,27 @@ class _TaskPanelFemMeshGroup:
self.obj = obj
# parameter widget
- self.parameterWidget = FreeCADGui.PySideUic.loadUi(FreeCAD.getHomePath() + "Mod/Fem/Resources/ui/MeshGroup.ui")
- QtCore.QObject.connect(self.parameterWidget.rb_name, QtCore.SIGNAL("toggled(bool)"), self.choose_exportidentifier_name)
- QtCore.QObject.connect(self.parameterWidget.rb_label, QtCore.SIGNAL("toggled(bool)"), self.choose_exportidentifier_label)
+ self.parameterWidget = FreeCADGui.PySideUic.loadUi(
+ FreeCAD.getHomePath() + "Mod/Fem/Resources/ui/MeshGroup.ui"
+ )
+ QtCore.QObject.connect(
+ self.parameterWidget.rb_name,
+ QtCore.SIGNAL("toggled(bool)"),
+ self.choose_exportidentifier_name
+ )
+ QtCore.QObject.connect(
+ self.parameterWidget.rb_label,
+ QtCore.SIGNAL("toggled(bool)"),
+ self.choose_exportidentifier_label
+ )
self.init_parameter_widget()
# geometry selection widget
- self.selectionWidget = FemSelectionWidgets.GeometryElementsSelection(obj.References, ['Solid', 'Face', 'Edge', 'Vertex']) # start with Solid in list!
+ # start with Solid in list!
+ self.selectionWidget = FemSelectionWidgets.GeometryElementsSelection(
+ obj.References,
+ ['Solid', 'Face', 'Edge', 'Vertex']
+ )
# form made from param and selection widget
self.form = [self.parameterWidget, self.selectionWidget]
diff --git a/src/Mod/Fem/femguiobjects/_ViewProviderFemMeshRegion.py b/src/Mod/Fem/femguiobjects/_ViewProviderFemMeshRegion.py
index b9a5a48d79..6a8dc38fd5 100644
--- a/src/Mod/Fem/femguiobjects/_ViewProviderFemMeshRegion.py
+++ b/src/Mod/Fem/femguiobjects/_ViewProviderFemMeshRegion.py
@@ -83,7 +83,8 @@ class _ViewProviderFemMeshRegion:
def doubleClicked(self, vobj):
guidoc = FreeCADGui.getDocument(vobj.Object.Document)
- # check if another VP is in edit mode, https://forum.freecadweb.org/viewtopic.php?t=13077#p104702
+ # check if another VP is in edit mode
+ # https://forum.freecadweb.org/viewtopic.php?t=13077#p104702
if not guidoc.getInEdit():
guidoc.setEdit(vobj.Object.Name)
else:
@@ -108,12 +109,22 @@ class _TaskPanelFemMeshRegion:
self.obj = obj
# parameter widget
- self.parameterWidget = FreeCADGui.PySideUic.loadUi(FreeCAD.getHomePath() + "Mod/Fem/Resources/ui/MeshRegion.ui")
- QtCore.QObject.connect(self.parameterWidget.if_elelen, QtCore.SIGNAL("valueChanged(Base::Quantity)"), self.elelen_changed)
+ self.parameterWidget = FreeCADGui.PySideUic.loadUi(
+ FreeCAD.getHomePath() + "Mod/Fem/Resources/ui/MeshRegion.ui"
+ )
+ QtCore.QObject.connect(
+ self.parameterWidget.if_elelen,
+ QtCore.SIGNAL("valueChanged(Base::Quantity)"),
+ self.elelen_changed
+ )
self.init_parameter_widget()
# geometry selection widget
- self.selectionWidget = FemSelectionWidgets.GeometryElementsSelection(obj.References, ['Solid', 'Face', 'Edge', 'Vertex']) # start with Solid in list!
+ # start with Solid in list!
+ self.selectionWidget = FemSelectionWidgets.GeometryElementsSelection(
+ obj.References,
+ ['Solid', 'Face', 'Edge', 'Vertex']
+ )
# form made from param and selection widget
self.form = [self.parameterWidget, self.selectionWidget]
diff --git a/src/Mod/Fem/femguiobjects/_ViewProviderFemResultMechanical.py b/src/Mod/Fem/femguiobjects/_ViewProviderFemResultMechanical.py
index 267fbc5d45..1d4f823d92 100644
--- a/src/Mod/Fem/femguiobjects/_ViewProviderFemResultMechanical.py
+++ b/src/Mod/Fem/femguiobjects/_ViewProviderFemResultMechanical.py
@@ -65,7 +65,8 @@ class _ViewProviderFemResultMechanical:
def doubleClicked(self, vobj):
guidoc = FreeCADGui.getDocument(vobj.Object.Document)
- # check if another VP is in edit mode, https://forum.freecadweb.org/viewtopic.php?t=13077#p104702
+ # check if another VP is in edit mode
+ # https://forum.freecadweb.org/viewtopic.php?t=13077#p104702
if not guidoc.getInEdit():
guidoc.setEdit(vobj.Object.Name)
else:
@@ -93,7 +94,8 @@ class _ViewProviderFemResultMechanical:
def unsetEdit(self, vobj, mode=0):
FreeCADGui.Control.closeDialog()
- self.Object.Mesh.ViewObject.hide() # hide the mesh after result viewing is finished, but do not reset the coloring
+ # hide the mesh after result viewing is finished, but do not reset the coloring
+ self.Object.Mesh.ViewObject.hide()
return True
def __getstate__(self):
@@ -121,37 +123,118 @@ class _TaskPanelFemResultShow:
self.result_obj = obj
self.mesh_obj = self.result_obj.Mesh
# task panel should be started by use of setEdit of view provider
- # in view provider checks: Mesh, active analysis and if Mesh and result are in active analysis
+ # in view provider checks: Mesh, active analysis and
+ # if Mesh and result are in active analysis
- self.form = FreeCADGui.PySideUic.loadUi(FreeCAD.getHomePath() + "Mod/Fem/Resources/ui/ResultShow.ui")
- self.fem_prefs = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Fem/General")
- self.restore_result_settings_in_dialog = self.fem_prefs.GetBool("RestoreResultDialog", True)
+ self.form = FreeCADGui.PySideUic.loadUi(
+ FreeCAD.getHomePath() + "Mod/Fem/Resources/ui/ResultShow.ui"
+ )
+ self.fem_prefs = FreeCAD.ParamGet(
+ "User parameter:BaseApp/Preferences/Mod/Fem/General"
+ )
+ self.restore_result_settings_in_dialog = self.fem_prefs.GetBool(
+ "RestoreResultDialog", True
+ )
# Connect Signals and Slots
# result type radio buttons
- QtCore.QObject.connect(self.form.rb_none, QtCore.SIGNAL("toggled(bool)"), self.none_selected)
- QtCore.QObject.connect(self.form.rb_abs_displacement, QtCore.SIGNAL("toggled(bool)"), self.abs_displacement_selected)
- QtCore.QObject.connect(self.form.rb_x_displacement, QtCore.SIGNAL("toggled(bool)"), self.x_displacement_selected)
- QtCore.QObject.connect(self.form.rb_y_displacement, QtCore.SIGNAL("toggled(bool)"), self.y_displacement_selected)
- QtCore.QObject.connect(self.form.rb_z_displacement, QtCore.SIGNAL("toggled(bool)"), self.z_displacement_selected)
- QtCore.QObject.connect(self.form.rb_temperature, QtCore.SIGNAL("toggled(bool)"), self.temperature_selected)
- QtCore.QObject.connect(self.form.rb_vm_stress, QtCore.SIGNAL("toggled(bool)"), self.vm_stress_selected)
- QtCore.QObject.connect(self.form.rb_maxprin, QtCore.SIGNAL("toggled(bool)"), self.max_prin_selected)
- QtCore.QObject.connect(self.form.rb_minprin, QtCore.SIGNAL("toggled(bool)"), self.min_prin_selected)
- QtCore.QObject.connect(self.form.rb_max_shear_stress, QtCore.SIGNAL("toggled(bool)"), self.max_shear_selected)
- QtCore.QObject.connect(self.form.rb_massflowrate, QtCore.SIGNAL("toggled(bool)"), self.massflowrate_selected)
- QtCore.QObject.connect(self.form.rb_networkpressure, QtCore.SIGNAL("toggled(bool)"), self.networkpressure_selected)
- QtCore.QObject.connect(self.form.rb_peeq, QtCore.SIGNAL("toggled(bool)"), self.peeq_selected)
+ QtCore.QObject.connect(
+ self.form.rb_none, QtCore.SIGNAL("toggled(bool)"),
+ self.none_selected
+ )
+ QtCore.QObject.connect(
+ self.form.rb_abs_displacement,
+ QtCore.SIGNAL("toggled(bool)"),
+ self.abs_displacement_selected
+ )
+ QtCore.QObject.connect(
+ self.form.rb_x_displacement,
+ QtCore.SIGNAL("toggled(bool)"),
+ self.x_displacement_selected
+ )
+ QtCore.QObject.connect(
+ self.form.rb_y_displacement,
+ QtCore.SIGNAL("toggled(bool)"),
+ self.y_displacement_selected
+ )
+ QtCore.QObject.connect(
+ self.form.rb_z_displacement,
+ QtCore.SIGNAL("toggled(bool)"),
+ self.z_displacement_selected
+ )
+ QtCore.QObject.connect(
+ self.form.rb_temperature,
+ QtCore.SIGNAL("toggled(bool)"),
+ self.temperature_selected
+ )
+ QtCore.QObject.connect(
+ self.form.rb_vm_stress,
+ QtCore.SIGNAL("toggled(bool)"),
+ self.vm_stress_selected
+ )
+ QtCore.QObject.connect(
+ self.form.rb_maxprin,
+ QtCore.SIGNAL("toggled(bool)"),
+ self.max_prin_selected
+ )
+ QtCore.QObject.connect(
+ self.form.rb_minprin,
+ QtCore.SIGNAL("toggled(bool)"),
+ self.min_prin_selected
+ )
+ QtCore.QObject.connect(
+ self.form.rb_max_shear_stress,
+ QtCore.SIGNAL("toggled(bool)"),
+ self.max_shear_selected
+ )
+ QtCore.QObject.connect(
+ self.form.rb_massflowrate,
+ QtCore.SIGNAL("toggled(bool)"),
+ self.massflowrate_selected
+ )
+ QtCore.QObject.connect(
+ self.form.rb_networkpressure,
+ QtCore.SIGNAL("toggled(bool)"),
+ self.networkpressure_selected
+ )
+ QtCore.QObject.connect(
+ self.form.rb_peeq, QtCore.SIGNAL("toggled(bool)"),
+ self.peeq_selected
+ )
# displacement
- QtCore.QObject.connect(self.form.cb_show_displacement, QtCore.SIGNAL("clicked(bool)"), self.show_displacement)
- QtCore.QObject.connect(self.form.hsb_displacement_factor, QtCore.SIGNAL("valueChanged(int)"), self.hsb_disp_factor_changed)
- QtCore.QObject.connect(self.form.sb_displacement_factor, QtCore.SIGNAL("valueChanged(int)"), self.sb_disp_factor_changed)
- QtCore.QObject.connect(self.form.sb_displacement_factor_max, QtCore.SIGNAL("valueChanged(int)"), self.sb_disp_factor_max_changed)
+ QtCore.QObject.connect(
+ self.form.cb_show_displacement,
+ QtCore.SIGNAL("clicked(bool)"),
+ self.show_displacement
+ )
+ QtCore.QObject.connect(
+ self.form.hsb_displacement_factor,
+ QtCore.SIGNAL("valueChanged(int)"),
+ self.hsb_disp_factor_changed
+ )
+ QtCore.QObject.connect(
+ self.form.sb_displacement_factor,
+ QtCore.SIGNAL("valueChanged(int)"),
+ self.sb_disp_factor_changed
+ )
+ QtCore.QObject.connect(
+ self.form.sb_displacement_factor_max,
+ QtCore.SIGNAL("valueChanged(int)"),
+ self.sb_disp_factor_max_changed
+ )
# user defined equation
- QtCore.QObject.connect(self.form.user_def_eq, QtCore.SIGNAL("textchanged()"), self.user_defined_text)
- QtCore.QObject.connect(self.form.calculate, QtCore.SIGNAL("clicked()"), self.calculate)
+ QtCore.QObject.connect(
+ self.form.user_def_eq,
+ QtCore.SIGNAL("textchanged()"),
+ self.user_defined_text
+ )
+ QtCore.QObject.connect(
+ self.form.calculate,
+ QtCore.SIGNAL("clicked()"),
+ self.calculate
+ )
self.update()
if self.restore_result_settings_in_dialog:
@@ -259,7 +342,10 @@ class _TaskPanelFemResultShow:
FreeCAD.FEM_dialog["results_type"] = "Sabs"
QApplication.setOverrideCursor(Qt.WaitCursor)
if self.suitable_results:
- self.mesh_obj.ViewObject.setNodeColorByScalars(self.result_obj.NodeNumbers, self.result_obj.StressValues)
+ self.mesh_obj.ViewObject.setNodeColorByScalars(
+ self.result_obj.NodeNumbers,
+ self.result_obj.StressValues
+ )
(minm, avg, maxm) = self.get_result_stats("Sabs")
self.set_result_stats("MPa", minm, avg, maxm)
QtGui.QApplication.restoreOverrideCursor()
@@ -268,7 +354,10 @@ class _TaskPanelFemResultShow:
FreeCAD.FEM_dialog["results_type"] = "MaxShear"
QApplication.setOverrideCursor(Qt.WaitCursor)
if self.suitable_results:
- self.mesh_obj.ViewObject.setNodeColorByScalars(self.result_obj.NodeNumbers, self.result_obj.MaxShear)
+ self.mesh_obj.ViewObject.setNodeColorByScalars(
+ self.result_obj.NodeNumbers,
+ self.result_obj.MaxShear
+ )
(minm, avg, maxm) = self.get_result_stats("MaxShear")
self.set_result_stats("MPa", minm, avg, maxm)
QtGui.QApplication.restoreOverrideCursor()
@@ -277,7 +366,10 @@ class _TaskPanelFemResultShow:
FreeCAD.FEM_dialog["results_type"] = "MaxPrin"
QApplication.setOverrideCursor(Qt.WaitCursor)
if self.suitable_results:
- self.mesh_obj.ViewObject.setNodeColorByScalars(self.result_obj.NodeNumbers, self.result_obj.PrincipalMax)
+ self.mesh_obj.ViewObject.setNodeColorByScalars(
+ self.result_obj.NodeNumbers,
+ self.result_obj.PrincipalMax
+ )
(minm, avg, maxm) = self.get_result_stats("MaxPrin")
self.set_result_stats("MPa", minm, avg, maxm)
QtGui.QApplication.restoreOverrideCursor()
@@ -286,7 +378,10 @@ class _TaskPanelFemResultShow:
FreeCAD.FEM_dialog["results_type"] = "Temp"
QApplication.setOverrideCursor(Qt.WaitCursor)
if self.suitable_results:
- self.mesh_obj.ViewObject.setNodeColorByScalars(self.result_obj.NodeNumbers, self.result_obj.Temperature)
+ self.mesh_obj.ViewObject.setNodeColorByScalars(
+ self.result_obj.NodeNumbers,
+ self.result_obj.Temperature
+ )
(minm, avg, maxm) = self.get_result_stats("Temp")
self.set_result_stats("K", minm, avg, maxm)
QtGui.QApplication.restoreOverrideCursor()
@@ -295,7 +390,10 @@ class _TaskPanelFemResultShow:
FreeCAD.FEM_dialog["results_type"] = "MFlow"
QApplication.setOverrideCursor(Qt.WaitCursor)
if self.suitable_results:
- self.mesh_obj.ViewObject.setNodeColorByScalars(self.result_obj.NodeNumbers, self.result_obj.MassFlowRate)
+ self.mesh_obj.ViewObject.setNodeColorByScalars(
+ self.result_obj.NodeNumbers,
+ self.result_obj.MassFlowRate
+ )
(minm, avg, maxm) = self.get_result_stats("MFlow")
self.set_result_stats("kg/s", minm, avg, maxm)
QtGui.QApplication.restoreOverrideCursor()
@@ -304,7 +402,10 @@ class _TaskPanelFemResultShow:
FreeCAD.FEM_dialog["results_type"] = "NPress"
QApplication.setOverrideCursor(Qt.WaitCursor)
if self.suitable_results:
- self.mesh_obj.ViewObject.setNodeColorByScalars(self.result_obj.NodeNumbers, self.result_obj.NetworkPressure)
+ self.mesh_obj.ViewObject.setNodeColorByScalars(
+ self.result_obj.NodeNumbers,
+ self.result_obj.NetworkPressure
+ )
(minm, avg, maxm) = self.get_result_stats("NPress")
self.set_result_stats("MPa", minm, avg, maxm)
QtGui.QApplication.restoreOverrideCursor()
@@ -313,7 +414,10 @@ class _TaskPanelFemResultShow:
FreeCAD.FEM_dialog["results_type"] = "MinPrin"
QApplication.setOverrideCursor(Qt.WaitCursor)
if self.suitable_results:
- self.mesh_obj.ViewObject.setNodeColorByScalars(self.result_obj.NodeNumbers, self.result_obj.PrincipalMin)
+ self.mesh_obj.ViewObject.setNodeColorByScalars(
+ self.result_obj.NodeNumbers,
+ self.result_obj.PrincipalMin
+ )
(minm, avg, maxm) = self.get_result_stats("MinPrin")
self.set_result_stats("MPa", minm, avg, maxm)
QtGui.QApplication.restoreOverrideCursor()
@@ -322,7 +426,10 @@ class _TaskPanelFemResultShow:
FreeCAD.FEM_dialog["results_type"] = "Peeq"
QApplication.setOverrideCursor(Qt.WaitCursor)
if self.suitable_results:
- self.mesh_obj.ViewObject.setNodeColorByScalars(self.result_obj.NodeNumbers, self.result_obj.Peeq)
+ self.mesh_obj.ViewObject.setNodeColorByScalars(
+ self.result_obj.NodeNumbers,
+ self.result_obj.Peeq
+ )
(minm, avg, maxm) = self.get_result_stats("Peeq")
self.set_result_stats("", minm, avg, maxm)
QtGui.QApplication.restoreOverrideCursor()
@@ -369,22 +476,36 @@ class _TaskPanelFemResultShow:
QApplication.setOverrideCursor(Qt.WaitCursor)
if self.suitable_results:
- self.mesh_obj.ViewObject.setNodeColorByScalars(self.result_obj.NodeNumbers, UserDefinedFormula)
+ self.mesh_obj.ViewObject.setNodeColorByScalars(
+ self.result_obj.NodeNumbers,
+ UserDefinedFormula
+ )
self.set_result_stats("", minm, avg, maxm)
QtGui.QApplication.restoreOverrideCursor()
- del x, y, z, T, Von, Peeq, P1, P2, P3, sxx, syy, szz, sxy, sxz, syz, exx, eyy, ezz, exy, exz, eyz, MF, NP # Dummy use of the variables to get around flake8 error
+ # Dummy use of the variables to get around flake8 error
+ del x, y, z, T, Von, Peeq, P1, P2, P3
+ del sxx, syy, szz, sxy, sxz, syz
+ del exx, eyy, ezz, exy, exz, eyz
+ del MF, NP
def select_displacement_type(self, disp_type):
QApplication.setOverrideCursor(Qt.WaitCursor)
if disp_type == "Uabs":
if self.suitable_results:
- self.mesh_obj.ViewObject.setNodeColorByScalars(self.result_obj.NodeNumbers, self.result_obj.DisplacementLengths)
+ self.mesh_obj.ViewObject.setNodeColorByScalars(
+ self.result_obj.NodeNumbers,
+ self.result_obj.DisplacementLengths
+ )
else:
match = {"U1": 0, "U2": 1, "U3": 2}
- d = list(zip(*self.result_obj.DisplacementVectors)) # list is needed, as zib-object is not subscriptable in py3
+ # list is needed, as zib-object is not subscriptable in py3
+ d = list(zip(*self.result_obj.DisplacementVectors))
displacements = list(d[match[disp_type]])
if self.suitable_results:
- self.mesh_obj.ViewObject.setNodeColorByScalars(self.result_obj.NodeNumbers, displacements)
+ self.mesh_obj.ViewObject.setNodeColorByScalars(
+ self.result_obj.NodeNumbers,
+ displacements
+ )
(minm, avg, maxm) = self.get_result_stats(disp_type)
self.set_result_stats("mm", minm, avg, maxm)
QtGui.QApplication.restoreOverrideCursor()
@@ -413,7 +534,10 @@ class _TaskPanelFemResultShow:
self.update_displacement()
FreeCAD.FEM_dialog["result_obj"] = self.result_obj
if self.suitable_results:
- self.mesh_obj.ViewObject.setNodeDisplacementByVectors(self.result_obj.NodeNumbers, self.result_obj.DisplacementVectors)
+ self.mesh_obj.ViewObject.setNodeDisplacementByVectors(
+ self.result_obj.NodeNumbers,
+ self.result_obj.DisplacementVectors
+ )
self.update_displacement()
QtGui.QApplication.restoreOverrideCursor()
@@ -473,7 +597,10 @@ class _TaskPanelFemResultShow:
hide_parts_constraints()
else:
if not self.mesh_obj.FemMesh.VolumeCount:
- error_message = 'FEM: Graphical bending stress output for beam or shell FEM Meshes not yet supported.\n'
+ error_message = (
+ 'FEM: Graphical bending stress output '
+ 'for beam or shell FEM Meshes not yet supported.\n'
+ )
FreeCAD.Console.PrintError(error_message)
QtGui.QMessageBox.critical(None, 'No result object', error_message)
else:
@@ -492,7 +619,9 @@ class _TaskPanelFemResultShow:
self.mesh_obj.ViewObject.setNodeColorByScalars(node_numbers, zero_values)
def reject(self):
- FreeCADGui.Control.closeDialog() # if the tasks panel is called from Command obj is not in edit mode thus reset edit does not close the dialog, maybe don't call but set in edit instead
+ # if the tasks panel is called from Command obj is not in edit mode
+ # thus reset edit does not close the dialog, maybe don't call but set in edit instead
+ FreeCADGui.Control.closeDialog()
FreeCADGui.ActiveDocument.resetEdit()
diff --git a/src/Mod/Fem/femguiobjects/_ViewProviderFemSolverCalculix.py b/src/Mod/Fem/femguiobjects/_ViewProviderFemSolverCalculix.py
index fe65e94cf2..8dbf853467 100644
--- a/src/Mod/Fem/femguiobjects/_ViewProviderFemSolverCalculix.py
+++ b/src/Mod/Fem/femguiobjects/_ViewProviderFemSolverCalculix.py
@@ -95,7 +95,9 @@ class _TaskPanelFemSolverCalculix:
'''The TaskPanel for CalculiX ccx tools solver object'''
def __init__(self, solver_object):
- self.form = FreeCADGui.PySideUic.loadUi(FreeCAD.getHomePath() + "Mod/Fem/Resources/ui/SolverCalculix.ui")
+ self.form = FreeCADGui.PySideUic.loadUi(
+ FreeCAD.getHomePath() + "Mod/Fem/Resources/ui/SolverCalculix.ui"
+ )
from femtools.ccxtools import CcxTools as ccx
# we do not need to pass the analysis, it will be found on fea init
@@ -110,21 +112,71 @@ class _TaskPanelFemSolverCalculix:
self.fem_console_message = ''
# Connect Signals and Slots
- QtCore.QObject.connect(self.form.tb_choose_working_dir, QtCore.SIGNAL("clicked()"), self.choose_working_dir)
- QtCore.QObject.connect(self.form.pb_write_inp, QtCore.SIGNAL("clicked()"), self.write_input_file_handler)
- QtCore.QObject.connect(self.form.pb_edit_inp, QtCore.SIGNAL("clicked()"), self.editCalculixInputFile)
- QtCore.QObject.connect(self.form.pb_run_ccx, QtCore.SIGNAL("clicked()"), self.runCalculix)
- QtCore.QObject.connect(self.form.rb_static_analysis, QtCore.SIGNAL("clicked()"), self.select_static_analysis)
- QtCore.QObject.connect(self.form.rb_frequency_analysis, QtCore.SIGNAL("clicked()"), self.select_frequency_analysis)
- QtCore.QObject.connect(self.form.rb_thermomech_analysis, QtCore.SIGNAL("clicked()"), self.select_thermomech_analysis)
- QtCore.QObject.connect(self.form.rb_check_mesh, QtCore.SIGNAL("clicked()"), self.select_check_mesh)
-
- QtCore.QObject.connect(self.Calculix, QtCore.SIGNAL("started()"), self.calculixStarted)
- QtCore.QObject.connect(self.Calculix, QtCore.SIGNAL("stateChanged(QProcess::ProcessState)"), self.calculixStateChanged)
- QtCore.QObject.connect(self.Calculix, QtCore.SIGNAL("error(QProcess::ProcessError)"), self.calculixError)
- QtCore.QObject.connect(self.Calculix, QtCore.SIGNAL("finished(int)"), self.calculixFinished)
-
- QtCore.QObject.connect(self.Timer, QtCore.SIGNAL("timeout()"), self.UpdateText)
+ QtCore.QObject.connect(
+ self.form.tb_choose_working_dir,
+ QtCore.SIGNAL("clicked()"),
+ self.choose_working_dir
+ )
+ QtCore.QObject.connect(
+ self.form.pb_write_inp,
+ QtCore.SIGNAL("clicked()"),
+ self.write_input_file_handle
+ )
+ QtCore.QObject.connect(
+ self.form.pb_edit_inp,
+ QtCore.SIGNAL("clicked()"),
+ self.editCalculixInputFile
+ )
+ QtCore.QObject.connect(
+ self.form.pb_run_ccx,
+ QtCore.SIGNAL("clicked()"),
+ self.runCalculix
+ )
+ QtCore.QObject.connect(
+ self.form.rb_static_analysis,
+ QtCore.SIGNAL("clicked()"),
+ self.select_static_analysis
+ )
+ QtCore.QObject.connect(
+ self.form.rb_frequency_analysis,
+ QtCore.SIGNAL("clicked()"),
+ self.select_frequency_analysis
+ )
+ QtCore.QObject.connect(
+ self.form.rb_thermomech_analysis,
+ QtCore.SIGNAL("clicked()"),
+ self.select_thermomech_analysis
+ )
+ QtCore.QObject.connect(
+ self.form.rb_check_mesh,
+ QtCore.SIGNAL("clicked()"),
+ self.select_check_mesh
+ )
+ QtCore.QObject.connect(
+ self.Calculix,
+ QtCore.SIGNAL("started()"),
+ self.calculixStarted
+ )
+ QtCore.QObject.connect(
+ self.Calculix,
+ QtCore.SIGNAL("stateChanged(QProcess::ProcessState)"),
+ self.calculixStateChanged
+ )
+ QtCore.QObject.connect(
+ self.Calculix,
+ QtCore.SIGNAL("error(QProcess::ProcessError)"),
+ self.calculixError
+ )
+ QtCore.QObject.connect(
+ self.Calculix,
+ QtCore.SIGNAL("finished(int)"),
+ self.calculixFinished
+ )
+ QtCore.QObject.connect(
+ self.Timer,
+ QtCore.SIGNAL("timeout()"),
+ self.UpdateText
+ )
self.update()
@@ -152,8 +204,10 @@ class _TaskPanelFemSolverCalculix:
def femConsoleMessage(self, message="", color="#000000"):
if sys.version_info.major < 3:
message = message.encode("utf-8", "replace")
- self.fem_console_message = self.fem_console_message + '{0:4.1f}: {2}
'.\
- format(time.time() - self.Start, color, message)
+ self.fem_console_message = self.fem_console_message + (
+ '{0:4.1f}: {2}
'
+ .format(time.time() - self.Start, color, message)
+ )
self.form.textEdit_Output.setText(self.fem_console_message)
self.form.textEdit_Output.moveCursor(QtGui.QTextCursor.End)
@@ -298,7 +352,10 @@ class _TaskPanelFemSolverCalculix:
if ext_editor_path:
self.start_ext_editor(ext_editor_path, self.fea.inp_file_name)
else:
- print("External editor is not defined in FEM preferences. Falling back to internal editor")
+ print(
+ "External editor is not defined in FEM preferences. "
+ "Falling back to internal editor"
+ )
FemGui.open(self.fea.inp_file_name)
def runCalculix(self):
@@ -309,7 +366,10 @@ class _TaskPanelFemSolverCalculix:
self.femConsoleMessage("Run CalculiX...")
# run Calculix
- print('run CalculiX at: {} with: {}'.format(self.fea.ccx_binary, os.path.splitext(self.fea.inp_file_name)[0]))
+ print(
+ 'run CalculiX at: {} with: {}'
+ .format(self.fea.ccx_binary, os.path.splitext(self.fea.inp_file_name)[0])
+ )
# change cwd because ccx may crash if directory has no write permission
# there is also a limit of the length of file names so jump to the document directory
self.cwd = QtCore.QDir.currentPath()