diff --git a/README.md b/README.md
index fc452e9..8c235ec 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,13 @@
# Simple-GCode-GUI
Interface PyQt de contrôle d'une machine 3 axes programmée avec [Simple G-Code Decoder](https://github.com/sensor56/Simple-GCode-Decoder). Ecrit par X. HINAULT (http://www.mon-club-elec.fr). Licence GPLv3.
+### News
+- 04/07 : ajout RAZ X et Y
+- 04/07 : ajout boutons Goto X0, Goto Y0 et Goto Z0
+- 04 /07 : ajout Slider vitesse
+- 08/07 : ajout validation envoi G-Code sur appui enter
-
+### TODO
+- case à cocher d'activation du Home Z
+- bouton RAZ des backlash ? e/o champ
+- bouton recalage des axes (G01 X5 Y5 F4 suivi de G28 X Y )
diff --git a/SimpleGCodeGUI.py b/SimpleGCodeGUI.py
index b231662..9dccb02 100644
--- a/SimpleGCodeGUI.py
+++ b/SimpleGCodeGUI.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
-# Form implementation generated from reading ui file
+# Form implementation generated from reading ui file 'SimpleGCodeGUI.ui'
#
# Created by: PyQt4 UI code generator 4.11.3
#
@@ -25,29 +25,35 @@ def _translate(context, text, disambig):
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName(_fromUtf8("Form"))
- Form.resize(820, 455)
+ Form.resize(813, 478)
Form.setStyleSheet(_fromUtf8(""))
self.lineEditChemin = QtGui.QLineEdit(Form)
- self.lineEditChemin.setGeometry(QtCore.QRect(375, 125, 436, 21))
+ self.lineEditChemin.setGeometry(QtCore.QRect(369, 191, 441, 21))
self.lineEditChemin.setObjectName(_fromUtf8("lineEditChemin"))
self.textEdit = QtGui.QTextEdit(Form)
- self.textEdit.setGeometry(QtCore.QRect(375, 180, 431, 231))
+ self.textEdit.setGeometry(QtCore.QRect(370, 242, 441, 205))
+ font = QtGui.QFont()
+ font.setFamily(_fromUtf8("DejaVu Sans"))
+ font.setPointSize(8)
+ self.textEdit.setFont(font)
self.textEdit.setLineWrapMode(QtGui.QTextEdit.NoWrap)
+ self.textEdit.setAcceptRichText(False)
self.textEdit.setObjectName(_fromUtf8("textEdit"))
self.pushButtonNouveau = QtGui.QPushButton(Form)
- self.pushButtonNouveau.setGeometry(QtCore.QRect(375, 155, 86, 21))
+ self.pushButtonNouveau.setGeometry(QtCore.QRect(369, 216, 86, 21))
self.pushButtonNouveau.setObjectName(_fromUtf8("pushButtonNouveau"))
self.pushButtonOuvrir = QtGui.QPushButton(Form)
- self.pushButtonOuvrir.setGeometry(QtCore.QRect(465, 155, 85, 21))
+ self.pushButtonOuvrir.setGeometry(QtCore.QRect(459, 216, 85, 21))
self.pushButtonOuvrir.setObjectName(_fromUtf8("pushButtonOuvrir"))
self.pushButtonEnregistrer = QtGui.QPushButton(Form)
- self.pushButtonEnregistrer.setGeometry(QtCore.QRect(555, 155, 86, 21))
+ self.pushButtonEnregistrer.setGeometry(QtCore.QRect(549, 216, 86, 21))
self.pushButtonEnregistrer.setObjectName(_fromUtf8("pushButtonEnregistrer"))
self.pushButtonEnvoiGCode = QtGui.QPushButton(Form)
- self.pushButtonEnvoiGCode.setGeometry(QtCore.QRect(650, 155, 136, 21))
+ self.pushButtonEnvoiGCode.setGeometry(QtCore.QRect(640, 217, 136, 21))
+ self.pushButtonEnvoiGCode.setStyleSheet(_fromUtf8("background-color: rgb(255, 255, 0);"))
self.pushButtonEnvoiGCode.setObjectName(_fromUtf8("pushButtonEnvoiGCode"))
self.line_5 = QtGui.QFrame(Form)
- self.line_5.setGeometry(QtCore.QRect(370, 110, 436, 16))
+ self.line_5.setGeometry(QtCore.QRect(370, 178, 436, 16))
self.line_5.setFrameShape(QtGui.QFrame.HLine)
self.line_5.setFrameShadow(QtGui.QFrame.Sunken)
self.line_5.setObjectName(_fromUtf8("line_5"))
@@ -69,8 +75,13 @@ def setupUi(self, Form):
self.comboBoxDebit.addItem(_fromUtf8(""))
self.comboBoxDebit.addItem(_fromUtf8(""))
self.textEditReception = QtGui.QTextEdit(Form)
- self.textEditReception.setGeometry(QtCore.QRect(370, 30, 441, 81))
+ self.textEditReception.setGeometry(QtCore.QRect(370, 23, 441, 158))
+ font = QtGui.QFont()
+ font.setFamily(_fromUtf8("DejaVu Sans"))
+ font.setPointSize(7)
+ self.textEditReception.setFont(font)
self.textEditReception.setStyleSheet(_fromUtf8("background-color: rgb(244, 255, 190);"))
+ self.textEditReception.setAcceptRichText(False)
self.textEditReception.setObjectName(_fromUtf8("textEditReception"))
self.line_2 = QtGui.QFrame(Form)
self.line_2.setGeometry(QtCore.QRect(10, 130, 348, 16))
@@ -104,15 +115,20 @@ def setupUi(self, Form):
self.labelDebit.setGeometry(QtCore.QRect(140, 10, 131, 16))
self.labelDebit.setObjectName(_fromUtf8("labelDebit"))
self.line_3 = QtGui.QFrame(Form)
- self.line_3.setGeometry(QtCore.QRect(357, 5, 16, 441))
+ self.line_3.setGeometry(QtCore.QRect(358, 12, 16, 461))
self.line_3.setFrameShape(QtGui.QFrame.VLine)
self.line_3.setFrameShadow(QtGui.QFrame.Sunken)
self.line_3.setObjectName(_fromUtf8("line_3"))
self.textEditTraceEnvoiSerie = QtGui.QTextEdit(Form)
- self.textEditTraceEnvoiSerie.setGeometry(QtCore.QRect(2, 160, 359, 70))
+ self.textEditTraceEnvoiSerie.setGeometry(QtCore.QRect(2, 156, 359, 74))
+ font = QtGui.QFont()
+ font.setFamily(_fromUtf8("DejaVu Sans"))
+ font.setPointSize(7)
+ self.textEditTraceEnvoiSerie.setFont(font)
self.textEditTraceEnvoiSerie.setStyleSheet(_fromUtf8("color: rgb(0, 0, 255);\n"
"background-color: rgb(170, 255, 255);"))
self.textEditTraceEnvoiSerie.setLineWrapMode(QtGui.QTextEdit.NoWrap)
+ self.textEditTraceEnvoiSerie.setAcceptRichText(False)
self.textEditTraceEnvoiSerie.setObjectName(_fromUtf8("textEditTraceEnvoiSerie"))
self.pushButtonInitSerial = QtGui.QPushButton(Form)
self.pushButtonInitSerial.setGeometry(QtCore.QRect(270, 10, 41, 41))
@@ -121,7 +137,7 @@ def setupUi(self, Form):
self.labelChaineEnvoi.setGeometry(QtCore.QRect(10, 95, 121, 16))
self.labelChaineEnvoi.setObjectName(_fromUtf8("labelChaineEnvoi"))
self.labelReception = QtGui.QLabel(Form)
- self.labelReception.setGeometry(QtCore.QRect(380, 10, 171, 16))
+ self.labelReception.setGeometry(QtCore.QRect(371, 6, 171, 16))
self.labelReception.setObjectName(_fromUtf8("labelReception"))
self.labelDelaiRecept = QtGui.QLabel(Form)
self.labelDelaiRecept.setGeometry(QtCore.QRect(10, 50, 121, 16))
@@ -137,10 +153,10 @@ def setupUi(self, Form):
self.labelPort.setGeometry(QtCore.QRect(10, 10, 101, 16))
self.labelPort.setObjectName(_fromUtf8("labelPort"))
self.pushButtonPassGCode = QtGui.QPushButton(Form)
- self.pushButtonPassGCode.setGeometry(QtCore.QRect(380, 420, 61, 27))
+ self.pushButtonPassGCode.setGeometry(QtCore.QRect(375, 449, 61, 27))
self.pushButtonPassGCode.setObjectName(_fromUtf8("pushButtonPassGCode"))
self.pushButtonStopGCode = QtGui.QPushButton(Form)
- self.pushButtonStopGCode.setGeometry(QtCore.QRect(450, 420, 61, 27))
+ self.pushButtonStopGCode.setGeometry(QtCore.QRect(440, 450, 61, 27))
self.pushButtonStopGCode.setObjectName(_fromUtf8("pushButtonStopGCode"))
self.label = QtGui.QLabel(Form)
self.label.setGeometry(QtCore.QRect(3, 234, 358, 217))
@@ -154,11 +170,11 @@ def setupUi(self, Form):
self.line_8.setFrameShadow(QtGui.QFrame.Sunken)
self.line_8.setObjectName(_fromUtf8("line_8"))
self.pushButton_HOME_X = QtGui.QPushButton(Form)
- self.pushButton_HOME_X.setGeometry(QtCore.QRect(18, 273, 65, 27))
+ self.pushButton_HOME_X.setGeometry(QtCore.QRect(7, 248, 65, 27))
self.pushButton_HOME_X.setStyleSheet(_fromUtf8("background-color: rgba(255, 0, 0, 127);"))
self.pushButton_HOME_X.setObjectName(_fromUtf8("pushButton_HOME_X"))
self.pushButton_HOME_Y = QtGui.QPushButton(Form)
- self.pushButton_HOME_Y.setGeometry(QtCore.QRect(161, 273, 65, 27))
+ self.pushButton_HOME_Y.setGeometry(QtCore.QRect(163, 247, 65, 27))
self.pushButton_HOME_Y.setStyleSheet(_fromUtf8("background-color: rgba(0, 255, 0, 127);"))
self.pushButton_HOME_Y.setObjectName(_fromUtf8("pushButton_HOME_Y"))
self.pushButton_HOME_Z = QtGui.QPushButton(Form)
@@ -167,7 +183,7 @@ def setupUi(self, Form):
self.pushButton_HOME_Z.setStyleSheet(_fromUtf8("background-color: rgba(0, 160, 255, 255);"))
self.pushButton_HOME_Z.setObjectName(_fromUtf8("pushButton_HOME_Z"))
self.pushButton_RAZ_Z = QtGui.QPushButton(Form)
- self.pushButton_RAZ_Z.setGeometry(QtCore.QRect(292, 334, 65, 27))
+ self.pushButton_RAZ_Z.setGeometry(QtCore.QRect(293, 335, 65, 27))
self.pushButton_RAZ_Z.setStyleSheet(_fromUtf8("background-color: rgba(0, 255, 255, 255);"))
self.pushButton_RAZ_Z.setObjectName(_fromUtf8("pushButton_RAZ_Z"))
self.pushButton_X_PLUS_UN = QtGui.QPushButton(Form)
@@ -196,19 +212,19 @@ def setupUi(self, Form):
self.line_6.setFrameShadow(QtGui.QFrame.Sunken)
self.line_6.setObjectName(_fromUtf8("line_6"))
self.pushButton_Y_PLUS_UN = QtGui.QPushButton(Form)
- self.pushButton_Y_PLUS_UN.setGeometry(QtCore.QRect(105, 300, 41, 27))
+ self.pushButton_Y_PLUS_UN.setGeometry(QtCore.QRect(103, 370, 41, 27))
self.pushButton_Y_PLUS_UN.setStyleSheet(_fromUtf8("background-color: rgba(0, 255, 0, 200);"))
self.pushButton_Y_PLUS_UN.setObjectName(_fromUtf8("pushButton_Y_PLUS_UN"))
self.pushButton_Y_MOINS_DIX = QtGui.QPushButton(Form)
- self.pushButton_Y_MOINS_DIX.setGeometry(QtCore.QRect(105, 410, 41, 27))
+ self.pushButton_Y_MOINS_DIX.setGeometry(QtCore.QRect(105, 259, 41, 27))
self.pushButton_Y_MOINS_DIX.setStyleSheet(_fromUtf8("background-color: rgba(0, 255, 0, 200);"))
self.pushButton_Y_MOINS_DIX.setObjectName(_fromUtf8("pushButton_Y_MOINS_DIX"))
self.pushButton_Y_MOINS_UN = QtGui.QPushButton(Form)
- self.pushButton_Y_MOINS_UN.setGeometry(QtCore.QRect(105, 370, 41, 27))
+ self.pushButton_Y_MOINS_UN.setGeometry(QtCore.QRect(103, 295, 41, 27))
self.pushButton_Y_MOINS_UN.setStyleSheet(_fromUtf8("background-color: rgba(0, 255, 0, 200);"))
self.pushButton_Y_MOINS_UN.setObjectName(_fromUtf8("pushButton_Y_MOINS_UN"))
self.pushButton_Y_PLUS_DIX = QtGui.QPushButton(Form)
- self.pushButton_Y_PLUS_DIX.setGeometry(QtCore.QRect(105, 260, 41, 27))
+ self.pushButton_Y_PLUS_DIX.setGeometry(QtCore.QRect(104, 408, 41, 27))
self.pushButton_Y_PLUS_DIX.setStyleSheet(_fromUtf8("background-color: rgba(0, 255, 0, 200);"))
self.pushButton_Y_PLUS_DIX.setObjectName(_fromUtf8("pushButton_Y_PLUS_DIX"))
self.line_7 = QtGui.QFrame(Form)
@@ -243,13 +259,51 @@ def setupUi(self, Form):
self.pushButton_Z_PLUS_DIX.setGeometry(QtCore.QRect(244, 247, 41, 27))
self.pushButton_Z_PLUS_DIX.setStyleSheet(_fromUtf8("background-color: rgba(0, 160, 255, 255);"))
self.pushButton_Z_PLUS_DIX.setObjectName(_fromUtf8("pushButton_Z_PLUS_DIX"))
+ self.pushButton_Z_GOTO_ZERO = QtGui.QPushButton(Form)
+ self.pushButton_Z_GOTO_ZERO.setGeometry(QtCore.QRect(294, 309, 64, 16))
+ self.pushButton_Z_GOTO_ZERO.setStyleSheet(_fromUtf8("background-color: rgba(0, 160, 255, 255);"))
+ self.pushButton_Z_GOTO_ZERO.setObjectName(_fromUtf8("pushButton_Z_GOTO_ZERO"))
+ self.pushButton_X_GOTO_ZERO = QtGui.QPushButton(Form)
+ self.pushButton_X_GOTO_ZERO.setGeometry(QtCore.QRect(8, 282, 64, 16))
+ self.pushButton_X_GOTO_ZERO.setStyleSheet(_fromUtf8("background-color: rgba(255, 0, 0, 127);"))
+ self.pushButton_X_GOTO_ZERO.setObjectName(_fromUtf8("pushButton_X_GOTO_ZERO"))
+ self.pushButton_Y_GOTO_ZERO = QtGui.QPushButton(Form)
+ self.pushButton_Y_GOTO_ZERO.setGeometry(QtCore.QRect(165, 283, 64, 16))
+ self.pushButton_Y_GOTO_ZERO.setStyleSheet(_fromUtf8("background-color: rgba(0, 255, 0, 127);"))
+ self.pushButton_Y_GOTO_ZERO.setObjectName(_fromUtf8("pushButton_Y_GOTO_ZERO"))
+ self.pushButton_RAZ_X = QtGui.QPushButton(Form)
+ self.pushButton_RAZ_X.setGeometry(QtCore.QRect(8, 410, 65, 27))
+ self.pushButton_RAZ_X.setStyleSheet(_fromUtf8("background-color: rgba(255, 127, 0, 255);"))
+ self.pushButton_RAZ_X.setObjectName(_fromUtf8("pushButton_RAZ_X"))
+ self.pushButton_RAZ_Y = QtGui.QPushButton(Form)
+ self.pushButton_RAZ_Y.setGeometry(QtCore.QRect(162, 411, 65, 27))
+ self.pushButton_RAZ_Y.setStyleSheet(_fromUtf8("background-color: rgba(127, 255, 0, 255);"))
+ self.pushButton_RAZ_Y.setObjectName(_fromUtf8("pushButton_RAZ_Y"))
+ self.horizontalSlider_SET_SPEED = QtGui.QSlider(Form)
+ self.horizontalSlider_SET_SPEED.setGeometry(QtCore.QRect(58, 461, 256, 16))
+ self.horizontalSlider_SET_SPEED.setMinimum(1)
+ self.horizontalSlider_SET_SPEED.setMaximum(8)
+ self.horizontalSlider_SET_SPEED.setPageStep(1)
+ self.horizontalSlider_SET_SPEED.setOrientation(QtCore.Qt.Horizontal)
+ self.horizontalSlider_SET_SPEED.setInvertedAppearance(False)
+ self.horizontalSlider_SET_SPEED.setInvertedControls(False)
+ self.horizontalSlider_SET_SPEED.setTickPosition(QtGui.QSlider.TicksAbove)
+ self.horizontalSlider_SET_SPEED.setTickInterval(1)
+ self.horizontalSlider_SET_SPEED.setObjectName(_fromUtf8("horizontalSlider_SET_SPEED"))
+ self.label_SPEED = QtGui.QLabel(Form)
+ self.label_SPEED.setGeometry(QtCore.QRect(0, 459, 62, 15))
+ self.label_SPEED.setObjectName(_fromUtf8("label_SPEED"))
+ self.pushButton_SET_SPEED = QtGui.QPushButton(Form)
+ self.pushButton_SET_SPEED.setGeometry(QtCore.QRect(320, 459, 39, 16))
+ self.pushButton_SET_SPEED.setStyleSheet(_fromUtf8(""))
+ self.pushButton_SET_SPEED.setObjectName(_fromUtf8("pushButton_SET_SPEED"))
self.retranslateUi(Form)
self.comboBoxFinLigne.setCurrentIndex(1)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
- Form.setWindowTitle(_translate("Form", "Simple G-Code GUI v0.2", None))
+ Form.setWindowTitle(_translate("Form", "Simple G-Code GUI v0.3", None))
self.pushButtonNouveau.setText(_translate("Form", "Nouveau", None))
self.pushButtonOuvrir.setText(_translate("Form", "Ouvrir", None))
self.pushButtonEnregistrer.setText(_translate("Form", "Enregistrer", None))
@@ -300,6 +354,13 @@ def retranslateUi(self, Form):
self.pushButton_Z_MOINS_UN.setText(_translate("Form", "-1", None))
self.pushButton_Z_PLUS_ZERO_UN.setText(_translate("Form", "+0.1", None))
self.pushButton_Z_PLUS_DIX.setText(_translate("Form", "+10", None))
+ self.pushButton_Z_GOTO_ZERO.setText(_translate("Form", "Goto Z0", None))
+ self.pushButton_X_GOTO_ZERO.setText(_translate("Form", "Goto X0 ", None))
+ self.pushButton_Y_GOTO_ZERO.setText(_translate("Form", "Goto Y0", None))
+ self.pushButton_RAZ_X.setText(_translate("Form", "RAZ X", None))
+ self.pushButton_RAZ_Y.setText(_translate("Form", "RAZ Y", None))
+ self.label_SPEED.setText(_translate("Form", "Speed :", None))
+ self.pushButton_SET_SPEED.setText(_translate("Form", "Set", None))
if __name__ == "__main__":
diff --git a/SimpleGCodeGUI.ui b/SimpleGCodeGUI.ui
index a4781c2..ba36331 100644
--- a/SimpleGCodeGUI.ui
+++ b/SimpleGCodeGUI.ui
@@ -6,12 +6,12 @@
0
0
- 820
- 455
+ 813
+ 478
- Simple G-Code GUI v0.2
+ Simple G-Code GUI v0.3
@@ -19,9 +19,9 @@
- 375
- 125
- 436
+ 369
+ 191
+ 441
21
@@ -29,21 +29,30 @@
- 375
- 180
- 431
- 231
+ 370
+ 242
+ 441
+ 205
+
+
+ DejaVu Sans
+ 8
+
+
QTextEdit::NoWrap
+
+ false
+
- 375
- 155
+ 369
+ 216
86
21
@@ -55,8 +64,8 @@
- 465
- 155
+ 459
+ 216
85
21
@@ -68,8 +77,8 @@
- 555
- 155
+ 549
+ 216
86
21
@@ -81,12 +90,15 @@
- 650
- 155
+ 640
+ 217
136
21
+
+ background-color: rgb(255, 255, 0);
+
Envoyer GCode
@@ -95,7 +107,7 @@
370
- 110
+ 178
436
16
@@ -184,14 +196,23 @@
370
- 30
+ 23
441
- 81
+ 158
+
+
+ DejaVu Sans
+ 7
+
+
background-color: rgb(244, 255, 190);
+
+ false
+
@@ -317,10 +338,10 @@
- 357
- 5
+ 358
+ 12
16
- 441
+ 461
@@ -331,11 +352,17 @@
2
- 160
+ 156
359
- 70
+ 74
+
+
+ DejaVu Sans
+ 7
+
+
color: rgb(0, 0, 255);
background-color: rgb(170, 255, 255);
@@ -343,6 +370,9 @@ background-color: rgb(170, 255, 255);
QTextEdit::NoWrap
+
+ false
+
@@ -373,8 +403,8 @@ background-color: rgb(170, 255, 255);
- 380
- 10
+ 371
+ 6
171
16
@@ -438,8 +468,8 @@ background-color: rgb(170, 255, 255);
- 380
- 420
+ 375
+ 449
61
27
@@ -451,8 +481,8 @@ background-color: rgb(170, 255, 255);
- 450
- 420
+ 440
+ 450
61
27
@@ -496,8 +526,8 @@ background-color: rgb(170, 255, 255);
- 18
- 273
+ 7
+ 248
65
27
@@ -512,8 +542,8 @@ background-color: rgb(170, 255, 255);
- 161
- 273
+ 163
+ 247
65
27
@@ -547,8 +577,8 @@ background-color: rgb(170, 255, 255);
- 292
- 334
+ 293
+ 335
65
27
@@ -650,8 +680,8 @@ background-color: rgb(170, 255, 255);
- 105
- 300
+ 103
+ 370
41
27
@@ -667,7 +697,7 @@ background-color: rgb(170, 255, 255);
105
- 410
+ 259
41
27
@@ -682,8 +712,8 @@ background-color: rgb(170, 255, 255);
- 105
- 370
+ 103
+ 295
41
27
@@ -698,8 +728,8 @@ background-color: rgb(170, 255, 255);
- 105
- 260
+ 104
+ 408
41
27
@@ -829,6 +859,149 @@ background-color: rgb(170, 255, 255);
+10
+
+
+
+ 294
+ 309
+ 64
+ 16
+
+
+
+ background-color: rgba(0, 160, 255, 255);
+
+
+ Goto Z0
+
+
+
+
+
+ 8
+ 282
+ 64
+ 16
+
+
+
+ background-color: rgba(255, 0, 0, 127);
+
+
+ Goto X0
+
+
+
+
+
+ 165
+ 283
+ 64
+ 16
+
+
+
+ background-color: rgba(0, 255, 0, 127);
+
+
+ Goto Y0
+
+
+
+
+
+ 8
+ 410
+ 65
+ 27
+
+
+
+ background-color: rgba(255, 127, 0, 255);
+
+
+ RAZ X
+
+
+
+
+
+ 162
+ 411
+ 65
+ 27
+
+
+
+ background-color: rgba(127, 255, 0, 255);
+
+
+ RAZ Y
+
+
+
+
+
+ 58
+ 461
+ 256
+ 16
+
+
+
+ 1
+
+
+ 8
+
+
+ 1
+
+
+ Qt::Horizontal
+
+
+ false
+
+
+ false
+
+
+ QSlider::TicksAbove
+
+
+ 1
+
+
+
+
+
+ 0
+ 459
+ 62
+ 15
+
+
+
+ Speed :
+
+
+
+
+
+ 320
+ 459
+ 39
+ 16
+
+
+
+
+
+
+ Set
+
+
label
lineEditChemin
textEdit
@@ -879,6 +1052,14 @@ background-color: rgb(170, 255, 255);
pushButton_Z_MOINS_UN
pushButton_Z_PLUS_ZERO_UN
pushButton_Z_PLUS_DIX
+ pushButton_Z_GOTO_ZERO
+ pushButton_X_GOTO_ZERO
+ pushButton_Y_GOTO_ZERO
+ pushButton_RAZ_X
+ pushButton_RAZ_Y
+ horizontalSlider_SET_SPEED
+ label_SPEED
+ pushButton_SET_SPEED
diff --git a/SimpleGCodeGUIMain.py b/SimpleGCodeGUIMain.py
index c229480..2cbb8d1 100644
--- a/SimpleGCodeGUIMain.py
+++ b/SimpleGCodeGUIMain.py
@@ -42,6 +42,8 @@ def __init__(self, parent=None):
self.connect(self.pushButton_X_MOINS_UN, SIGNAL("clicked()"), self.pushButton_X_MOINS_UN_Clicked) # connecte le signal Clicked de l'objet bouton à l'appel de la fonction voulue
self.connect(self.pushButton_X_MOINS_DIX, SIGNAL("clicked()"), self.pushButton_X_MOINS_DIX_Clicked) # connecte le signal Clicked de l'objet bouton à l'appel de la fonction voulue
self.connect(self.pushButton_HOME_X, SIGNAL("clicked()"), self.pushButton_HOME_X_Clicked) # connecte le signal Clicked de l'objet bouton à l'appel de la fonction voulue
+ self.connect(self.pushButton_RAZ_X, SIGNAL("clicked()"), self.pushButton_RAZ_X_Clicked) # connecte le signal Clicked de l'objet bouton à l'appel de la fonction voulue
+ self.connect(self.pushButton_X_GOTO_ZERO, SIGNAL("clicked()"), self.pushButton_X_GOTO_ZERO_Clicked) # connecte le signal Clicked de l'objet bouton à l'appel de la fonction voulue
# -- Y
self.connect(self.pushButton_Y_PLUS_UN, SIGNAL("clicked()"), self.pushButton_Y_PLUS_UN_Clicked) # connecte le signal Clicked de l'objet bouton à l'appel de la fonction voulue
@@ -49,6 +51,8 @@ def __init__(self, parent=None):
self.connect(self.pushButton_Y_MOINS_UN, SIGNAL("clicked()"), self.pushButton_Y_MOINS_UN_Clicked) # connecte le signal Clicked de l'objet bouton à l'appel de la fonction voulue
self.connect(self.pushButton_Y_MOINS_DIX, SIGNAL("clicked()"), self.pushButton_Y_MOINS_DIX_Clicked) # connecte le signal Clicked de l'objet bouton à l'appel de la fonction voulue
self.connect(self.pushButton_HOME_Y, SIGNAL("clicked()"), self.pushButton_HOME_Y_Clicked) # connecte le signal Clicked de l'objet bouton à l'appel de la fonction voulue
+ self.connect(self.pushButton_RAZ_Y, SIGNAL("clicked()"), self.pushButton_RAZ_Y_Clicked) # connecte le signal Clicked de l'objet bouton à l'appel de la fonction voulue
+ self.connect(self.pushButton_Y_GOTO_ZERO, SIGNAL("clicked()"), self.pushButton_Y_GOTO_ZERO_Clicked) # connecte le signal Clicked de l'objet bouton à l'appel de la fonction voulue
# -- Z
self.connect(self.pushButton_Z_PLUS_ZERO_UN, SIGNAL("clicked()"), self.pushButton_Z_PLUS_ZERO_UN_Clicked) # connecte le signal Clicked de l'objet bouton à l'appel de la fonction voulue
@@ -59,13 +63,22 @@ def __init__(self, parent=None):
self.connect(self.pushButton_Z_MOINS_DIX, SIGNAL("clicked()"), self.pushButton_Z_MOINS_DIX_Clicked) # connecte le signal Clicked de l'objet bouton à l'appel de la fonction voulue
self.connect(self.pushButton_HOME_Z, SIGNAL("clicked()"), self.pushButton_HOME_Z_Clicked) # connecte le signal Clicked de l'objet bouton à l'appel de la fonction voulue
self.connect(self.pushButton_RAZ_Z, SIGNAL("clicked()"), self.pushButton_RAZ_Z_Clicked) # connecte le signal Clicked de l'objet bouton à l'appel de la fonction voulue
+ self.connect(self.pushButton_Z_GOTO_ZERO, SIGNAL("clicked()"), self.pushButton_Z_GOTO_ZERO_Clicked) # connecte le signal Clicked de l'objet bouton à l'appel de la fonction voulue
+ # -- Speed - slider et pushbutton
+ self.connect(self.horizontalSlider_SET_SPEED, SIGNAL("valueChanged(int)"), self.horizontalSlider_SET_SPEED_ValueChanged)
+ self.connect(self.horizontalSlider_SET_SPEED, SIGNAL("sliderReleased()"), self.horizontalSlider_SET_SPEED_Released)
+ self.connect(self.pushButton_SET_SPEED, SIGNAL("clicked()"), self.pushButton_SET_SPEED_Clicked) # connecte le signal Clicked de l'objet bouton à l'appel de la fonction voulue
+
# port série
self.connect(self.pushButtonInitSerial, SIGNAL("clicked()"), self.pushButtonInitSerialClicked)
self.connect(self.pushButtonEnvoi, SIGNAL("clicked()"), self.pushButtonEnvoiClicked)
self.connect(self.pushButtonStop, SIGNAL("clicked()"), self.pushButtonStopClicked)
+ # - pour envoi sur appui return dans lineEdit
+ self.connect(self.lineEditChaineEnvoi, SIGNAL("returnPressed()"), self.pushButtonEnvoiClicked) # connecte le signal Clicked de l'objet bouton à l'appel de la fonction voulue
+
#initialisation Timer
self.timerSerial=QTimer() # déclare un timer Qt
self.connect(self.timerSerial, SIGNAL("timeout()"), self.timerSerialEvent) # connecte le signal timeOut de l'objet timer à l'appel de la fonction voulue
@@ -81,7 +94,7 @@ def __init__(self, parent=None):
#---- les boutons de contrôle des axes X,Y,Z de l'interface
# -- X
def pushButton_X_PLUS_UN_Clicked(self): # lors appui bouton initialisation série
- print("Bouton X+1 cliqué")
+ print(u"Bouton X+1 cliqué")
gcode=(
"""G91
@@ -92,7 +105,7 @@ def pushButton_X_PLUS_UN_Clicked(self): # lors appui bouton initialisation séri
self.envoiGCode(gcode) # envoie le GCode vers machine avec attente des réponses
def pushButton_X_PLUS_DIX_Clicked(self): # lors appui bouton initialisation série
- print("Bouton X+10 cliqué")
+ print(u"Bouton X+10 cliqué")
gcode=(
"""G91
@@ -103,7 +116,7 @@ def pushButton_X_PLUS_DIX_Clicked(self): # lors appui bouton initialisation sér
self.envoiGCode(gcode) # envoie le GCode vers machine avec attente des réponses
def pushButton_X_MOINS_UN_Clicked(self): # lors appui bouton initialisation série
- print("Bouton X-1 cliqué")
+ print(u"Bouton X-1 cliqué")
gcode=(
"""G91
@@ -114,7 +127,7 @@ def pushButton_X_MOINS_UN_Clicked(self): # lors appui bouton initialisation sér
self.envoiGCode(gcode) # envoie le GCode vers machine avec attente des réponses
def pushButton_X_MOINS_DIX_Clicked(self): # lors appui bouton initialisation série
- print("Bouton X-10 cliqué")
+ print(u"Bouton X-10 cliqué")
gcode=(
"""G91
@@ -125,7 +138,7 @@ def pushButton_X_MOINS_DIX_Clicked(self): # lors appui bouton initialisation sé
self.envoiGCode(gcode) # envoie le GCode vers machine avec attente des réponses
def pushButton_HOME_X_Clicked(self): # lors appui bouton initialisation série
- print("Bouton HOME X cliqué")
+ print(u"Bouton HOME X cliqué")
gcode=(
"""G28 X0
@@ -135,7 +148,7 @@ def pushButton_HOME_X_Clicked(self): # lors appui bouton initialisation série
# -- Y
def pushButton_Y_PLUS_UN_Clicked(self): # lors appui bouton initialisation série
- print("Bouton Y+1 cliqué")
+ print(u"Bouton Y+1 cliqué")
gcode=(
"""G91
@@ -146,7 +159,7 @@ def pushButton_Y_PLUS_UN_Clicked(self): # lors appui bouton initialisation séri
self.envoiGCode(gcode) # envoie le GCode vers machine avec attente des réponses
def pushButton_Y_PLUS_DIX_Clicked(self): # lors appui bouton initialisation série
- print("Bouton Y+10 cliqué")
+ print(u"Bouton Y+10 cliqué")
gcode=(
"""G91
@@ -157,7 +170,7 @@ def pushButton_Y_PLUS_DIX_Clicked(self): # lors appui bouton initialisation sér
self.envoiGCode(gcode) # envoie le GCode vers machine avec attente des réponses
def pushButton_Y_MOINS_UN_Clicked(self): # lors appui bouton initialisation série
- print("Bouton Y-1 cliqué")
+ print(u"Bouton Y-1 cliqué")
gcode=(
"""G91
@@ -168,7 +181,7 @@ def pushButton_Y_MOINS_UN_Clicked(self): # lors appui bouton initialisation sér
self.envoiGCode(gcode) # envoie le GCode vers machine avec attente des réponses
def pushButton_Y_MOINS_DIX_Clicked(self): # lors appui bouton initialisation série
- print("Bouton Y-10 cliqué")
+ print(u"Bouton Y-10 cliqué")
gcode=(
"""G91
@@ -179,7 +192,7 @@ def pushButton_Y_MOINS_DIX_Clicked(self): # lors appui bouton initialisation sé
self.envoiGCode(gcode) # envoie le GCode vers machine avec attente des réponses
def pushButton_HOME_Y_Clicked(self): # lors appui bouton initialisation série
- print("Bouton HOME Y cliqué")
+ print(u"Bouton HOME Y cliqué")
gcode=(
"""G28 Y0
@@ -189,7 +202,7 @@ def pushButton_HOME_Y_Clicked(self): # lors appui bouton initialisation série
# -- Z
def pushButton_Z_PLUS_ZERO_UN_Clicked(self): # lors appui bouton initialisation série
- print("Bouton Z+0.1 cliqué")
+ print(u"Bouton Z+0.1 cliqué")
gcode=(
"""G91
@@ -200,7 +213,7 @@ def pushButton_Z_PLUS_ZERO_UN_Clicked(self): # lors appui bouton initialisation
self.envoiGCode(gcode) # envoie le GCode vers machine avec attente des réponses
def pushButton_Z_PLUS_UN_Clicked(self): # lors appui bouton initialisation série
- print("Bouton Z+1 cliqué")
+ print(u"Bouton Z+1 cliqué")
gcode=(
"""G91
@@ -211,7 +224,7 @@ def pushButton_Z_PLUS_UN_Clicked(self): # lors appui bouton initialisation séri
self.envoiGCode(gcode) # envoie le GCode vers machine avec attente des réponses
def pushButton_Z_PLUS_DIX_Clicked(self): # lors appui bouton initialisation série
- print("Bouton Z+10 cliqué")
+ print(u"Bouton Z+10 cliqué")
gcode=(
"""G91
@@ -222,7 +235,7 @@ def pushButton_Z_PLUS_DIX_Clicked(self): # lors appui bouton initialisation sér
self.envoiGCode(gcode) # envoie le GCode vers machine avec attente des réponses
def pushButton_Z_MOINS_ZERO_UN_Clicked(self): # lors appui bouton initialisation série
- print("Bouton Z-0.1 cliqué")
+ print(u"Bouton Z-0.1 cliqué")
gcode=(
"""G91
@@ -233,7 +246,7 @@ def pushButton_Z_MOINS_ZERO_UN_Clicked(self): # lors appui bouton initialisation
self.envoiGCode(gcode) # envoie le GCode vers machine avec attente des réponses
def pushButton_Z_MOINS_UN_Clicked(self): # lors appui bouton initialisation série
- print("Bouton Z-1 cliqué")
+ print(u"Bouton Z-1 cliqué")
gcode=(
"""G91
@@ -244,7 +257,7 @@ def pushButton_Z_MOINS_UN_Clicked(self): # lors appui bouton initialisation sér
self.envoiGCode(gcode) # envoie le GCode vers machine avec attente des réponses
def pushButton_Z_MOINS_DIX_Clicked(self): # lors appui bouton initialisation série
- print("Bouton Z-10 cliqué")
+ print(u"Bouton Z-10 cliqué")
gcode=(
"""G91
@@ -254,8 +267,9 @@ def pushButton_Z_MOINS_DIX_Clicked(self): # lors appui bouton initialisation sé
self.envoiGCode(gcode) # envoie le GCode vers machine avec attente des réponses
+ #-- home Z
def pushButton_HOME_Z_Clicked(self): # lors appui bouton initialisation série
- print("Bouton HOME Z cliqué")
+ print(u"Bouton HOME Z cliqué")
gcode=(
"""G28 Z0
@@ -263,18 +277,97 @@ def pushButton_HOME_Z_Clicked(self): # lors appui bouton initialisation série
self.envoiGCode(gcode) # envoie le GCode vers machine avec attente des réponses
+ #-- RAZ X
+ def pushButton_RAZ_X_Clicked(self): # lors appui bouton initialisation série
+ print(u"Bouton RAZ X cliqué")
+
+ gcode=(
+"""G92 X0
+""")
+
+ self.envoiGCode(gcode) # envoie le GCode vers machine avec attente des réponses
+
+ #-- RAZ X
+ def pushButton_RAZ_Y_Clicked(self): # lors appui bouton initialisation série
+ print(u"Bouton RAZ Y cliqué")
+
+ gcode=(
+"""G92 Y0
+""")
+
+ self.envoiGCode(gcode) # envoie le GCode vers machine avec attente des réponses
+
+ #-- RAZ Z
def pushButton_RAZ_Z_Clicked(self): # lors appui bouton initialisation série
- print("Bouton RAZ Z cliqué")
+ print(u"Bouton RAZ Z cliqué")
gcode=(
"""G92 Z0
+""")
+
+ self.envoiGCode(gcode) # envoie le GCode vers machine avec attente des réponses
+
+ #-- GOTO ZERO X
+ def pushButton_X_GOTO_ZERO_Clicked(self): # lors appui bouton initialisation série
+ print(u"Bouton GOTO XO cliqué")
+
+ gcode=(
+"""G01 X0
+""")
+
+ self.envoiGCode(gcode) # envoie le GCode vers machine avec attente des réponses
+
+ #-- GOTO ZERO Y
+ def pushButton_Y_GOTO_ZERO_Clicked(self): # lors appui bouton initialisation série
+ print(u"Bouton GOTO Y0 cliqué")
+
+ gcode=(
+"""G01 Y0
+""")
+
+ self.envoiGCode(gcode) # envoie le GCode vers machine avec attente des réponses
+
+ #-- GOTO ZERO Z
+ def pushButton_Z_GOTO_ZERO_Clicked(self): # lors appui bouton
+ print(u"Bouton GOTO Z0 cliqué")
+
+ gcode=(
+"""G01 Z0
+""")
+
+ self.envoiGCode(gcode) # envoie le GCode vers machine avec attente des réponses
+
+ #-- Slider SET SPEED
+ def horizontalSlider_SET_SPEED_ValueChanged(self, valeur): # fonction appelée si changement valeur slider - reçoit la valeur courante
+ print(u"Slider modifié : valeur = " + str(valeur))
+
+ def horizontalSlider_SET_SPEED_Released(self): # fonction appelée si changement souris relâchée
+ print(u"Slider : clic souris relaché")
+ print(u"Valeur = " + str(self.horizontalSlider_SET_SPEED.value()))
+
+ speed=self.horizontalSlider_SET_SPEED.value() # récupère valeur courante slider
+
+ gcode=(
+"""G01 F"""+str(speed)+"""
+""")
+
+ self.envoiGCode(gcode) # envoie le GCode vers machine avec attente des réponses
+
+ #-- pushbutton SET SPEED
+ def pushButton_SET_SPEED_Clicked(self): # lors appui bouton
+ print(u"Bouton SET SPEED cliqué")
+
+ speed=self.horizontalSlider_SET_SPEED.value() # récupère valeur courante slider
+
+ gcode=(
+"""G01 F"""+str(speed)+"""
""")
self.envoiGCode(gcode) # envoie le GCode vers machine avec attente des réponses
#----- les fonctions des signaux des boutons du Terminal série ----
def pushButtonInitSerialClicked(self): # lors appui bouton initialisation série
- print("Bouton Init cliqué")
+ print(u"Bouton Init cliqué")
if self.serialPort: # si le port existe déjà
self.serialPort.close() # ferme le port si existe
@@ -292,14 +385,14 @@ def pushButtonInitSerialClicked(self): # lors appui bouton initialisation série
self.serialPort=serial.Serial(strPortInit, strDebitInit, serial.EIGHTBITS, serial.PARITY_NONE, serial.STOPBITS_ONE, timeout=0.1)
#self.serialPort=serial.Serial(strPortInit, strDebitInit) # initialise port serie forme réduite
self.serialPort.flushInput() # vide la file d'attente série
- print("Initialisation Port Série : " + strPortInit +" @ " + strDebitInit +" = OK ") # affiche debug
+ print(u"Initialisation Port Série : " + strPortInit +" @ " + strDebitInit +" = OK ") # affiche debug
#-- change aspect bouton init
self.pushButtonInitSerial.setStyleSheet(QString.fromUtf8("background-color: rgb(0, 255, 0);")) # bouton en vert
self.pushButtonInitSerial.setText("OK") # change titre bouton
except: # si erreur initialisation
- print("Erreur initialisation Série")
+ print(u"Erreur initialisation Série")
#-- change aspect bouton init
self.pushButtonInitSerial.setStyleSheet(QString.fromUtf8("background-color: rgb(255, 127, 0);")) # bouton en orange
@@ -309,7 +402,7 @@ def pushButtonInitSerialClicked(self): # lors appui bouton initialisation série
self.timerSerial.start(self.spinBoxDelaiReception.value()) # lance le timer avec délai en ms avec valeur spinbox
def pushButtonEnvoiClicked(self): # lors appui bouton envoi série du champ du Terminal Série
- print("Bouton ENVOI appuyé")
+ print(u"Bouton ENVOI appuyé")
self.envoiChaineSerie(str(self.lineEditChaineEnvoi.text())) # envoi le contenu du champ texte sur le port série
#----- fonction de classe commune d'envoi d'une chaîne sur le port série ----
@@ -323,22 +416,22 @@ def envoiChaineSerie(self, chaineIn): # la fonction reçoit un objet chaîne Str
if self.comboBoxFinLigne.currentIndex()==0: # si rien sélectionné
# self.serialPort.write(str(self.lineEditChaineEnvoi.text())+'\n' ) # envoie la chaine sur le port serie
self.serialPort.write(chaineIn) # envoie la chaine sur le port serie - variante ascii
- print("Envoi Série : " + chaineIn )
+ print(u"Envoi Série : " + chaineIn )
self.textEditTraceEnvoiSerie.append(chaineIn) # ajoute texteEdit de visualisation
if self.comboBoxFinLigne.currentIndex()==1: # si saut de ligne sélectionné
self.serialPort.write(chaineIn +chr(10) ) # envoie la chaine sur le port serie - variante ascii
- print("Envoi Série : " + chaineIn + '\n')
+ print(u"Envoi Série : " + chaineIn + '\n')
self.textEditTraceEnvoiSerie.append(chaineIn) # ajoute texteEdit de visualisation
if self.comboBoxFinLigne.currentIndex()==2: # si retour chariot sélectionné
self.serialPort.write(chaineIn+chr(13) ) # envoie la chaine sur le port serie - variante ascii
- print("Envoi Série : " + chaineIn + '\r')
+ print(u"Envoi Série : " + chaineIn + '\r')
self.textEditTraceEnvoiSerie.append(chaineIn) # ajoute texteEdit de visualisation
if self.comboBoxFinLigne.currentIndex()==3: # si saut de ligne + retour chariot sélectionné
self.serialPort.write(chaineIn+chr(10)+chr(13) ) # envoie la chaine sur le port serie - variante ascii
- print("Envoi Série : " + chaineIn + '\n'+'\r')
+ print(u"Envoi Série : " + chaineIn + '\n'+'\r')
self.textEditTraceEnvoiSerie.append(chaineIn) # ajoute texteEdit de visualisation
self.timerSerial.start(self.spinBoxDelaiReception.value()) # lance le timer avec délai en ms avec valeur spinbox
@@ -370,7 +463,7 @@ def envoiGCode(self, gcodeIn):
self.serialPort.write(line+"\n") # envoie la chaine sur le port serie
- print "envoi ligne : " + line
+ print u"envoi ligne : " + line
# lecture des données reçues
@@ -434,7 +527,7 @@ def envoiGCode(self, gcodeIn):
#-- fonction gestion clicked pushButton Stop
def pushButtonStopClicked(self):
- print("Bouton Stop cliqué")
+ print(u"Bouton Stop cliqué")
#-- stoppe la réception série --
if self.serialPort: # si le port existe déjà
@@ -462,7 +555,7 @@ def timerSerialEvent(self): # fonction appelée lors de la survenue d'un évène
#self.chaineIn=self.chaineIn+self.char # forme minimale...
if self.char=='\n': # si saut de ligne, on sort du while
- print("saut ligne reçu") # debug
+ print(u"saut ligne reçu") # debug
break # sort du while
else: #tant que c'est pas le saut de ligne, on l'ajoute à la chaine
self.chaineIn=self.chaineIn+self.char
@@ -527,7 +620,7 @@ def testInstructionString (self, chaineTestIn, chaineRefIn, debugIn):
if chaineRefIn[0:posRef]==chaineTestIn : # si reçoit l'instruction chaineTest(
- if (debugIn): print("Racine reconnue : "+str(chaineTestIn))
+ if (debugIn): print(u"Racine reconnue : "+str(chaineTestIn))
paramString=chaineRefIn[posRef:len(chaineRefIn)-1] # extrait la chaine de caractere recue en parametre
if (debugIn): print(paramString) # affiche la chaine de caractere
@@ -622,7 +715,7 @@ def analyseChaine(self, chaineIn, chaineRacineIn): # fonction reçoit chaine à
#========== fonctions des signaux pour la gestion du fichier ====================
def pushButtonOuvrirClicked(self):
- print("Bouton appuyé")
+ print(u"Bouton appuyé")
# ouvre fichier en tenant compte du chemin déjà saisi dans le champ
if self.lineEditChemin.text()=="":
@@ -661,7 +754,7 @@ def pushButtonOuvrirClicked(self):
# -- fin def pushButtonOuvrirClicked
def pushButtonNouveauClicked(self):
- print("Bouton NOUVEAU appuyé")
+ print(u"Bouton NOUVEAU appuyé")
# ouvre fichier en tenant compte du chemin déjà saisi dans le champ
if self.lineEditChemin.text()=="":
@@ -692,7 +785,7 @@ def pushButtonNouveauClicked(self):
def pushButtonEnregistrerClicked(self):
- print("Bouton appuyé")
+ print(u"Bouton appuyé")
if self.lineEditChemin.text()!="":
#self.myFile = open(self.filename, 'a') # ouverture du fichier en mode écriture append
@@ -703,7 +796,7 @@ def pushButtonEnregistrerClicked(self):
self.myFile.close() # ferme le fichier
def pushButtonEnvoiGCodeClicked(self):
- print("Bouton appuyé")
+ print(u"Bouton appuyé")
gcode=str(self.textEdit.toPlainText())
@@ -806,20 +899,20 @@ def pushButtonEnvoiGCodeClicked(self):
#--- fonctions stop envoi GCode ----
def pushButtonStopGCodeClicked(self):
self.stopGCode=True # active sortie GCode
- print "stop GCode"
+ print u"stop GCode"
#--- fonctions gestion envoi GCode ----
def pushButtonPassGCodeClicked(self):
self.flagOK=True # active flag reception OK
- print "pass GCode"
+ print u"pass GCode"
#====== gestion signaux repertoire ==========
def pushButtonOuvrirRepClicked(self):
- print("Bouton appuyé")
+ print(u"Bouton appuyé")
#self.filename=QFileDialog.getOpenFileName(self, 'Ouvrir fichier', os.getenv('HOME')) # ouvre l'interface fichier - home par défaut
#self.filename=QFileDialog.getOpenFileName(self, 'Ouvrir fichier', QDir.currentPath()) # ouvre l'interface fichier - chemin courant par défaut
@@ -930,4 +1023,3 @@ def main(args):
-