def setType(self, type): """ :param type: :return: """ self._type = fix_string(type.title())
def plot(self, x, y, color=None, label=None, str_id=None): """ :param x: options = (delta) :param y: options = (Fn, dqn) :param color: :return: """ _contact_indices = self._contact() label, color = self._plot_info(color) label = fix_string(label) if x == "delta": x_data = abs( self._distance_solution_container[_contact_indices])[1::] elif x == "t": x_data = self._t_solution_container[ _contact_indices] - self._t_solution_container[ _contact_indices][0] else: raise ValueError, "x not corrent!" if y == "Fn": y_data = abs(self._Fn_solution_container[_contact_indices]) / 0.015 elif y == "dqn": y_data = self._dqn_solution_container[_contact_indices][1::] else: raise ValueError, "y not corrent!" # plt.plot(x_data, y_data, marker=None, color=color, label=r"$\textrm{%s}$"%label) plt.plot(x_data, y_data, marker=None, color=color, label=label)
def plot(self, x, y, colors=None, labels=None): """ """ if colors is None: colors = [None] * len(self.mbd_solutions) if labels is None: labels = [None] * len(self.mbd_solutions) # plot the data for i, (sol, color, label) in enumerate(zip(self.mbd_solutions, colors, labels)): if label is None: try: _indx = sol._name.index('0')+3 label = sol._name[_indx::] label = fix_string(label) except: label = sol._name print label sol._plot(x, y, color=color, label=label)
[.2, 0.2, 0.2], [0, 0, .5], [.7, .3, .1], [0.1, 0.1, .9]] fig = plt.figure(num=1, figsize=(8, 6), dpi=100, facecolor='w', edgecolor='k') ax = plt.subplot(111, aspect="auto") ax.ticklabel_format(style='sci',scilimits=(-4,4), axis='both') # tex settings rcParams['text.usetex'] = True rc('font', family='serif') for contact_model, _color in zip(contact_models, _colors): _label = fix_string(contact_model._type) plt.plot(c_r, contact_model.ksi_solution_data, label=_label, color=_color) ax.legend(loc='best', fontsize=12)#, bbox_to_anchor=(1, 0.5)) plt.grid() # plt.legend(loc='upper right', bbox_to_anchor=(1, 1)) # plt.show() plt.tick_params(axis='both', which='major', labelsize=12) plt.tick_params(axis='both', which='minor', labelsize=12) # plt.xlabel(r'\ $\delta$ [m]', fontsize=12) # plt.ylabel(r'\ $dq_n$ [m/s]', fontsize=12) plt.ylabel(r'\ $\chi$', fontsize=12) plt.xlabel(r'\ c_r', fontsize=12) # plt.ylabel(r'\ $F$ [N]', fontsize=12) # y_label.set_rotation(0)
_colors = [[0, 0, 0], [.7, .3, .1], [1, 0, 0], [0, 1, 0], [0, 0, 1], [.5, .5, .5], [.2, 0.2, 0.2], [0, 0, .5], [.7, .3, .1], [0.1, 0.1, .9]] sb.set_style(style='white') fig = plt.figure(num=1, figsize=(8, 6), dpi=100, facecolor='w', edgecolor='k') ax = plt.subplot(111, aspect="auto") ax.ticklabel_format(style='sci', scilimits=(-4, 4), axis='both') # tex settings mpl.rcParams['text.usetex'] = True mpl.rc('font', family='serif') for contact_model, _color in zip(contact_models, _colors): _label = fix_string(contact_model._type) plt.plot(c_r, contact_model.ksi_solution_data, label=_label, color=_color) leg = ax.legend(loc='best', fontsize=12, frameon=True) #, bbox_to_anchor=(1, 0.5)) leg.get_frame().set_alpha(1) plt.grid() # plt.legend(loc='upper right', bbox_to_anchor=(1, 1)) # plt.show() plt.tick_params(axis='both', which='major', labelsize=12) plt.tick_params(axis='both', which='minor', labelsize=12) # plt.xlabel(r'\ $\delta$ [m]', fontsize=12) # plt.ylabel(r'\ $dq_n$ [m/s]', fontsize=12) plt.ylabel(r'\ $\chi$', fontsize=18) plt.xlabel(r'\ $c_r$', fontsize=18)
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()