Example #1
0
    def __init__(self, parent_node=None, parent=None):
        """
        Constructor
        """
        super(JointWidget, self).__init__(parent)
        self._parent = parent

        self.ui = Ui_Form()
        self.ui.setupUi(self)

        self.parent_node = parent_node

        self.ui.save_pushButton.setAutoDefault(True)

        #    set validators to limit user input
        __validator_dbl = QtGui.QDoubleValidator()
        __validator_int = QtGui.QIntValidator()

        #    validators
        self.ui.jointID_lineEdit.setValidator(__validator_int)
        # self.ui.bodyID_lineEdit.setValidator(__validator_int)
        # self.ui.uPi_lineEdit.setValidator(__validator_dbl)
        # self.ui.Fx_lineEdit.setValidator(__validator_dbl)
        # self.ui.Fy_lineEdit.setValidator(__validator_dbl)
        # self.ui.Mz_lineEdit.setValidator(__validator_dbl)

        #    signals
        self.ui.cancel_pushButton.clicked.connect(self._cancel)
        self.ui.save_pushButton.clicked.connect(self._save)
        self.ui.save_pushButton.setFocus()

        self.ui.bodyIDi_lineEdit.textChanged.connect(self._check_if_ground)
        self.ui.bodyIDj_lineEdit.textChanged.connect(self._check_if_ground)

        self.ui.jointID_lineEdit.setText(str(len(self.parent_node._children)))

        #   move to center of screen
        self._move()

        #    show widget if new item is being created
        if parent_node._typeInfo == "group":
            self._show()
Example #2
0
    def __init__(self, parent_node=None, parent=None):
        """
        Constructor
        """
        super(JointWidget, self).__init__(parent)
        self._parent = parent


        self.ui = Ui_Form()
        self.ui.setupUi(self)
        
        self.parent_node = parent_node
        
        
        self.ui.save_pushButton.setAutoDefault(True)

        #    set validators to limit user input
        __validator_dbl = QtGui.QDoubleValidator()
        __validator_int = QtGui.QIntValidator()
        
        
        #    validators
        self.ui.jointID_lineEdit.setValidator(__validator_int)
        # self.ui.bodyID_lineEdit.setValidator(__validator_int)
        # self.ui.uPi_lineEdit.setValidator(__validator_dbl)
        # self.ui.Fx_lineEdit.setValidator(__validator_dbl)
        # self.ui.Fy_lineEdit.setValidator(__validator_dbl)
        # self.ui.Mz_lineEdit.setValidator(__validator_dbl)

        
        
        #    signals
        self.ui.cancel_pushButton.clicked.connect(self._cancel)
        self.ui.save_pushButton.clicked.connect(self._save)
        self.ui.save_pushButton.setFocus()
        
        self.ui.bodyIDi_lineEdit.textChanged.connect(self._check_if_ground)
        self.ui.bodyIDj_lineEdit.textChanged.connect(self._check_if_ground)
        
        
        self.ui.jointID_lineEdit.setText(str(len(self.parent_node._children)))
        
        
        #   move to center of screen
        self._move()

        #    show widget if new item is being created
        if parent_node._typeInfo == "group":
            self._show()
