Example #1
0
    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()
Example #2
0
    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()
Example #3
0
    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()
Example #4
0
    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()
Example #5
0
    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)
Example #6
0
    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()
Example #7
0
    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))
Example #8
0
    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)
Example #9
0
    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()
Example #10
0
    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()