def __init__(self, obj): self.obj = obj # parameter widget self.parameterWidget = FreeCADGui.PySideUic.loadUi( FreeCAD.getHomePath() + "Mod/Fem/Resources/ui/ConstraintCentrif.ui" ) QtCore.QObject.connect( self.parameterWidget.if_rotation_frequency, QtCore.SIGNAL("valueChanged(Base::Quantity)"), self.rotation_frequency_changed ) self.init_parameter_widget() # axis of rotation selection widget self.AxisSelectionWidget = selection_widgets.GeometryElementsSelection( obj.RotationAxis, ["Edge"], False, False ) # loaded body selection widget self.BodySelectionWidget = selection_widgets.GeometryElementsSelection( obj.References, ["Solid"], False, False ) # form made from param and selection widget self.form = [self.parameterWidget, self.BodySelectionWidget, self.AxisSelectionWidget]
def __init__(self, obj): 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 ) # 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 # start with Solid in list! self.selectionWidget = selection_widgets.GeometryElementsSelection( obj.References, ["Solid", "Face", "Edge", "Vertex"] ) # form made from param and selection widget self.form = [self.parameterWidget, self.selectionWidget]
def __init__(self, obj): self.obj = obj # parameter widget self.parameterWidget = FreeCADGui.PySideUic.loadUi( FreeCAD.getHomePath() + "Mod/Fem/Resources/ui/ConstraintTie.ui" ) QtCore.QObject.connect( self.parameterWidget.if_tolerance, QtCore.SIGNAL("valueChanged(Base::Quantity)"), self.tolerance_changed ) self.init_parameter_widget() # geometry selection widget self.selectionWidget = selection_widgets.GeometryElementsSelection( obj.References, ["Face"], False, False ) # form made from param and selection widget self.form = [self.parameterWidget, self.selectionWidget]
def __init__(self, obj): self._obj = obj self._paramWidget = FreeCADGui.PySideUic.loadUi( FreeCAD.getHomePath() + "Mod/Fem/Resources/ui/ElectrostaticPotential.ui") self._initParamWidget() # geometry selection widget # start with Solid in list! self._selectionWidget = selection_widgets.GeometryElementsSelection( obj.References, ["Solid", "Face", "Edge", "Vertex"], True, False) # form made from param and selection widget self.form = [self._paramWidget, self._selectionWidget] analysis = obj.getParentGroup() self._mesh = None self._part = None if analysis is not None: self._mesh = membertools.get_single_member(analysis, "Fem::FemMeshObject") if self._mesh is not None: self._part = femutils.get_part_to_mesh(self._mesh) self._partVisible = None self._meshVisible = None
def __init__(self, obj): 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.init_parameter_widget() # geometry selection widget # start with Solid in list! self.selectionWidget = selection_widgets.GeometryElementsSelection( obj.References, ["Solid", "Face", "Edge", "Vertex"] ) # form made from param and selection widget self.form = [self.parameterWidget, self.selectionWidget]
def __init__(self, obj): 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.init_parameter_widget() # geometry selection widget # start with Solid in list! self.selectionWidget = selection_widgets.GeometryElementsSelection( obj.References, ["Solid", "Face", "Edge", "Vertex"], True, False ) # form made from param and selection widget self.form = [self.parameterWidget, self.selectionWidget]
def __init__(self, obj): self.obj = obj # parameter widget self.parameterWidget = FreeCADGui.PySideUic.loadUi( FreeCAD.getHomePath() + "Mod/Fem/Resources/ui/ConstraintSectionPrint.ui") # geometry selection widget self.selectionWidget = selection_widgets.GeometryElementsSelection( obj.References, ["Face"]) # form made from param and selection widget self.form = [self.parameterWidget, self.selectionWidget]
def __init__(self, obj): 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.rotation = self.obj.Rotation self.parameterWidget.if_rotation.setText(self.rotation.UserString) # geometry selection widget self.selectionWidget = selection_widgets.GeometryElementsSelection( obj.References, ["Edge"]) # form made from param and selection widget self.form = [self.parameterWidget, self.selectionWidget]
def __init__(self, obj): 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( element_geometry1D.ElementGeometry1D.known_beam_types) self.get_beamsection_props() self.updateParameterWidget() # geometry selection widget self.selectionWidget = selection_widgets.GeometryElementsSelection( obj.References, ["Edge"], False, True) # form made from param and selection widget self.form = [self.parameterWidget, self.selectionWidget]
def __init__(self, obj): 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 ) # some fluid types deactivated since they are not implemented in ccx writer self.parameterWidget.cb_section_type.addItems( element_fluid1D.ElementFluid1D.known_fluid_types ) self.parameterWidget.cb_liquid_section_type.addItems( element_fluid1D.ElementFluid1D.known_liquid_types ) self.parameterWidget.cb_gas_section_type.addItems( element_fluid1D.ElementFluid1D.known_gas_types ) self.parameterWidget.cb_channel_section_type.addItems( element_fluid1D.ElementFluid1D.known_channel_types ) self.get_fluidsection_props() self.updateParameterWidget() # geometry selection widget self.selectionWidget = selection_widgets.GeometryElementsSelection( obj.References, ["Edge"] ) # form made from param and selection widget self.form = [self.parameterWidget, self.selectionWidget]
def __init__(self, obj): FreeCAD.Console.PrintMessage("\n") # empty line on start task panel self.obj = obj self.material = self.obj.Material # FreeCAD material dictionary of current material self.card_path = "" self.materials = {} # { card_path : FreeCAD material dict, ... } self.cards = {} # { card_path : card_names, ... } self.icons = {} # { card_path : icon_path, ... } # mat_card is the FCMat file # card_name is the file name of the mat_card # card_path is the whole file path of the mat_card # material_name is the value of the key name in FreeCAD material dictionary # they might not match because of special letters in the material_name # which are changed in the card_name to english standard characters self.has_transient_mat = False # parameter widget self.parameterWidget = FreeCADGui.PySideUic.loadUi( FreeCAD.getHomePath() + "Mod/Fem/Resources/ui/Material.ui") # globals QtCore.QObject.connect(self.parameterWidget.cb_materials, QtCore.SIGNAL("activated(int)"), self.choose_material) QtCore.QObject.connect(self.parameterWidget.chbu_allow_edit, QtCore.SIGNAL("clicked()"), self.toggleInputFieldsReadOnly) QtCore.QObject.connect(self.parameterWidget.pushButton_editMat, QtCore.SIGNAL("clicked()"), self.edit_material) # basic properties must be provided QtCore.QObject.connect(self.parameterWidget.input_fd_density, QtCore.SIGNAL("editingFinished()"), self.density_changed) # mechanical properties QtCore.QObject.connect(self.parameterWidget.input_fd_young_modulus, QtCore.SIGNAL("editingFinished()"), self.ym_changed) QtCore.QObject.connect(self.parameterWidget.spinBox_poisson_ratio, QtCore.SIGNAL("editingFinished()"), self.pr_changed) # thermal properties QtCore.QObject.connect( self.parameterWidget.input_fd_thermal_conductivity, QtCore.SIGNAL("editingFinished()"), self.tc_changed) QtCore.QObject.connect( self.parameterWidget.input_fd_expansion_coefficient, QtCore.SIGNAL("editingFinished()"), self.tec_changed) QtCore.QObject.connect(self.parameterWidget.input_fd_specific_heat, QtCore.SIGNAL("editingFinished()"), self.sh_changed) # fluidic properties, only volumetric thermal expansion coeff makes sense QtCore.QObject.connect( self.parameterWidget.input_fd_kinematic_viscosity, QtCore.SIGNAL("editingFinished()"), self.kinematic_viscosity_changed) QtCore.QObject.connect( self.parameterWidget.input_fd_vol_expansion_coefficient, QtCore.SIGNAL("editingFinished()"), self.vtec_changed) # init all parameter input files with read only self.parameterWidget.chbu_allow_edit.setCheckState( QtCore.Qt.CheckState.Unchecked) self.toggleInputFieldsReadOnly() # hide some groupBox according to material category self.parameterWidget.label_category.setText(self.obj.Category) if self.obj.Category == "Fluid": self.parameterWidget.groupBox_mechanical.setVisible(0) self.parameterWidget.label_expansion_coefficient.setVisible(0) self.parameterWidget.input_fd_expansion_coefficient.setVisible(0) else: self.parameterWidget.groupBox_fluidic.setVisible(0) self.parameterWidget.label_vol_expansion_coefficient.setVisible(0) self.parameterWidget.input_fd_vol_expansion_coefficient.setVisible( 0) # get all available materials (fill self.materials, self.cards and self.icons) from materialtools.cardutils import import_materials as getmats # Note: import_materials(category="Solid", ...), # category default to Solid, but must be given for FluidMaterial to be imported self.materials, self.cards, self.icons = getmats(self.obj.Category) # fill the material comboboxes with material cards self.add_cards_to_combo_box() # search for exact this mat_card in all known cards, choose the current material self.card_path = self.get_material_card(self.material) FreeCAD.Console.PrintLog("card_path: {}\n".format(self.card_path)) if not self.card_path: # we have not found our material in self.materials dict :-( # we're going to add a user-defined temporary material: a document material FreeCAD.Console.PrintMessage( "Previously used material card can not be found in material directories. " "Add document material.\n") self.card_path = "_document_material" self.materials[self.card_path] = self.material self.parameterWidget.cb_materials.addItem( QtGui.QIcon(":/icons/help-browser.svg"), self.card_path, self.card_path) index = self.parameterWidget.cb_materials.findData(self.card_path) # print(index) # fill input fields and set the current material in the cb widget self.choose_material(index) else: # we found our exact material in self.materials dict :-) FreeCAD.Console.PrintLog( "Previously used material card was found in material directories. " "We will use this material.\n") index = self.parameterWidget.cb_materials.findData(self.card_path) # print(index) # fill input fields and set the current material in the cb widget self.choose_material(index) # geometry selection widget self.selectionWidget = selection_widgets.GeometryElementsSelection( obj.References, ["Solid", "Face", "Edge"], False) # start with Solid in list! # form made from param and selection widget self.form = [self.parameterWidget, self.selectionWidget] # check references, has to be after initialisation of selectionWidget self.selectionWidget.has_equal_references_shape_types()