Example #3
0
class JointWidget(QtGui.QDialog):
    """
    control panel interface
    """
    def __init__(self, parent_node=None, parent=None):
        """
        Constructor
        """
        super(JointWidget, self).__init__(parent)
        self._parent = parent

        self.ui = Ui_Form()
        self.ui.setupUi(self)

        self.parent_node = parent_node

        self.ui.save_pushButton.setAutoDefault(True)

        #    set validators to limit user input
        __validator_dbl = QtGui.QDoubleValidator()
        __validator_int = QtGui.QIntValidator()

        #    validators
        self.ui.jointID_lineEdit.setValidator(__validator_int)
        # self.ui.bodyID_lineEdit.setValidator(__validator_int)
        # self.ui.uPi_lineEdit.setValidator(__validator_dbl)
        # self.ui.Fx_lineEdit.setValidator(__validator_dbl)
        # self.ui.Fy_lineEdit.setValidator(__validator_dbl)
        # self.ui.Mz_lineEdit.setValidator(__validator_dbl)

        #    signals
        self.ui.cancel_pushButton.clicked.connect(self._cancel)
        self.ui.save_pushButton.clicked.connect(self._save)
        self.ui.save_pushButton.setFocus()

        self.ui.bodyIDi_lineEdit.textChanged.connect(self._check_if_ground)
        self.ui.bodyIDj_lineEdit.textChanged.connect(self._check_if_ground)

        self.ui.jointID_lineEdit.setText(str(len(self.parent_node._children)))

        #   move to center of screen
        self._move()

        #    show widget if new item is being created
        if parent_node._typeInfo == "group":
            self._show()

    def _check_if_ground(self):
        """
        
        """
        if self.ui.bodyIDi_lineEdit.text(
        ) == "ground" or self.ui.bodyIDi_lineEdit.text() == "-1":
            self.ui.uPi_lineEdit.setEnabled(False)
        else:
            self.ui.uPi_lineEdit.setEnabled(True)

        if self.ui.bodyIDj_lineEdit.text(
        ) == "ground" or self.ui.bodyIDj_lineEdit.text() == "-1":
            self.ui.uPj_lineEdit.setEnabled(False)
        else:
            self.ui.uPj_lineEdit.setEnabled(True)

    def _show(self):
        """

        :return:
        """
        self.show()

    def _move(self):
        frameGm = self.frameGeometry()
        screen = QtGui.QApplication.desktop().screenNumber(
            QtGui.QApplication.desktop().cursor().pos())
        centerPoint = QtGui.QApplication.desktop().screenGeometry(
            screen).center()
        frameGm.moveCenter(centerPoint)
        self.move(frameGm.topLeft())

    def _cancel(self):
        """
        
        """
        self.close()

    def _save(self, item=None):
        """
        
        """
        _name = self.ui.name_lineEdit.text()
        _type = self.ui.jointTypecomboBox.currentText()

        # try:
        if self.ui.bodyIDi_lineEdit.text() == "ground":
            pass
        else:
            _body_id_i = int(self.ui.bodyIDi_lineEdit.text())

        if self.ui.bodyIDj_lineEdit.text() == "ground":
            _body_id_j = self.ui.bodyIDj_lineEdit.text()
        else:
            _body_id_j = int(self.ui.bodyIDj_lineEdit.text())

        _uPi = string2array(self.ui.uPi_lineEdit.text())
        _uPj = string2array(self.ui.uPj_lineEdit.text())

        #    update data to selected object
        if self.item is not None:
            self.item._name = _name
            self.item.body_id_i = _body_id_i
            self.item.body_id_j = _body_id_j

            #   update position of marker if vector uP is changed
            for _uP, _u_P, _id, body_id in zip(
                [_uPi, _uPj], [self.item.u_iP, self.item.u_jP], [0, 1],
                    self.item.body_id_list):

                if (_uP != _u_P).any() and (body_id != "ground"):
                    self.item.markers[_id]._update_node(
                        np.array(np.append(_uP, self.item.z_dim),
                                 dtype='float32'))

        else:
            _type = str(_type).lower()
            _item = Joint(_type, _body_id_i, _body_id_j)

            pos = len(self.parent_node._children)
            self.parent_node._parent.forces.append(_item)
            self._parent.ui.treeView.model().insertRow(pos, _item,
                                                       self.parent_node)

        self.close()

        # except:
        #     QtGui.QMessageBox.warning(self, "Warning!",
        #         "Input not correct!",
        #         QtGui.QMessageBox.Cancel, QtGui.QMessageBox.NoButton,
        #         QtGui.QMessageBox.NoButton)

    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 #4
