def _edit(self, item=None): """ :return: """ self.ui.name_lineEdit.setText(item._name) self.ui.jointID_lineEdit.setText(str(item.joint_id)) # set type line edit _index = self.ui.jointTypecomboBox.findText(QtCore.QString(item.joint_type.capitalize())) self.ui.jointTypecomboBox.setCurrentIndex(_index) # body id i self.ui.bodyIDi_lineEdit.setText(str(item.body_id_i)) # body id j self.ui.bodyIDj_lineEdit.setText(str(item.body_id_j)) # uPi self.ui.uPi_lineEdit.setText(array2string(item.u_iP_LCS)) # uPj self.ui.uPj_lineEdit.setText(array2string(item.u_jP_LCS)) if item.joint_type == "prismatic": self.ui.uQi_lineEdit.setText(array2string(item.u_iQ_LCS)) self.item = item self._show()
def edit(self, item=None): """ :return: """ self.item = item self.ui.name_lineEdit.setText(item._name) self.ui.forceID_lineEdit.setText(str(item.force_id)) self.ui.bodyID_lineEdit.setText(str(item.body_id)) print "item.u_iP_f =", item.u_iP_f self.ui.uPi_lineEdit.setText(array2string(item.u_iP_f)) self.ui.Fx_lineEdit.setText(str(item.Fx)) self.ui.Fy_lineEdit.setText(str(item.Fy)) self.ui.Mz_lineEdit.setText(str(item.Mz)) self.ui.scale_lineEdit.setText(str(item.scale)) self.ui.tableWidget.setRowCount(1) self.ui.tableWidget.setColumnCount(len(self.item._solution_containers)) for i, solution_container in enumerate(self.item._solution_containers): self.ui.tableWidget.setItem( 0, i, QtGui.QTableWidgetItem( str(len(getattr(self.item, solution_container))))) self._show()
def edit(self, item=None): """ :return: """ self.ui.name_lineEdit.setText(item._name) self.ui.springID_lineEdit.setText(str(item.spring_id)) # set type line edit _index = self.ui.springType_comboBox.findText( QtCore.QString(item.spring_type.capitalize())) self.ui.springType_comboBox.setCurrentIndex(_index) # body id i self.ui.bodyIDi_lineEdit.setText(str(item.body_id_i)) # body id j self.ui.bodyIDj_lineEdit.setText(str(item.body_id_j)) # uPi, uPj for uP_lineEdit, u_P in zip( [self.ui.uPi_lineEdit, self.ui.uPj_lineEdit], item.u_P_LCS_list): uP_lineEdit.setText(array2string(u_P)) # # uPj # self.ui.uPj_lineEdit.setText(array2string(item.u_jP)) # stiffness coef self.ui.K_lineEdit.setText(str(item.k)) # dumping coef self.ui.D_lineEdit.setText(str(item.c)) # initial length self.ui.L0_lineEdit.setText(str(item.l_0)) self.item = item # force scale self.ui.scale_lineEdit.setText(str(item._Fn_list[0]._scale_GL)) # force color self.ui.color_lineEdit.setText(array2string( item._Fn_list[0]._color_GL)) self._show()
def edit(self, item=None): """ :return: """ self.item = item self.ui.name_lineEdit.setText(item._name) self.ui.jointID_lineEdit.setText(str(item.joint_id)) # set type line edit _index = self.ui.jointTypecomboBox.findText( QtCore.QString(item.joint_type.capitalize())) self.ui.jointTypecomboBox.setCurrentIndex(_index) # body id i self.ui.bodyIDi_lineEdit.setText(str(item.body_id_i)) # body id j self.ui.bodyIDj_lineEdit.setText(str(item.body_id_j)) # uPi self.ui.uPi_lineEdit.setText(array2string(item.u_iP_LCS)) # uPj self.ui.uPj_lineEdit.setText(array2string(item.u_jP_LCS)) if item.joint_type == "prismatic": self.ui.uQi_lineEdit.setText(array2string(item.u_iQ_LCS)) # solution save options self.ui.saveSolutionOptions_label.setText(item._solution_save_options) # solution filetype for i in range(self.ui.solutionFiletype_comboBox.count()): if self.item._solution_filetype in self.ui.solutionFiletype_comboBox.itemText( i): self.ui.solutionFiletype_comboBox.setCurrentIndex(i) self._show()
def _show_visualization(self): """ :return: """ # opengl background color self.ui.backgroundColor_lineEdit.setText(array2string(self.opengl_widget.background_color[0:3])) # display info checkboxes - removed first item in qgroupbox (it is qlayout) checkboxes = iter(self.ui.infoDisplay_groupBox.children()) next(checkboxes) for checkBox, state in zip(checkboxes, self.opengl_widget._show_info): # checkBox = self.ui.infoDisplay_groupBox.children().itemAt(i) checkBox.setChecked(state)
def _edit(self, item=None): """ :return: """ self.ui.name_lineEdit.setText(item._name) self.ui.forceID_lineEdit.setText(str(item.force_id)) self.ui.bodyID_lineEdit.setText(str(item.body_id)) self.ui.uPi_lineEdit.setText(array2string(item.u_iP_f)) self.ui.Fx_lineEdit.setText(str(item.Fx)) self.ui.Fy_lineEdit.setText(str(item.Fy)) self.ui.Mz_lineEdit.setText(str(item.Mz)) self.item = item self._show()
def edit(self, item): """ Set object data to display in qwidget elements :return: """ self.item = item pprint(vars(item)) # check if attribute is type QVariant and change it to string if type(item._name) == QtCore.QVariant: self.ui.name_lineEdit.setText(item._name.toString()) else: self.ui.name_lineEdit.setText(item._name) self.ui.bodyID_lineEdit.setText(str(item.body_id)) self.ui.m_lineEdit.setText(str(item.mass)) self.ui.J_lineEdit.setText(str(item.J_zz)) self.ui.R_lineEdit.setText(array2string(self.item.R)) self.ui.dR_lineEdit.setText(array2string(item.dR)) self.ui.theta_lineEdit.setText(array2string(np.rad2deg(item.theta))) self.ui.dtheta_lineEdit.setText(array2string(np.rad2deg(item.dtheta))) self.ui.centerOfMass_lineEdit.setText(array2string(item.CM_CAD_LCS)) self.ui.geometrySTLfile_lineEdit.setText( os.path.abspath(item.geometry_filename)) self.ui.data_file_lineEdit.setText(item.properties_file_with_extension) self.ui.color_lineEdit.setText(array2string(item.color)) self.ui.transparent_lineEdit.setText(str(item.transparent)) _index = self.ui.display_style_comboBox.findText( QtCore.QString(item.display_style.capitalize())) self.ui.display_style_comboBox.setCurrentIndex(_index) for force in self.item.forces: self.ui.forces_listWidget.addItem(force._name) for marker in self.item.markers: self.ui.markers_listWidget.addItem(marker._name) for geometry in self.item.geometry_list: self.ui.geometry_listWidget.addItem(geometry.filename) pprint(vars(geometry))
def _edit(self, item): """ Set object data to display in qwidget elements :return: """ self.item = item pprint(vars(item)) # check if attribute is type QVariant and change it to string if type(item._name) == QtCore.QVariant: self.ui.name_lineEdit.setText(item._name.toString()) else: self.ui.name_lineEdit.setText(item._name) self.ui.bodyID_lineEdit.setText(str(item.body_id)) self.ui.m_lineEdit.setText(str(item.mass)) self.ui.J_lineEdit.setText(str(item.J_zz)) self.ui.R_lineEdit.setText(array2string(self.item.R)) self.ui.dR_lineEdit.setText(array2string(item.dR)) self.ui.theta_lineEdit.setText(array2string(np.rad2deg(item.theta))) self.ui.dtheta_lineEdit.setText(array2string(np.rad2deg(item.dtheta))) self.ui.centerOfMass_lineEdit.setText(array2string(item.CM_CAD_LCS)) self.ui.geometrySTLfile_lineEdit.setText(os.path.abspath(item.geometry_filename)) self.ui.color_lineEdit.setText(array2string(item.color_GL)) self.ui.transparent_lineEdit.setText(str(item.transparent_GL)) _index = self.ui.display_style_comboBox.findText(QtCore.QString(item.display_style.capitalize())) self.ui.display_style_comboBox.setCurrentIndex(_index)
def _edit(self, item): """ :return: """ print "edit()" self.item = item # get (and display in QLineEdit) contact name self.ui.name_lineEdit.setText(item._name) # get (and display in QLineEdit) contact id self.ui.contactID_lineEdit.setText(str(item.contact_id)) # get (and display in QLineEdit) type line edit _index = self.ui.contactTypecomboBox.findText(QtCore.QString(item._type.title())) self.ui.contactTypecomboBox.setCurrentIndex(_index) # contact model # fix string # contact_model_type = fix_string(item.contact_model._type.title()) # print "contact_model_type =", contact_model_type, type(contact_model_type) # # get (and display in QLineEdit) contact model # _index = self.ui.contactModelTypecomboBox.findText(contact_model_type) # print # self.ui.contactModelTypecomboBox.setCurrentIndex(_index) # coefficient of restitution if item.contact_model._type.title() == "Hertz": self.ui.restitution_coefficient_lineEdit.setEnabled(False) else: self.ui.restitution_coefficient_lineEdit.setText(str(item.contact_model.c_r)) # contact stiffness if hasattr(item.contact_model, "K"): self.ui.contact_stiffness_lineEdit.setText(str(item.contact_model.K)) # list of contact models where n is not used # _n_unused = ["Hertz", "Kelvin-Voigt", "Hunt-Crossley", "Herbert-McWhannell", "Flores et al", "Zhiying-Qishao", "Gonthier et al"] # power exponent - n # print "contact_model_type =", contact_model_type if hasattr(item.contact_model, "n"): if item.contact_model != None: self.ui.power_exponent_lineEdit.setText(str(item.contact_model.n)) else: self.ui.power_exponent_lineEdit.setEnabled(False) # friction model # get (and display in QLineEdit) friction model _index = self.ui.frictionModelTypecomboBox.findText(QtCore.QString(item.friction_model._type.title())) self.ui.frictionModelTypecomboBox.setCurrentIndex(_index) # body id i self.ui.bodyIDi_lineEdit.setText(str(item.body_id_i)) # body id j self.ui.bodyIDj_lineEdit.setText(str(item.body_id_j)) # save data to file # self.ui.saveDataToFile_checkBox.setChecked(item.save_to_file) # color self.ui.color_lineEdit.setText(array2string(item._color_GL)) # scale self.ui.scale_factor_lineEdit.setText(str(item._scale_GL)) # coefficient of restitution # self.ui.restitutionCoef_lineEdit.setText(str(item.contact_model.coef_of_restitution)) # coefficient of friction static # self.ui.frictionCoefStatic_lineEdit.setText(str(item.friction_model.coef_of_friction_static)) # coefficient of friction dynamic # self.ui.frictionCoefDynamic_lineEdit.setText(str(item.friction_model.coef_of_friction_dynamic)) # z coordinate of position of contact plane # self.ui.z_dim_lineEdit.setText(str(item.z_dim)) # TOL of distance self.ui.TOL_distance_lineEdit.setText(str(item.distance_TOL)) # default dissable all input and enable later only selected one self.ui.GeneralContactAddParams.setEnabled(False) self.ui.RevoluteClearanceJointAddParams.setEnabled(False) self.ui.SphereSphereContactAddParams.setEnabled(False) self.ui.PlaneSphereContactAddParams.setEnabled(False) # list of GUI editable properties/parameters for each type of contact # general contact self._GeneralContactAddParams = [self.ui.z_dim_lineEdit, self.ui.skin_thickness_i_lineEdit, self.ui.skin_thickness_j_lineEdit] # revolute clearance joint contact self._RevoluteClearanceJointAddParams = [self.ui.uPi_lineEdit, self.ui.uPj_lineEdit, self.ui.Ri_lineEdit, self.ui.Rj_lineEdit] # contact sphere-sphere self._ContactSphereSphere = [self.ui.R0i_lineEdit, self.ui.R0j_lineEdit] # contact plane-sphere self._ContactPlaneSphere = [self.ui.normal_i_lineEdit, self.ui.R0j_sphere_lineEdit] _allAddParams = self._GeneralContactAddParams + self._RevoluteClearanceJointAddParams + self._ContactSphereSphere for _param in _allAddParams: _param.setEnabled(False) if item._type.title() == "General": self.ui.GeneralContactAddParams.setEnabled(True) elif item._type.title() == "Revolute Clearance Joint": self.ui.RevoluteClearanceJointAddParams.setEnabled(True) self.ui.uPi_lineEdit.setText(array2string(item.u_iP)) self.ui.uPj_lineEdit.setText(array2string(item.u_jP)) self.ui.Ri_lineEdit.setText(str(item.R0_i)) self.ui.Rj_lineEdit.setText(str(item.R0_j)) self.ui.contactModelTypecomboBox.clear() for i, _contact_model_type in enumerate(item.contact_model._types): _contact_model_type = fix_string(_contact_model_type) self.ui.contactModelTypecomboBox.insertItem(i, _contact_model_type) print "self.item.contact_model._type =", self.item.contact_model._type _index = self.ui.contactModelTypecomboBox.findText(fix_string(self.item.contact_model._type)) print "_index =", _index self.ui.contactModelTypecomboBox.setCurrentIndex(_index) elif item._type.title() == "Contact Sphere-Sphere": self.ui.SphereSphereContactAddParams.setEnabled(True) self._updateAddParams(self._ContactSphereSphere) # set parameters for R0_lineEdit, R_ in zip([self.ui.R0i_lineEdit, self.ui.R0j_lineEdit], item.R0_list): R0_lineEdit.setText(str(R_)) elif item._type.title() == "Contact Plane-Sphere": self.ui.PlaneSphereContactAddParams.setEnabled(True) print "item.n_i_LCS =", item.n_i_LCS, type(item.n_i_LCS) self.ui.normal_i_lineEdit.setText(array2string(item.n_i_LCS)) self.ui.R0j_sphere_lineEdit.setText(str(item.R0_j)) self.item = item self._show()
def edit(self, item): """ :return: """ self.item = item # name of contact self.ui.name_lineEdit.setText(item._name) # contact id self.ui.contactID_lineEdit.setText(str(item.contact_id)) # type of contact # add types programamtically self.ui.contactTypecomboBox.addItems(self.item._contact_types) _index = self.ui.contactTypecomboBox.findText( QtCore.QString(self.item._contact_type)) self.ui.contactTypecomboBox.setCurrentIndex(_index) # contact model type if self.item.contact_model is not None: self.ui.contactModelTypecomboBox.addItems( self.item.contact_model._types) _index = self.ui.contactModelTypecomboBox.findText( self.item.contact_model._type) self.ui.contactModelTypecomboBox.setCurrentIndex(_index) else: self.ui.contactModelTypecomboBox.addItems( ContactModel._supported_types()) for i in range(self.ui.contactModelTypecomboBox.count()): item = self.ui.contactModelTypecomboBox.model().item(i, 0) item.setCheckState(QtCore.Qt.Unchecked) for contact_model in self.item.contact_models: print "contact_model._type =", contact_model._type _index = self.ui.contactModelTypecomboBox.findText( contact_model._type) print "_index =", _index if _index != -1: item = self.ui.contactModelTypecomboBox.model().item( _index, 0) item.setCheckState(QtCore.Qt.Checked) # for contact_model in ContactModel._get_types(): # friction model type self.ui.frictionModelTypecomboBox.addItems( self.item.friction_model._types) print "GUI friction model" print self.item.friction_model._type _index = self.ui.frictionModelTypecomboBox.findText( self.item.friction_model._type.lower()) self.ui.frictionModelTypecomboBox.setCurrentIndex(_index) # coefficient of restitution if hasattr(item.contact_model, "_type"): if item.contact_model._type.title() == "Hertz": self.ui.restitution_coefficient_lineEdit.setEnabled(False) else: self.ui.restitution_coefficient_lineEdit.setText( str(item.contact_model.c_r)) # contact stiffness if hasattr(item.contact_model, "K"): self.ui.contact_stiffness_lineEdit.setText( str(item.contact_model.K)) # list of contact models where n is not used # _n_unused = ["Hertz", "Kelvin-Voigt", "Hunt-Crossley", "Herbert-McWhannell", "Flores et al", "Zhiying-Qishao", "Gonthier et al"] # power exponent - n # print "contact_model_type =", contact_model_type if hasattr(item.contact_model, "n"): if item.contact_model != None: self.ui.power_exponent_lineEdit.setText( str(item.contact_model.n)) else: self.ui.power_exponent_lineEdit.setEnabled(False) # body id i self.ui.bodyIDi_lineEdit.setText(str(item.body_id_i)) # body id j self.ui.bodyIDj_lineEdit.setText(str(item.body_id_j)) # save options _index = self.ui.solutionOptions_comboBox.findText( self.item._solution_save_options[0].upper() + self.item._solution_save_options[1:]) self.ui.solutionOptions_comboBox.setCurrentIndex(_index) # color self.ui.color_lineEdit.setText(array2string(item.color)) # scale self.ui.scale_factor_lineEdit.setText(str(item.scale)) # solution options self.ui.solutionFiletype_comboBox.addItems( self.item._solution_filetypes) _index = self.ui.solutionFiletype_comboBox.findText( self.item._solution_filetype) self.ui.solutionFiletype_comboBox.setCurrentIndex(_index) # coefficient of restitution # self.ui.restitutionCoef_lineEdit.setText(str(item.contact_model.coef_of_restitution)) # coefficient of friction static # self.ui.frictionCoefStatic_lineEdit.setText(str(item.friction_model.coef_of_friction_static)) # coefficient of friction dynamic # self.ui.frictionCoefDynamic_lineEdit.setText(str(item.friction_model.coef_of_friction_dynamic)) # z coordinate of position of contact plane # self.ui.z_dim_lineEdit.setText(str(item.z_dim)) # TOL of distance self.ui.TOL_distance_lineEdit.setText(str(item.distance_TOL)) # default dissable all input and enable later only selected one self.ui.GeneralContactAddParams.setEnabled(False) self.ui.RevoluteClearanceJointAddParams.setEnabled(False) self.ui.SphereSphereContactAddParams.setEnabled(False) self.ui.PlaneSphereContactAddParams.setEnabled(False) # list of GUI editable properties/parameters for each type of contact # general contact self._GeneralContactAddParams = [ self.ui.z_dim_lineEdit, self.ui.skin_thickness_i_lineEdit, self.ui.skin_thickness_j_lineEdit ] # revolute clearance joint contact self._RevoluteClearanceJointAddParams = [ self.ui.uPi_lineEdit, self.ui.uPj_lineEdit, self.ui.Ri_lineEdit, self.ui.Rj_lineEdit ] # contact sphere-sphere self._ContactSphereSphere = [ self.ui.R0i_lineEdit, self.ui.R0j_lineEdit ] # contact plane-sphere self._ContactPlaneSphere = [ self.ui.normal_i_lineEdit, self.ui.R0j_sphere_lineEdit ] _allAddParams = self._GeneralContactAddParams + self._RevoluteClearanceJointAddParams + self._ContactSphereSphere for _param in _allAddParams: _param.setEnabled(False) if item._type == "general": self.ui.GeneralContactAddParams.setEnabled(True) elif item._contact_type == "revolute clearance joint": self.ui.RevoluteClearanceJointAddParams.setEnabled(True) self.ui.uPi_lineEdit.setText(array2string(item.u_iP)) self.ui.uPj_lineEdit.setText(array2string(item.u_jP)) self.ui.Ri_lineEdit.setText(str(item.R0_i)) self.ui.Rj_lineEdit.setText(str(item.R0_j)) elif item._type.title() == "Contact Sphere-Sphere": self.ui.SphereSphereContactAddParams.setEnabled(True) self._updateAddParams(self._ContactSphereSphere) # set parameters for R0_lineEdit, R_ in zip( [self.ui.R0i_lineEdit, self.ui.R0j_lineEdit], item.R0_list): R0_lineEdit.setText(str(R_)) elif item._type.title() == "Contact Plane-Sphere": self.ui.PlaneSphereContactAddParams.setEnabled(True) self.ui.normal_i_lineEdit.setText(array2string(item.n_i_LCS)) self.ui.R0j_sphere_lineEdit.setText(str(item.R0_j)) elif item._contact_type.lower() == "roughness profile": for profile, lineEdit in zip(item.roughness_profile_list, [ self.ui.roughness_profile_i_lineEdit, self.ui.roughness_profile_j_lineEdit ]): lineEdit.setText(profile.filename) # add markest to list to display in widget # self.ui.markers_listWidget.setFont(self._parent._parent.font) # for marker in self.item.markers: # self.ui.markers_listWidget.addItem(marker._name) # add contact forces to list to display in widget self.ui.forces_listWidget.setFont(self._parent._parent.font) for Fn, Ft in zip(self.item._Fn_list, self.item._Ft_list): self.ui.forces_listWidget.addItem(Fn._name + " id = " + str(Fn.force_id)) self.ui.forces_listWidget.addItem(Ft._name + " id = " + str(Ft.force_id)) self.show()