0
class JointWidget(QtGui.QDialog):
    """
    control panel interface
    """
    
    def __init__(self, parent_node=None, parent=None):
        """
        Constructor
        """
        super(JointWidget, self).__init__(parent)
        self._parent = parent


        self.ui = Ui_Form()
        self.ui.setupUi(self)
        
        self.parent_node = parent_node
        
        
        self.ui.save_pushButton.setAutoDefault(True)

        #    set validators to limit user input
        __validator_dbl = QtGui.QDoubleValidator()
        __validator_int = QtGui.QIntValidator()
        
        
        #    validators
        self.ui.jointID_lineEdit.setValidator(__validator_int)
        # self.ui.bodyID_lineEdit.setValidator(__validator_int)
        # self.ui.uPi_lineEdit.setValidator(__validator_dbl)
        # self.ui.Fx_lineEdit.setValidator(__validator_dbl)
        # self.ui.Fy_lineEdit.setValidator(__validator_dbl)
        # self.ui.Mz_lineEdit.setValidator(__validator_dbl)

        
        
        #    signals
        self.ui.cancel_pushButton.clicked.connect(self._cancel)
        self.ui.save_pushButton.clicked.connect(self._save)
        self.ui.save_pushButton.setFocus()
        
        self.ui.bodyIDi_lineEdit.textChanged.connect(self._check_if_ground)
        self.ui.bodyIDj_lineEdit.textChanged.connect(self._check_if_ground)
        
        
        self.ui.jointID_lineEdit.setText(str(len(self.parent_node._children)))
        
        
        #   move to center of screen
        self._move()

        #    show widget if new item is being created
        if parent_node._typeInfo == "group":
            self._show()


    def _check_if_ground(self):
        """
        
        """
        if self.ui.bodyIDi_lineEdit.text() == "ground" or self.ui.bodyIDi_lineEdit.text() == "-1":
            self.ui.uPi_lineEdit.setEnabled(False)
        else:
            self.ui.uPi_lineEdit.setEnabled(True)


        if self.ui.bodyIDj_lineEdit.text() == "ground" or self.ui.bodyIDj_lineEdit.text() == "-1":
            self.ui.uPj_lineEdit.setEnabled(False)
        else:
            self.ui.uPj_lineEdit.setEnabled(True)


    def _show(self):
        """

        :return:
        """
        self.show()


    def _move(self):
        frameGm = self.frameGeometry()
        screen = QtGui.QApplication.desktop().screenNumber(QtGui.QApplication.desktop().cursor().pos())
        centerPoint = QtGui.QApplication.desktop().screenGeometry(screen).center()
        frameGm.moveCenter(centerPoint)
        self.move(frameGm.topLeft())


    def _cancel(self):
        """
        
        """
        self.close()

    
    def _save(self, item=None):
        """
        
        """
        _name = self.ui.name_lineEdit.text()
        _type = self.ui.jointTypecomboBox.currentText()

        # try:
        if self.ui.bodyIDi_lineEdit.text() == "ground":
            pass
        else:
            _body_id_i = int(self.ui.bodyIDi_lineEdit.text())

        if self.ui.bodyIDj_lineEdit.text() == "ground":
            _body_id_j = self.ui.bodyIDj_lineEdit.text()
        else:
            _body_id_j = int(self.ui.bodyIDj_lineEdit.text())


        _uPi = string2array(self.ui.uPi_lineEdit.text())
        _uPj = string2array(self.ui.uPj_lineEdit.text())


        #    update data to selected object
        if self.item is not None:
            self.item._name = _name
            self.item.body_id_i = _body_id_i
            self.item.body_id_j = _body_id_j

            #   update position of marker if vector uP is changed
            for _uP, _u_P, _id, body_id in zip([_uPi, _uPj], [self.item.u_iP, self.item.u_jP], [0, 1], self.item.body_id_list):

                if (_uP != _u_P).any() and (body_id != "ground"):
                    self.item.markers[_id]._update_node(np.array(np.append(_uP, self.item.z_dim), dtype='float32'))



        else:
            _type = str(_type).lower()
            _item = Joint(_type, _body_id_i, _body_id_j)

            pos = len(self.parent_node._children)
            self.parent_node._parent.forces.append(_item)
            self._parent.ui.treeView.model().insertRow(pos, _item, self.parent_node)

        self.close()
        
        # except:
        #     QtGui.QMessageBox.warning(self, "Warning!",
        #         "Input not correct!",
        #         QtGui.QMessageBox.Cancel, QtGui.QMessageBox.NoButton,
        #         QtGui.QMessageBox.NoButton)


    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()