Commit 82aa15be authored by Kliment Yanev's avatar Kliment Yanev

Merge branch 'master' of github.com:kliment/Printrun

parents db0b48ce 42c00fca
import printcore,time,sys,os
def dosify(name):
return os.path.split(name)[1].split(".")[0][:8]+".g"
def blupload(printer,filename,path):
printer.send_now("M28 "+dosify(filename))
printer.startprint([i.replace("\n","") for i in open(path)])
try:
sys.stdout.write("Progress: 00.0%")
sys.stdout.flush()
while(printer.printing):
time.sleep(1)
sys.stdout.write("\b\b\b\b%02.1f%%" % (100*float(printer.queueindex)/len(printer.mainqueue),) )
sys.stdout.flush()
printer.send_now("M29 "+dosify(filename))
print "Done uploading, disconnecting with a 5 second timeout in case the printer has something important to say."
printer.disconnect()
time.sleep(5)
print "Upload complete. Goodbye!"
except:
print "Abort, disconnecting with a 5 second timeout in case the printer has something important to say."
printer.disconnect()
if __name__ == '__main__':
#print "Usage: python blupload.py filename.gcode"
filename="../prusamendel/sellsx_export.gcode"
tfilename=filename
if len(sys.argv)>1:
filename=sys.argv[1]
tfilename=os.path.basename(sys.argv[1])
print "Uploading: "+filename," as "+dosify(tfilename)
p=printcore.printcore('/dev/ttyUSB0',115200)
p.loud=False
time.sleep(2)
blupload(p,tfilename,filename)
else:
print "Usage: python blupload.py filename.gcode"
...@@ -5,339 +5,237 @@ ...@@ -5,339 +5,237 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Pronterface jm1\n" "Project-Id-Version: Pronterface jm1\n"
"POT-Creation-Date: 2011-09-06 16:31+0100\n" "POT-Creation-Date: 2011-08-06 13:27+PDT\n"
"PO-Revision-Date: 2011-09-06 16:32+0100\n" "PO-Revision-Date: 2011-11-16 16:53+0100\n"
"Last-Translator: Cyril Laguilhon-Debat <c.laguilhon.debat@gmail.com>\n" "Last-Translator: Cyril Laguilhon-Debat <c.laguilhon.debat@gmail.com>\n"
"Language-Team: FR <c.laguilhon.debat@gmail.com>\n" "Language-Team: FR <c.laguilhon.debat@gmail.com>\n"
"Language: \n" "Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Generated-By: pygettext.py 1.5\n" "Generated-By: pygettext.py 1.5\n"
#: pronterface.py:10 #: pronterface.py:15
msgid "WX is not installed. This program requires WX to run." msgid "WX is not installed. This program requires WX to run."
msgstr "wxWidgets n'est pas installé. Ce programme nécessite la librairie wxWidgets pour fonctionner." msgstr "wxWidgets n'est pas installé. Ce programme nécessite la librairie wxWidgets pour fonctionner."
#: pronterface.py:60 #: pronterface.py:67
msgid "Printer Interface" msgid "Printer Interface"
msgstr "Interface imprimante" msgstr "Interface imprimante"
#: pronterface.py:72
msgid "X+100"
msgstr ""
#: pronterface.py:73
msgid "X+10"
msgstr ""
#: pronterface.py:74
msgid "X+1"
msgstr ""
#: pronterface.py:75
msgid "X+0.1"
msgstr ""
#: pronterface.py:76
msgid "HomeX"
msgstr "Origine X"
#: pronterface.py:77
msgid "X-0.1"
msgstr ""
#: pronterface.py:78
msgid "X-1"
msgstr ""
#: pronterface.py:79
msgid "X-10"
msgstr ""
#: pronterface.py:80 #: pronterface.py:80
msgid "X-100"
msgstr ""
#: pronterface.py:81
msgid "Y+100"
msgstr ""
#: pronterface.py:82
msgid "Y+10"
msgstr ""
#: pronterface.py:83
msgid "Y+1"
msgstr ""
#: pronterface.py:84
msgid "Y+0.1"
msgstr ""
#: pronterface.py:85
msgid "HomeY"
msgstr "Origine Y"
#: pronterface.py:86
msgid "Y-0.1"
msgstr ""
#: pronterface.py:87
msgid "Y-1"
msgstr ""
#: pronterface.py:88
msgid "Y-10"
msgstr ""
#: pronterface.py:89
msgid "Y-100"
msgstr ""
#: pronterface.py:90
msgid "Motors off" msgid "Motors off"
msgstr "Arrêter les moteurs" msgstr "Arrêter les moteurs"
#: pronterface.py:91 #: pronterface.py:81
msgid "Z+10"
msgstr ""
#: pronterface.py:92
msgid "Z+1"
msgstr ""
#: pronterface.py:93
msgid "Z+0.1"
msgstr ""
#: pronterface.py:94
msgid "HomeZ"
msgstr "Origine Z"
#: pronterface.py:95
msgid "Z-0.1"
msgstr ""
#: pronterface.py:96
msgid "Z-1"
msgstr ""
#: pronterface.py:97
msgid "Z-10"
msgstr ""
#: pronterface.py:98
msgid "Home"
msgstr "Origine"
#: pronterface.py:99
msgid "Check temp" msgid "Check temp"
msgstr "Lire les températures" msgstr "Lire les températures"
#: pronterface.py:100 #: pronterface.py:82
msgid "Extrude" msgid "Extrude"
msgstr "Extruder" msgstr "Extruder"
#: pronterface.py:101 #: pronterface.py:83
msgid "Reverse" msgid "Reverse"
msgstr "Inverser" msgstr "Inverser"
#: pronterface.py:117 #: pronterface.py:99
msgid "" msgid ""
"# I moved all your custom buttons into .pronsolerc.\n" "# I moved all your custom buttons into .pronsolerc.\n"
"# Please don't add them here any more.\n" "# Please don't add them here any more.\n"
"# Backup of your old buttons is in custombtn.old\n" "# Backup of your old buttons is in custombtn.old\n"
msgstr "" msgstr ""
"# I moved all your custom buttons into .pronsolerc.\n"
"# Please don't add them here any more.\n"
"# Backup of your old buttons is in custombtn.old\n"
#: pronterface.py:122 #: pronterface.py:104
msgid "Note!!! You have specified custom buttons in both custombtn.txt and .pronsolerc" msgid "Note!!! You have specified custom buttons in both custombtn.txt and .pronsolerc"
msgstr "Remarque! Vous avez spécifié des boutons personnalisés dans custombtn.txt et aussi dans .pronsolerc" msgstr "Remarque! Vous avez spécifié des boutons personnalisés dans custombtn.txt et aussi dans .pronsolerc"
#: pronterface.py:123 #: pronterface.py:105
msgid "Ignoring custombtn.txt. Remove all current buttons to revert to custombtn.txt" msgid "Ignoring custombtn.txt. Remove all current buttons to revert to custombtn.txt"
msgstr "Ignorant custombtn.txt. Retirez tous les boutons en cours pour revenir à custombtn.txt" msgstr "Ignorant custombtn.txt. Retirez tous les boutons en cours pour revenir à custombtn.txt"
#: pronterface.py:146 #: pronterface.py:130
#: pronterface.py:434 #: pronterface.py:476
#: pronterface.py:971 #: pronterface.py:1228
#: pronterface.py:1020 #: pronterface.py:1279
#: pronterface.py:1134 #: pronterface.py:1396
#: pronterface.py:1161 #: pronterface.py:1428
#: pronterface.py:1175 #: pronterface.py:1443
msgid "Print" msgid "Print"
msgstr "Imprimer" msgstr "Imprimer"
#: pronterface.py:150 #: pronterface.py:134
msgid "Printer is now online" msgid "Printer is now online."
msgstr "L'imprimante est connectée" msgstr "L'imprimante est connectée"
#: pronterface.py:199 #: pronterface.py:188
msgid "Setting hotend temperature to " msgid "Setting hotend temperature to "
msgstr "Réglage de la température de la buse à" msgstr "Réglage de la température de la buse à"
#: pronterface.py:199 #: pronterface.py:188
#: pronterface.py:220 #: pronterface.py:224
msgid " degrees Celsius." msgid " degrees Celsius."
msgstr " degrés Celsius." msgstr " degrés Celsius."
#: pronterface.py:203 #: pronterface.py:207
#: pronterface.py:224 #: pronterface.py:242
msgid "Printer is not online." msgid "Printer is not online."
msgstr "L'imprimante est déconnectée" msgstr "L'imprimante est déconnectée"
#: pronterface.py:205 #: pronterface.py:209
msgid "You cannot set negative temperatures. To turn the hotend off entirely, set its temperature to 0." msgid "You cannot set negative temperatures. To turn the hotend off entirely, set its temperature to 0."
msgstr "Vous ne pouvez pas régler une température négative.Pour éteindre le chauffage de la buse, réglez sa température à 0°c." msgstr "Vous ne pouvez pas régler une température négative.Pour éteindre le chauffage de la buse, réglez sa température à 0°c."
#: pronterface.py:207 #: pronterface.py:224
#: pronterface.py:228
msgid "You must enter a temperature."
msgstr "Vous devez saisir une température."
#: pronterface.py:220
msgid "Setting bed temperature to " msgid "Setting bed temperature to "
msgstr "Réglage de la température du plateau à " msgstr "Réglage de la température du plateau à "
#: pronterface.py:226 #: pronterface.py:244
msgid "You cannot set negative temperatures. To turn the bed off entirely, set its temperature to 0." msgid "You cannot set negative temperatures. To turn the bed off entirely, set its temperature to 0."
msgstr "Vous ne pouvez pas régler une température négative. Pour désactiver votre plateau chauffant, réglez sa température à 0°c." msgstr "Vous ne pouvez pas régler une température négative. Pour désactiver votre plateau chauffant, réglez sa température à 0°c."
#: pronterface.py:243 #: pronterface.py:246
msgid "You must enter a temperature."
msgstr "Vous devez saisir une température."
#: pronterface.py:261
msgid "Do you want to erase the macro?" msgid "Do you want to erase the macro?"
msgstr "Voulez-vous effacer la macro ?" msgstr "Voulez-vous effacer la macro ?"
#: pronterface.py:247 #: pronterface.py:265
msgid "Cancelled." msgid "Cancelled."
msgstr "Annulé" msgstr "Annulé"
#: pronterface.py:277 #: pronterface.py:295
msgid " Opens file"
msgstr " Ouvrir un fichier"
#: pronterface.py:295
msgid "&Open..." msgid "&Open..."
msgstr "&Ouvrir..." msgstr "&Ouvrir..."
#: pronterface.py:277 #: pronterface.py:296
msgid " Opens file" msgid " Edit open file"
msgstr " Ouvrir un fichier" msgstr " Éditer le fichier ouvert"
#: pronterface.py:278 #: pronterface.py:296
msgid "&Edit..." msgid "&Edit..."
msgstr "&Éditer..." msgstr "&Éditer..."
#: pronterface.py:278 #: pronterface.py:297
msgid " Edit open file" msgid " Clear output console"
msgstr " Éditer le fichier ouvert" msgstr "Effacer le contenu de la console de sortie"
#: pronterface.py:279 #: pronterface.py:297
msgid "E&xit" msgid "Clear console"
msgstr "&Quitter" msgstr "Effacer la console"
#: pronterface.py:279 #: pronterface.py:298
msgid " Closes the Window" msgid " Closes the Window"
msgstr " Quitter le programme" msgstr " Quitter le programme"
#: pronterface.py:280 #: pronterface.py:298
msgid "E&xit"
msgstr "&Quitter"
#: pronterface.py:299
msgid "&File" msgid "&File"
msgstr "&Fichier" msgstr "&Fichier"
#: pronterface.py:284 #: pronterface.py:304
msgid "Clear console"
msgstr "Effacer la console"
#: pronterface.py:284
msgid " Clear output console"
msgstr "Effacer le contenu de la console de sortie"
#: pronterface.py:285
msgid "&Macros" msgid "&Macros"
msgstr "&Macros" msgstr "&Macros"
#: pronterface.py:286 #: pronterface.py:305
msgid "<&New...>" msgid "<&New...>"
msgstr "<&Nouvelle...>" msgstr "<&Nouvelle...>"
#: pronterface.py:287 #: pronterface.py:306
msgid "&Options"
msgstr "&Options"
#: pronterface.py:287
msgid " Options dialog" msgid " Options dialog"
msgstr " Fenêtre des options" msgstr " Fenêtre des options"
#: pronterface.py:289 #: pronterface.py:306
msgid "SFACT Settings" msgid "&Options"
msgstr "Paramètres &SFACT..." msgstr "&Options"
#: pronterface.py:289 #: pronterface.py:308
msgid " Adjust SFACT settings" msgid " Adjust SFACT settings"
msgstr " Régler les paramètres SFACT" msgstr " Régler les paramètres SFACT"
#: pronterface.py:292 #: pronterface.py:308
msgid "SFACT Quick Settings" msgid "SFACT Settings"
msgstr "Réglages rapides SFACT" msgstr "Paramètres &SFACT..."
#: pronterface.py:292 #: pronterface.py:311
msgid " Quickly adjust SFACT settings for active profile" msgid " Quickly adjust SFACT settings for active profile"
msgstr " Réglages rapides des paramètres SFACT pour le profil actif." msgstr " Réglages rapides des paramètres SFACT pour le profil actif."
#: pronterface.py:295 #: pronterface.py:311
msgid "SFACT Quick Settings"
msgstr "Réglages rapides SFACT"
#: pronterface.py:315
msgid "&Settings" msgid "&Settings"
msgstr "&Paramètres" msgstr "&Paramètres"
#: pronterface.py:311 #: pronterface.py:331
msgid "Enter macro name" msgid "Enter macro name"
msgstr "Saisissez le nom de la macro" msgstr "Saisissez le nom de la macro"
#: pronterface.py:314 #: pronterface.py:334
msgid "Macro name:" msgid "Macro name:"
msgstr "Nom :" msgstr "Nom :"
#: pronterface.py:317 #: pronterface.py:337
msgid "Ok" msgid "Ok"
msgstr "Valider" msgstr "Valider"
#: pronterface.py:321 #: pronterface.py:341
#: pronterface.py:1197 #: pronterface.py:1465
msgid "Cancel" msgid "Cancel"
msgstr "Annuler" msgstr "Annuler"
#: pronterface.py:339 #: pronterface.py:359
msgid "Name '"
msgstr "Le nom '"
#: pronterface.py:339
msgid "' is being used by built-in command" msgid "' is being used by built-in command"
msgstr "' est utilisé par des commandes internes." msgstr "' est utilisé par des commandes internes."
#: pronterface.py:342 #: pronterface.py:359
msgid "Name '"
msgstr "Le nom '"
#: pronterface.py:362
msgid "Macro name may contain only alphanumeric symbols and underscores" msgid "Macro name may contain only alphanumeric symbols and underscores"
msgstr "Un nom de macro ne peut contenir que des caractères alphanumérique et des underscore (_)" msgstr "Un nom de macro ne peut contenir que des caractères alphanumérique et des underscore (_)"
#: pronterface.py:375 #: pronterface.py:411
msgid "Port:" msgid "Port"
msgstr "Port :" msgstr "Port :"
#: pronterface.py:397 #: pronterface.py:430
msgid "Connect" msgid "Connect"
msgstr "Connecter" msgstr "Connecter"
#: pronterface.py:399 #: pronterface.py:432
msgid "Connect to the printer" msgid "Connect to the printer"
msgstr "Connecter l'imprimante" msgstr "Connecter l'imprimante"
#: pronterface.py:401 #: pronterface.py:434
msgid "Disconnect" msgid "Disconnect"
msgstr "Déconnecter" msgstr "Déconnecter"
#: pronterface.py:405 #: pronterface.py:438
msgid "Reset" msgid "Reset"
msgstr "Réinitialiser" msgstr "Réinitialiser"
#: pronterface.py:408 #: pronterface.py:441
#: pronterface.py:592 #: pronterface.py:687
msgid "Mini mode" msgid "Mini mode"
msgstr "Mode réduit" msgstr "Mode réduit"
#: pronterface.py:414 #: pronterface.py:455
msgid "" msgid ""
"Monitor\n" "Monitor\n"
"printer" "printer"
...@@ -345,181 +243,189 @@ msgstr "" ...@@ -345,181 +243,189 @@ msgstr ""
"Surveiller\n" "Surveiller\n"
"l'imprimante" "l'imprimante"
#: pronterface.py:423 #: pronterface.py:465
msgid "Load file" msgid "Load file"
msgstr "Charger un fichier" msgstr "Charger un fichier"
#: pronterface.py:426 #: pronterface.py:468
msgid "SD Upload" msgid "SD Upload"
msgstr "Copier sur SD" msgstr "Copier sur SD"
#: pronterface.py:430 #: pronterface.py:472
msgid "SD Print" msgid "SD Print"
msgstr "Imprimer depuis SD" msgstr "Imprimer depuis SD"
#: pronterface.py:438 #: pronterface.py:480
#: pronterface.py:1021 #: pronterface.py:1280
#: pronterface.py:1061 #: pronterface.py:1321
#: pronterface.py:1109 #: pronterface.py:1370
#: pronterface.py:1133 #: pronterface.py:1395
#: pronterface.py:1160 #: pronterface.py:1427
#: pronterface.py:1174 #: pronterface.py:1442
msgid "Pause" msgid "Pause"
msgstr "Pause" msgstr "Pause"
#: pronterface.py:458 #: pronterface.py:494
msgid "Send" msgid "Send"
msgstr "Envoyer" msgstr "Envoyer"
#: pronterface.py:460 #: pronterface.py:502
#: pronterface.py:518 #: pronterface.py:603
msgid "mm/min" msgid "mm/min"
msgstr "mm/min" msgstr "mm/min"
#: pronterface.py:462 #: pronterface.py:504
msgid "XY:" msgid "XY:"
msgstr "" msgstr "XY:"
#: pronterface.py:464 #: pronterface.py:506
msgid "Z:" msgid "Z:"
msgstr "" msgstr "Z:"
#: pronterface.py:481 #: pronterface.py:529
msgid "Heater:" msgid "Heater:"
msgstr "Buse :" msgstr "Buse :"
#: pronterface.py:489 #: pronterface.py:532
#: pronterface.py:501 #: pronterface.py:552
msgid "Off"
msgstr "Off"
#: pronterface.py:544
#: pronterface.py:564
msgid "Set" msgid "Set"
msgstr "Régler" msgstr "Régler"
#: pronterface.py:493 #: pronterface.py:549
msgid "Bed:" msgid "Bed:"
msgstr "Plateau :" msgstr "Plateau :"
#: pronterface.py:512 #: pronterface.py:597
msgid "mm" msgid "mm"
msgstr "mm" msgstr "mm"
#: pronterface.py:551 #: pronterface.py:636
#: pronterface.py:846 #: pronterface.py:1099
#: pronterface.py:1055 #: pronterface.py:1315
msgid "Not connected to printer." msgid "Not connected to printer."
msgstr "Imprimante non connectée" msgstr "Imprimante non connectée"
#: pronterface.py:599 #: pronterface.py:694
msgid "Full mode" msgid "Full mode"
msgstr "Mode complet" msgstr "Mode complet"
#: pronterface.py:637 #: pronterface.py:719
msgid "Execute command: "
msgstr "Exécuter la commande :"
#: pronterface.py:730
msgid "click to add new custom button"
msgstr "Ajouter un bouton personnalisé"
#: pronterface.py:751
msgid "Defines custom button. Usage: button <num> \"title\" [/c \"colour\"] command" msgid "Defines custom button. Usage: button <num> \"title\" [/c \"colour\"] command"
msgstr "Définit des boutons personnalidés. Utilisation : <numero> \"Libelle\" [/c \"couleur\"] commande" msgstr "Définit des boutons personnalidés. Utilisation : <numero> \"Libelle\" [/c \"couleur\"] commande"
#: pronterface.py:659 #: pronterface.py:773
msgid "Custom button number should be between 0 and 63" msgid "Custom button number should be between 0 and 63"
msgstr "Les numéros des boutons personnalisés doivent être compris entre 0 et 63." msgstr "Les numéros des boutons personnalisés doivent être compris entre 0 et 63."
#: pronterface.py:749 #: pronterface.py:865
#, python-format
msgid "Edit custom button '%s'" msgid "Edit custom button '%s'"
msgstr "Editer le bouton personnalisé n°'%s'" msgstr "Editer le bouton personnalisé n°'%s'"
#: pronterface.py:751 #: pronterface.py:867
msgid "Move left <<" msgid "Move left <<"
msgstr "Déplacer vers la gauche <<" msgstr "Déplacer vers la gauche <<"
#: pronterface.py:754 #: pronterface.py:870
msgid "Move right >>" msgid "Move right >>"
msgstr "Déplacer vers la droite >>" msgstr "Déplacer vers la droite >>"
#: pronterface.py:758 #: pronterface.py:874
#, python-format
msgid "Remove custom button '%s'" msgid "Remove custom button '%s'"
msgstr "Supprimer le bouton personnalisé n°'%s'" msgstr "Supprimer le bouton personnalisé n°'%s'"
#: pronterface.py:761 #: pronterface.py:877
msgid "Add custom button" msgid "Add custom button"
msgstr "Ajouter un bouton personnalisé" msgstr "Ajouter un bouton personnalisé"
#: pronterface.py:776 #: pronterface.py:1022
msgid "event object missing" msgid "event object missing"
msgstr "evennement d'objet manquant" msgstr "evennement d'objet manquant"
#: pronterface.py:804 #: pronterface.py:1050
msgid "Invalid period given." msgid "Invalid period given."
msgstr "La période donnée est invalide" msgstr "La période donnée est invalide"
#: pronterface.py:807 #: pronterface.py:1053
msgid "Monitoring printer." msgid "Monitoring printer."
msgstr "Surveillance de l'imprimante" msgstr "Surveillance de l'imprimante"
#: pronterface.py:809 #: pronterface.py:1055
msgid "Done monitoring." msgid "Done monitoring."
msgstr "Surveillance de l'imprimante effectuée." msgstr "Surveillance de l'imprimante effectuée."
#: pronterface.py:828 #: pronterface.py:1077
msgid "Printer is online. " msgid "Printer is online. "
msgstr "L'imprimante est connectée" msgstr "L'imprimante est connectée"
#: pronterface.py:830 #: pronterface.py:1079
#: pronterface.py:969 #: pronterface.py:1226
#: pronterface.py:1019 #: pronterface.py:1278
msgid "Loaded " msgid "Loaded "
msgstr "Chargé " msgstr "Chargé "
#: pronterface.py:833 #: pronterface.py:1082
msgid "Hotend"
msgstr "Buse"
#: pronterface.py:833
msgid "Bed" msgid "Bed"
msgstr "Plateau" msgstr "Plateau"
#: pronterface.py:836 #: pronterface.py:1082
#, python-format msgid "Hotend"
msgstr "Buse"
#: pronterface.py:1089
msgid " SD printing:%04.2f %%" msgid " SD printing:%04.2f %%"
msgstr "Impression SD : %04.2f %%" msgstr "Impression SD : %04.2f %%"
#: pronterface.py:838 #: pronterface.py:1091
#, python-format
msgid " Printing:%04.2f %%" msgid " Printing:%04.2f %%"
msgstr "Impression : %04.2f %%" msgstr "Impression : %04.2f %%"
#: pronterface.py:892 #: pronterface.py:1149
msgid "Opening file failed." msgid "Opening file failed."
msgstr "L'ouverture du fichier a échoué" msgstr "L'ouverture du fichier a échoué"
#: pronterface.py:898 #: pronterface.py:1155
msgid "Starting print" msgid "Starting print"
msgstr "Début de l'impression..." msgstr "Début de l'impression..."
#: pronterface.py:921 #: pronterface.py:1178
msgid "Select the file to print"
msgstr "Sélectionnez le fichier à imprimer :"
#: pronterface.py:921
msgid "Pick SD file" msgid "Pick SD file"
msgstr "Choisir un fichier sur la carte SD" msgstr "Choisir un fichier sur la carte SD"
#: pronterface.py:949 #: pronterface.py:1178
msgid "Select the file to print"
msgstr "Sélectionnez le fichier à imprimer :"
#: pronterface.py:1206
msgid "Skeinforge execution failed." msgid "Skeinforge execution failed."
msgstr "Exécution de Skeinforge échoué" msgstr "Exécution de Skeinforge échoué"
#: pronterface.py:956 #: pronterface.py:1213
msgid "Skeining..." msgid "Skeining..."
msgstr "Skeining..." msgstr "Skeining..."
#: pronterface.py:969 #: pronterface.py:1226
#: pronterface.py:1019 #: pronterface.py:1278
#, python-format
msgid ", %d lines" msgid ", %d lines"
msgstr ", %d lignes" msgstr ", %d lignes"
#: pronterface.py:978 #: pronterface.py:1235
msgid "Skeining " msgid "Skeining "
msgstr "Skeining " msgstr "Skeining "
#: pronterface.py:980 #: pronterface.py:1237
msgid "" msgid ""
"Skeinforge not found. \n" "Skeinforge not found. \n"
"Please copy Skeinforge into a directory named \"skeinforge\" in the same directory as this file." "Please copy Skeinforge into a directory named \"skeinforge\" in the same directory as this file."
...@@ -527,116 +433,140 @@ msgstr "" ...@@ -527,116 +433,140 @@ msgstr ""
"Skeinforge non trouvé. \n" "Skeinforge non trouvé. \n"
"Veuillez copier Skeinforge dans un répertoire nommé \"skeinforge\" placé dans le repertoire du programme." "Veuillez copier Skeinforge dans un répertoire nommé \"skeinforge\" placé dans le repertoire du programme."
#: pronterface.py:999 #: pronterface.py:1256
msgid "Open file to print" msgid "Open file to print"
msgstr "Ouvrir un fichier à imprimer" msgstr "Ouvrir un fichier à imprimer"
#: pronterface.py:1000 #: pronterface.py:1257
msgid "STL and GCODE files (;*.gcode;*.g;*.stl;*.STL;)" msgid "OBJ, STL, and GCODE files (;*.gcode;*.gco;*.g;*.stl;*.STL;*.obj;*.OBJ;)"
msgstr "Fichiers STL et GCODE (;*.gcode;*.g;*.stl;*.STL;)" msgstr "Fichiers OBJ, STL et GCODE (;*.gcode;*.gco;*.g;*.stl;*.STL;*.obj;*.OBJ;)"
#: pronterface.py:1007 #: pronterface.py:1264
msgid "File not found!" msgid "File not found!"
msgstr "Fichier non trouvé" msgstr "Fichier non trouvé"
#: pronterface.py:1029 #: pronterface.py:1288
msgid "mm of filament used in this print\n" msgid "mm of filament used in this print\n"
msgstr "mm de filament utilisés pour cette impression\n" msgstr "mm de filament utilisés pour cette impression\n"
#: pronterface.py:1030 #: pronterface.py:1289
#: pronterface.py:1031
#: pronterface.py:1032
msgid "the print goes from"
msgstr ""
#: pronterface.py:1030
#: pronterface.py:1031
#: pronterface.py:1032
msgid "mm to"
msgstr "mm à"
#: pronterface.py:1030
msgid "" msgid ""
"mm in X\n" "mm in X\n"
"and is" "and is"
msgstr "" msgstr ""
"mm en X\n"
"et mesure"
#: pronterface.py:1030 #: pronterface.py:1289
#: pronterface.py:1031 #: pronterface.py:1290
msgid "mm wide\n" msgid "mm wide\n"
msgstr "" msgstr "mm de large\n"
#: pronterface.py:1031 #: pronterface.py:1289
#: pronterface.py:1290
#: pronterface.py:1291
msgid "mm to"
msgstr "mm à"
#: pronterface.py:1289
#: pronterface.py:1290
#: pronterface.py:1291
msgid "the print goes from"
msgstr "L'impression va de"
#: pronterface.py:1290
msgid "" msgid ""
"mm in Y\n" "mm in Y\n"
"and is" "and is"
msgstr "" msgstr ""
"mm en Y\n"
"et mesure"
#: pronterface.py:1291
msgid "mm high\n"
msgstr "mm de haut\n"
#: pronterface.py:1032 #: pronterface.py:1291
msgid "" msgid ""
"mm in Z\n" "mm in Z\n"
"and is" "and is"
msgstr "" msgstr ""
"mm en Z\n"
"et mesure"
#: pronterface.py:1032 #: pronterface.py:1292
msgid "mm high\n" msgid "Estimated duration (pessimistic): "
msgstr "" msgstr "Durée estimée (pessimiste)"
#: pronterface.py:1052 #: pronterface.py:1312
msgid "No file loaded. Please use load first." msgid "No file loaded. Please use load first."
msgstr "Aucun fichier chargé. Veuillez charger un fichier avant." msgstr "Aucun fichier chargé. Veuillez charger un fichier avant."
#: pronterface.py:1063 #: pronterface.py:1323
msgid "Restart" msgid "Restart"
msgstr "Recommencer" msgstr "Recommencer"
#: pronterface.py:1067 #: pronterface.py:1327
msgid "File upload complete" msgid "File upload complete"
msgstr "Envoi du fichier terminé" msgstr "Envoi du fichier terminé"
#: pronterface.py:1086 #: pronterface.py:1346
msgid "Pick SD filename" msgid "Pick SD filename"
msgstr "Lister les fichiers sur la carte SD" msgstr "Lister les fichiers sur la carte SD"
#: pronterface.py:1102 #: pronterface.py:1353
msgid "Paused."
msgstr "En pause"
#: pronterface.py:1363
msgid "Resume" msgid "Resume"
msgstr "Reprendre" msgstr "Reprendre"
#: pronterface.py:1168 #: pronterface.py:1379
msgid "Connecting..."
msgstr "Connection en cours..."
#: pronterface.py:1410
msgid "Disconnected."
msgstr "Déconnecté"
#: pronterface.py:1435
msgid "Reset."
msgstr "Réinitialiser"
#: pronterface.py:1436
msgid "Are you sure you want to reset the printer?" msgid "Are you sure you want to reset the printer?"
msgstr "Etes-vous sûr de vouloir réinitialiser l'imprimante?" msgstr "Etes-vous sûr de vouloir réinitialiser l'imprimante?"
#: pronterface.py:1168 #: pronterface.py:1436
msgid "Reset?" msgid "Reset?"
msgstr "Réinitialiser ?" msgstr "Réinitialiser ?"
#: pronterface.py:1193 #: pronterface.py:1461
msgid "Save" msgid "Save"
msgstr "Enregistrer" msgstr "Enregistrer"
#: pronterface.py:1248 #: pronterface.py:1519
msgid "Edit settings" msgid "Edit settings"
msgstr "Modifier les paramètres" msgstr "Modifier les paramètres"
#: pronterface.py:1250 #: pronterface.py:1521
msgid "Defaults" msgid "Defaults"
msgstr "Paramètres par défaut" msgstr "Paramètres par défaut"
#: pronterface.py:1272 #: pronterface.py:1543
msgid "Custom button" msgid "Custom button"
msgstr "Commande personnalisée" msgstr "Commande personnalisée"
#: pronterface.py:1280 #: pronterface.py:1551
msgid "Button title" msgid "Button title"
msgstr "Titre du bouton" msgstr "Titre du bouton"
#: pronterface.py:1283 #: pronterface.py:1554
msgid "Command" msgid "Command"
msgstr "Commande" msgstr "Commande"
#: pronterface.py:1292 #: pronterface.py:1563
msgid "Color" msgid "Color"
msgstr "Couleur" msgstr "Couleur"
#~ msgid "&Print"
#~ msgstr "&Imprimer"
...@@ -15,542 +15,523 @@ msgstr "" ...@@ -15,542 +15,523 @@ msgstr ""
"Generated-By: pygettext.py 1.5\n" "Generated-By: pygettext.py 1.5\n"
#: pronterface.py:10 #: pronterface.py:15
msgid "WX is not installed. This program requires WX to run." msgid "WX is not installed. This program requires WX to run."
msgstr "" msgstr ""
#: pronterface.py:55
msgid "Printer Interface"
msgstr ""
#: pronterface.py:67 #: pronterface.py:67
msgid "X+100" msgid "Printer Interface"
msgstr ""
#: pronterface.py:68
msgid "X+10"
msgstr ""
#: pronterface.py:69
msgid "X+1"
msgstr ""
#: pronterface.py:70
msgid "X+0.1"
msgstr ""
#: pronterface.py:71
msgid "HomeX"
msgstr ""
#: pronterface.py:72
msgid "X-0.1"
msgstr ""
#: pronterface.py:73
msgid "X-1"
msgstr ""
#: pronterface.py:74
msgid "X-10"
msgstr ""
#: pronterface.py:75
msgid "X-100"
msgstr ""
#: pronterface.py:76
msgid "Y+100"
msgstr ""
#: pronterface.py:77
msgid "Y+10"
msgstr ""
#: pronterface.py:78
msgid "Y+1"
msgstr ""
#: pronterface.py:79
msgid "Y+0.1"
msgstr "" msgstr ""
#: pronterface.py:80 #: pronterface.py:80
msgid "HomeY"
msgstr ""
#: pronterface.py:81
msgid "Y-0.1"
msgstr ""
#: pronterface.py:82
msgid "Y-1"
msgstr ""
#: pronterface.py:83
msgid "Y-10"
msgstr ""
#: pronterface.py:84
msgid "Y-100"
msgstr ""
#: pronterface.py:85
msgid "Motors off" msgid "Motors off"
msgstr "" msgstr ""
#: pronterface.py:86 #: pronterface.py:81
msgid "Z+10"
msgstr ""
#: pronterface.py:87
msgid "Z+1"
msgstr ""
#: pronterface.py:88
msgid "Z+0.1"
msgstr ""
#: pronterface.py:89
msgid "HomeZ"
msgstr ""
#: pronterface.py:90
msgid "Z-0.1"
msgstr ""
#: pronterface.py:91
msgid "Z-1"
msgstr ""
#: pronterface.py:92
msgid "Z-10"
msgstr ""
#: pronterface.py:93
msgid "Home"
msgstr ""
#: pronterface.py:94
msgid "Check temp" msgid "Check temp"
msgstr "" msgstr ""
#: pronterface.py:95 #: pronterface.py:82
msgid "Extrude" msgid "Extrude"
msgstr "" msgstr ""
#: pronterface.py:96 #: pronterface.py:83
msgid "Reverse" msgid "Reverse"
msgstr "" msgstr ""
#: pronterface.py:112 #: pronterface.py:99
msgid "" msgid ""
"# I moved all your custom buttons into .pronsolerc.\n" "# I moved all your custom buttons into .pronsolerc.\n"
"# Please don't add them here any more.\n" "# Please don't add them here any more.\n"
"# Backup of your old buttons is in custombtn.old\n" "# Backup of your old buttons is in custombtn.old\n"
msgstr "" msgstr ""
#: pronterface.py:117 #: pronterface.py:104
msgid "Note!!! You have specified custom buttons in both custombtn.txt and .pronsolerc" msgid "Note!!! You have specified custom buttons in both custombtn.txt and .pronsolerc"
msgstr "" msgstr ""
#: pronterface.py:118 #: pronterface.py:105
msgid "Ignoring custombtn.txt. Remove all current buttons to revert to custombtn.txt" msgid "Ignoring custombtn.txt. Remove all current buttons to revert to custombtn.txt"
msgstr "" msgstr ""
#: pronterface.py:141 pronterface.py:427 pronterface.py:956 #: pronterface.py:130 pronterface.py:476 pronterface.py:1228
#: pronterface.py:1003 pronterface.py:1113 pronterface.py:1140 #: pronterface.py:1279 pronterface.py:1396 pronterface.py:1428
#: pronterface.py:1154 #: pronterface.py:1443
msgid "Print" msgid "Print"
msgstr "" msgstr ""
#: pronterface.py:145 #: pronterface.py:134
msgid "Printer is now online" msgid "Printer is now online."
msgstr "" msgstr ""
#: pronterface.py:194 #: pronterface.py:188
msgid "Setting hotend temperature to " msgid "Setting hotend temperature to "
msgstr "" msgstr ""
#: pronterface.py:194 pronterface.py:215 #: pronterface.py:188 pronterface.py:224
msgid " degrees Celsius." msgid " degrees Celsius."
msgstr "" msgstr ""
#: pronterface.py:198 pronterface.py:219 #: pronterface.py:207 pronterface.py:242
msgid "Printer is not online." msgid "Printer is not online."
msgstr "" msgstr ""
#: pronterface.py:200 #: pronterface.py:209
msgid "You cannot set negative temperatures. To turn the hotend off entirely, set its temperature to 0." msgid "You cannot set negative temperatures. To turn the hotend off entirely, set its temperature to 0."
msgstr "" msgstr ""
#: pronterface.py:202 pronterface.py:223 #: pronterface.py:224
msgid "You must enter a temperature."
msgstr ""
#: pronterface.py:215
msgid "Setting bed temperature to " msgid "Setting bed temperature to "
msgstr "" msgstr ""
#: pronterface.py:221 #: pronterface.py:244
msgid "You cannot set negative temperatures. To turn the bed off entirely, set its temperature to 0." msgid "You cannot set negative temperatures. To turn the bed off entirely, set its temperature to 0."
msgstr "" msgstr ""
#: pronterface.py:238 #: pronterface.py:246
msgid "You must enter a temperature."
msgstr ""
#: pronterface.py:261
msgid "Do you want to erase the macro?" msgid "Do you want to erase the macro?"
msgstr "" msgstr ""
#: pronterface.py:242 #: pronterface.py:265
msgid "Cancelled." msgid "Cancelled."
msgstr "" msgstr ""
#: pronterface.py:271 #: pronterface.py:295
msgid " Opens file" msgid " Opens file"
msgstr "" msgstr ""
#: pronterface.py:271 #: pronterface.py:295
msgid "&Open..." msgid "&Open..."
msgstr "" msgstr ""
#: pronterface.py:272 #: pronterface.py:296
msgid " Edit open file" msgid " Edit open file"
msgstr "" msgstr ""
#: pronterface.py:272 #: pronterface.py:296
msgid "&Edit..." msgid "&Edit..."
msgstr "" msgstr ""
#: pronterface.py:274 #: pronterface.py:297
msgid " Adjust SFACT settings" msgid " Clear output console"
msgstr ""
#: pronterface.py:274
msgid "SFACT Settings"
msgstr "" msgstr ""
#: pronterface.py:277 #: pronterface.py:297
msgid " Quickly adjust SFACT settings for active profile" msgid "Clear console"
msgstr ""
#: pronterface.py:277
msgid "SFACT Quick Settings"
msgstr "" msgstr ""
#: pronterface.py:281 #: pronterface.py:298
msgid " Closes the Window" msgid " Closes the Window"
msgstr "" msgstr ""
#: pronterface.py:281 #: pronterface.py:298
msgid "E&xit" msgid "E&xit"
msgstr "" msgstr ""
#: pronterface.py:282 #: pronterface.py:299
msgid "&Print" msgid "&File"
msgstr "" msgstr ""
#: pronterface.py:285 #: pronterface.py:304
msgid "&Macros" msgid "&Macros"
msgstr "" msgstr ""
#: pronterface.py:286 #: pronterface.py:305
msgid "<&New...>" msgid "<&New...>"
msgstr "" msgstr ""
#: pronterface.py:287 #: pronterface.py:306
msgid " Options dialog" msgid " Options dialog"
msgstr "" msgstr ""
#: pronterface.py:287 #: pronterface.py:306
msgid "&Options" msgid "&Options"
msgstr "" msgstr ""
#: pronterface.py:288 #: pronterface.py:308
msgid " Adjust SFACT settings"
msgstr ""
#: pronterface.py:308
msgid "SFACT Settings"
msgstr ""
#: pronterface.py:311
msgid " Quickly adjust SFACT settings for active profile"
msgstr ""
#: pronterface.py:311
msgid "SFACT Quick Settings"
msgstr ""
#: pronterface.py:315
msgid "&Settings" msgid "&Settings"
msgstr "" msgstr ""
#: pronterface.py:304 #: pronterface.py:331
msgid "Enter macro name" msgid "Enter macro name"
msgstr "" msgstr ""
#: pronterface.py:307 #: pronterface.py:334
msgid "Macro name:" msgid "Macro name:"
msgstr "" msgstr ""
#: pronterface.py:310 #: pronterface.py:337
msgid "Ok" msgid "Ok"
msgstr "" msgstr ""
#: pronterface.py:314 #: pronterface.py:341 pronterface.py:1465
msgid "Cancel" msgid "Cancel"
msgstr "" msgstr ""
#: pronterface.py:332 #: pronterface.py:359
msgid "' is being used by built-in command" msgid "' is being used by built-in command"
msgstr "" msgstr ""
#: pronterface.py:332 #: pronterface.py:359
msgid "Name '" msgid "Name '"
msgstr "" msgstr ""
#: pronterface.py:368 #: pronterface.py:362
msgid "Port:" msgid "Macro name may contain only alphanumeric symbols and underscores"
msgstr ""
#: pronterface.py:411
msgid "Port"
msgstr "" msgstr ""
#: pronterface.py:390 #: pronterface.py:430
msgid "Connect" msgid "Connect"
msgstr "" msgstr ""
#: pronterface.py:392 #: pronterface.py:432
msgid "Connect to the printer" msgid "Connect to the printer"
msgstr "" msgstr ""
#: pronterface.py:394 #: pronterface.py:434
msgid "Disconnect" msgid "Disconnect"
msgstr "" msgstr ""
#: pronterface.py:398 #: pronterface.py:438
msgid "Reset" msgid "Reset"
msgstr "" msgstr ""
#: pronterface.py:401 pronterface.py:579 #: pronterface.py:441 pronterface.py:687
msgid "Mini mode" msgid "Mini mode"
msgstr "" msgstr ""
#: pronterface.py:407 #: pronterface.py:455
msgid "" msgid ""
"Monitor\n" "Monitor\n"
"printer" "printer"
msgstr "" msgstr ""
#: pronterface.py:416 #: pronterface.py:465
msgid "Load file" msgid "Load file"
msgstr "" msgstr ""
#: pronterface.py:419 #: pronterface.py:468
msgid "SD Upload" msgid "SD Upload"
msgstr "" msgstr ""
#: pronterface.py:423 #: pronterface.py:472
msgid "SD Print" msgid "SD Print"
msgstr "" msgstr ""
#: pronterface.py:431 pronterface.py:1004 pronterface.py:1040 #: pronterface.py:480 pronterface.py:1280 pronterface.py:1321
#: pronterface.py:1088 pronterface.py:1112 pronterface.py:1139 #: pronterface.py:1370 pronterface.py:1395 pronterface.py:1427
#: pronterface.py:1153 #: pronterface.py:1442
msgid "Pause" msgid "Pause"
msgstr "" msgstr ""
#: pronterface.py:445 #: pronterface.py:494
msgid "Send" msgid "Send"
msgstr "" msgstr ""
#: pronterface.py:453 pronterface.py:511 #: pronterface.py:502 pronterface.py:603
msgid "mm/min" msgid "mm/min"
msgstr "" msgstr ""
#: pronterface.py:455 #: pronterface.py:504
msgid "XY:" msgid "XY:"
msgstr "" msgstr ""
#: pronterface.py:457 #: pronterface.py:506
msgid "Z:" msgid "Z:"
msgstr "" msgstr ""
#: pronterface.py:474 #: pronterface.py:529
msgid "Heater:" msgid "Heater:"
msgstr "" msgstr ""
#: pronterface.py:482 pronterface.py:494 #: pronterface.py:532 pronterface.py:552
msgid "Off"
msgstr ""
#: pronterface.py:544 pronterface.py:564
msgid "Set" msgid "Set"
msgstr "" msgstr ""
#: pronterface.py:486 #: pronterface.py:549
msgid "Bed:" msgid "Bed:"
msgstr "" msgstr ""
#: pronterface.py:505 #: pronterface.py:597
msgid "mm" msgid "mm"
msgstr "" msgstr ""
#: pronterface.py:538 pronterface.py:833 pronterface.py:1034 #: pronterface.py:636 pronterface.py:1099 pronterface.py:1315
msgid "Not connected to printer." msgid "Not connected to printer."
msgstr "" msgstr ""
#: pronterface.py:586 #: pronterface.py:694
msgid "Full mode" msgid "Full mode"
msgstr "" msgstr ""
#: pronterface.py:624 #: pronterface.py:719
msgid "Execute command: "
msgstr ""
#: pronterface.py:730
msgid "click to add new custom button"
msgstr ""
#: pronterface.py:751
msgid "Defines custom button. Usage: button <num> \"title\" [/c \"colour\"] command" msgid "Defines custom button. Usage: button <num> \"title\" [/c \"colour\"] command"
msgstr "" msgstr ""
#: pronterface.py:646 #: pronterface.py:773
msgid "Custom button number should be between 0 and 63" msgid "Custom button number should be between 0 and 63"
msgstr "" msgstr ""
#: pronterface.py:736 #: pronterface.py:865
msgid "Edit custom button '%s'" msgid "Edit custom button '%s'"
msgstr "" msgstr ""
#: pronterface.py:738 #: pronterface.py:867
msgid "Move left <<" msgid "Move left <<"
msgstr "" msgstr ""
#: pronterface.py:741 #: pronterface.py:870
msgid "Move right >>" msgid "Move right >>"
msgstr "" msgstr ""
#: pronterface.py:745 #: pronterface.py:874
msgid "Remove custom button '%s'" msgid "Remove custom button '%s'"
msgstr "" msgstr ""
#: pronterface.py:748 #: pronterface.py:877
msgid "Add custom button" msgid "Add custom button"
msgstr "" msgstr ""
#: pronterface.py:763 #: pronterface.py:1022
msgid "event object missing" msgid "event object missing"
msgstr "" msgstr ""
#: pronterface.py:791 #: pronterface.py:1050
msgid "Invalid period given." msgid "Invalid period given."
msgstr "" msgstr ""
#: pronterface.py:794 #: pronterface.py:1053
msgid "Monitoring printer." msgid "Monitoring printer."
msgstr "" msgstr ""
#: pronterface.py:796 #: pronterface.py:1055
msgid "Done monitoring." msgid "Done monitoring."
msgstr "" msgstr ""
#: pronterface.py:815 #: pronterface.py:1077
msgid "Printer is online. " msgid "Printer is online. "
msgstr "" msgstr ""
#: pronterface.py:817 pronterface.py:954 pronterface.py:1002 #: pronterface.py:1079 pronterface.py:1226 pronterface.py:1278
msgid "Loaded " msgid "Loaded "
msgstr "" msgstr ""
#: pronterface.py:820 #: pronterface.py:1082
msgid "Bed" msgid "Bed"
msgstr "" msgstr ""
#: pronterface.py:820 #: pronterface.py:1082
msgid "Hotend" msgid "Hotend"
msgstr "" msgstr ""
#: pronterface.py:823 #: pronterface.py:1089
msgid " SD printing:%04.2f %%" msgid " SD printing:%04.2f %%"
msgstr "" msgstr ""
#: pronterface.py:825 #: pronterface.py:1091
msgid " Printing:%04.2f %%" msgid " Printing:%04.2f %%"
msgstr "" msgstr ""
#: pronterface.py:879 #: pronterface.py:1149
msgid "Opening file failed." msgid "Opening file failed."
msgstr "" msgstr ""
#: pronterface.py:885 #: pronterface.py:1155
msgid "Starting print" msgid "Starting print"
msgstr "" msgstr ""
#: pronterface.py:908 #: pronterface.py:1178
msgid "Pick SD file" msgid "Pick SD file"
msgstr "" msgstr ""
#: pronterface.py:908 #: pronterface.py:1178
msgid "Select the file to print" msgid "Select the file to print"
msgstr "" msgstr ""
#: pronterface.py:936 #: pronterface.py:1206
msgid "Skeinforge execution failed." msgid "Skeinforge execution failed."
msgstr "" msgstr ""
#: pronterface.py:943 #: pronterface.py:1213
msgid "Skeining..." msgid "Skeining..."
msgstr "" msgstr ""
#: pronterface.py:954 pronterface.py:1002 #: pronterface.py:1226 pronterface.py:1278
msgid ", %d lines" msgid ", %d lines"
msgstr "" msgstr ""
#: pronterface.py:963 #: pronterface.py:1235
msgid "Skeining " msgid "Skeining "
msgstr "" msgstr ""
#: pronterface.py:965 #: pronterface.py:1237
msgid "" msgid ""
"Skeinforge not found. \n" "Skeinforge not found. \n"
"Please copy Skeinforge into a directory named \"skeinforge\" in the same directory as this file." "Please copy Skeinforge into a directory named \"skeinforge\" in the same directory as this file."
msgstr "" msgstr ""
#: pronterface.py:984 #: pronterface.py:1256
msgid "Open file to print" msgid "Open file to print"
msgstr "" msgstr ""
#: pronterface.py:985 #: pronterface.py:1257
msgid "STL and GCODE files (;*.gcode;*.g;*.stl;*.STL;)" msgid "OBJ, STL, and GCODE files (;*.gcode;*.gco;*.g;*.stl;*.STL;*.obj;*.OBJ;)"
msgstr "" msgstr ""
#: pronterface.py:992 #: pronterface.py:1264
msgid "File not found!" msgid "File not found!"
msgstr "" msgstr ""
#: pronterface.py:1011 #: pronterface.py:1288
msgid "mm of filament used in this print" msgid ""
"mm of filament used in this print\n"
msgstr ""
#: pronterface.py:1289
msgid ""
"mm in X\n"
"and is"
msgstr ""
#: pronterface.py:1289 pronterface.py:1290
msgid ""
"mm wide\n"
msgstr ""
#: pronterface.py:1289 pronterface.py:1290 pronterface.py:1291
msgid "mm to"
msgstr ""
#: pronterface.py:1289 pronterface.py:1290 pronterface.py:1291
msgid "the print goes from"
msgstr ""
#: pronterface.py:1290
msgid ""
"mm in Y\n"
"and is"
msgstr ""
#: pronterface.py:1291
msgid ""
"mm high\n"
msgstr ""
#: pronterface.py:1291
msgid ""
"mm in Z\n"
"and is"
msgstr "" msgstr ""
#: pronterface.py:1031 #: pronterface.py:1292
msgid "Estimated duration (pessimistic): "
msgstr ""
#: pronterface.py:1312
msgid "No file loaded. Please use load first." msgid "No file loaded. Please use load first."
msgstr "" msgstr ""
#: pronterface.py:1042 #: pronterface.py:1323
msgid "Restart" msgid "Restart"
msgstr "" msgstr ""
#: pronterface.py:1046 #: pronterface.py:1327
msgid "File upload complete" msgid "File upload complete"
msgstr "" msgstr ""
#: pronterface.py:1065 #: pronterface.py:1346
msgid "Pick SD filename" msgid "Pick SD filename"
msgstr "" msgstr ""
#: pronterface.py:1081 #: pronterface.py:1353
msgid "Paused."
msgstr ""
#: pronterface.py:1363
msgid "Resume" msgid "Resume"
msgstr "" msgstr ""
#: pronterface.py:1147 #: pronterface.py:1379
msgid "Connecting..."
msgstr ""
#: pronterface.py:1410
msgid "Disconnected."
msgstr ""
#: pronterface.py:1435
msgid "Reset."
msgstr ""
#: pronterface.py:1436
msgid "Are you sure you want to reset the printer?" msgid "Are you sure you want to reset the printer?"
msgstr "" msgstr ""
#: pronterface.py:1147 #: pronterface.py:1436
msgid "Reset?" msgid "Reset?"
msgstr "" msgstr ""
#: pronterface.py:1226 #: pronterface.py:1461
msgid "Save"
msgstr ""
#: pronterface.py:1519
msgid "Edit settings" msgid "Edit settings"
msgstr "" msgstr ""
#: pronterface.py:1228 #: pronterface.py:1521
msgid "Defaults" msgid "Defaults"
msgstr "" msgstr ""
#: pronterface.py:1250 #: pronterface.py:1543
msgid "Custom button" msgid "Custom button"
msgstr "" msgstr ""
#: pronterface.py:1258 #: pronterface.py:1551
msgid "Button title" msgid "Button title"
msgstr "" msgstr ""
#: pronterface.py:1261 #: pronterface.py:1554
msgid "Command" msgid "Command"
msgstr "" msgstr ""
#: pronterface.py:1270 #: pronterface.py:1563
msgid "Color" msgid "Color"
msgstr "" msgstr ""
...@@ -147,9 +147,9 @@ class Settings: ...@@ -147,9 +147,9 @@ class Settings:
self.port = "" self.port = ""
self.baudrate = 115200 self.baudrate = 115200
self.temperature_pla = 185 self.temperature_pla = 185
self.temperature_abs = 230.0 self.temperature_abs = 230
self.bedtemp_pla = 60.0 self.bedtemp_pla = 60
self.bedtemp_abs = 110.0 self.bedtemp_abs = 110
self.xy_feedrate = 3000 self.xy_feedrate = 3000
self.z_feedrate = 200 self.z_feedrate = 200
self.e_feedrate = 300 self.e_feedrate = 300
......
...@@ -117,6 +117,8 @@ class PronterWindow(wx.Frame,pronsole.pronsole): ...@@ -117,6 +117,8 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
self.starttime=0 self.starttime=0
self.curlayer=0 self.curlayer=0
self.cur_button=None self.cur_button=None
self.hsetpoint=0.0
self.bsetpoint=0.0
def startcb(self): def startcb(self):
self.starttime=time.time() self.starttime=time.time()
...@@ -184,14 +186,29 @@ class PronterWindow(wx.Frame,pronsole.pronsole): ...@@ -184,14 +186,29 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
if self.p.online: if self.p.online:
self.p.send_now("M104 S"+l) self.p.send_now("M104 S"+l)
print _("Setting hotend temperature to "),f,_(" degrees Celsius.") print _("Setting hotend temperature to "),f,_(" degrees Celsius.")
self.htemp.SetValue(l) self.hsetpoint=f
self.set("last_temperature",str(f)) #self.tgauge.SetTarget(int(f))
if f>0:
self.htemp.SetValue(l)
self.set("last_temperature",str(f))
self.settoff.SetBackgroundColour("")
self.settoff.SetForegroundColour("")
self.settbtn.SetBackgroundColour("#FFAA66")
self.settbtn.SetForegroundColour("#660000")
self.htemp.SetBackgroundColour("#FFDABB")
else:
self.settoff.SetBackgroundColour("#0044CC")
self.settoff.SetForegroundColour("white")
self.settbtn.SetBackgroundColour("")
self.settbtn.SetForegroundColour("")
self.htemp.SetBackgroundColour("white")
self.htemp.Refresh()
else: else:
print _("Printer is not online.") print _("Printer is not online.")
else: else:
print _("You cannot set negative temperatures. To turn the hotend off entirely, set its temperature to 0.") print _("You cannot set negative temperatures. To turn the hotend off entirely, set its temperature to 0.")
except: except Exception,x:
print _("You must enter a temperature.") print _("You must enter a temperature. (%s)" % (repr(x),))
def do_bedtemp(self,l=""): def do_bedtemp(self,l=""):
try: try:
...@@ -205,8 +222,22 @@ class PronterWindow(wx.Frame,pronsole.pronsole): ...@@ -205,8 +222,22 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
if self.p.online: if self.p.online:
self.p.send_now("M140 S"+l) self.p.send_now("M140 S"+l)
print _("Setting bed temperature to "),f,_(" degrees Celsius.") print _("Setting bed temperature to "),f,_(" degrees Celsius.")
self.btemp.SetValue(l) self.bsetpoint=f
self.set("last_bed_temperature",str(f)) if f>0:
self.btemp.SetValue(l)
self.set("last_bed_temperature",str(f))
self.setboff.SetBackgroundColour("")
self.setboff.SetForegroundColour("")
self.setbbtn.SetBackgroundColour("#FFAA66")
self.setbbtn.SetForegroundColour("#660000")
self.btemp.SetBackgroundColour("#FFDABB")
else:
self.setboff.SetBackgroundColour("#0044CC")
self.setboff.SetForegroundColour("white")
self.setbbtn.SetBackgroundColour("")
self.setbbtn.SetForegroundColour("")
self.btemp.SetBackgroundColour("white")
self.btemp.Refresh()
else: else:
print _("Printer is not online.") print _("Printer is not online.")
else: else:
...@@ -409,6 +440,14 @@ class PronterWindow(wx.Frame,pronsole.pronsole): ...@@ -409,6 +440,14 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
uts.Add(self.resetbtn) uts.Add(self.resetbtn)
self.minibtn=wx.Button(self.panel,-1,_("Mini mode"),pos=(690,0)) self.minibtn=wx.Button(self.panel,-1,_("Mini mode"),pos=(690,0))
self.minibtn.Bind(wx.EVT_BUTTON,self.toggleview) self.minibtn.Bind(wx.EVT_BUTTON,self.toggleview)
#self.tgauge=TempGauge(self.panel,size=(300,24))
#def scroll_setpoint(e):
# if e.GetWheelRotation()>0:
# self.do_settemp(str(self.hsetpoint+1))
# elif e.GetWheelRotation()<0:
# self.do_settemp(str(max(0,self.hsetpoint-1)))
#self.tgauge.Bind(wx.EVT_MOUSEWHEEL,scroll_setpoint)
uts.Add((10,-1)) uts.Add((10,-1))
self.monitorbox=wx.CheckBox(self.panel,-1,"",pos=(450,37)) self.monitorbox=wx.CheckBox(self.panel,-1,"",pos=(450,37))
uts.Add((15,-1)) uts.Add((15,-1))
...@@ -418,6 +457,7 @@ class PronterWindow(wx.Frame,pronsole.pronsole): ...@@ -418,6 +457,7 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
uts.Add((15,-1),flag=wx.EXPAND) uts.Add((15,-1),flag=wx.EXPAND)
uts.Add(self.minibtn) uts.Add(self.minibtn)
#uts.Add(self.tgauge)
#SECOND ROW #SECOND ROW
ubs=self.upperbottomsizer=wx.BoxSizer(wx.HORIZONTAL) ubs=self.upperbottomsizer=wx.BoxSizer(wx.HORIZONTAL)
...@@ -489,31 +529,50 @@ class PronterWindow(wx.Frame,pronsole.pronsole): ...@@ -489,31 +529,50 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
lls.Add(wx.StaticText(self.panel,-1,_("Heater:"),pos=(0,343)),pos=(3,0),span=(1,1),flag=wx.ALIGN_CENTER) lls.Add(wx.StaticText(self.panel,-1,_("Heater:"),pos=(0,343)),pos=(3,0),span=(1,1),flag=wx.ALIGN_CENTER)
htemp_choices=[self.temps[i]+" ("+i+")" for i in sorted(self.temps.keys(),key=lambda x:self.temps[x])] htemp_choices=[self.temps[i]+" ("+i+")" for i in sorted(self.temps.keys(),key=lambda x:self.temps[x])]
self.settoff=wx.Button(self.panel,-1,_("Off"),size=(36,-1),pos=(45,335))
self.settoff.Bind(wx.EVT_BUTTON,lambda e:self.do_settemp("off"))
self.printerControls.append(self.settoff)
lls.Add(self.settoff,pos=(3,1),span=(1,1))
if self.settings.last_temperature not in map(float,self.temps.values()): if self.settings.last_temperature not in map(float,self.temps.values()):
htemp_choices = [str(self.settings.last_temperature)] + htemp_choices htemp_choices = [str(self.settings.last_temperature)] + htemp_choices
self.htemp=wx.ComboBox(self.panel, -1, self.htemp=wx.ComboBox(self.panel, -1,
choices=htemp_choices,style=wx.CB_DROPDOWN, size=(90,25),pos=(45,337)) choices=htemp_choices,style=wx.CB_DROPDOWN, size=(80,25),pos=(45,337))
self.htemp.Bind(wx.EVT_COMBOBOX,self.htemp_change)
lls.Add(self.htemp,pos=(3,2),span=(1,2))
lls.Add(self.htemp,pos=(3,1),span=(1,3)) self.settbtn=wx.Button(self.panel,-1,_("Set"),size=(36,-1),pos=(125,335))
self.settbtn=wx.Button(self.panel,-1,_("Set"),size=(38,-1),pos=(135,335))
self.settbtn.Bind(wx.EVT_BUTTON,self.do_settemp) self.settbtn.Bind(wx.EVT_BUTTON,self.do_settemp)
self.printerControls.append(self.settbtn) self.printerControls.append(self.settbtn)
lls.Add(self.settbtn,pos=(3,4),span=(1,1)) lls.Add(self.settbtn,pos=(3,4),span=(1,1))
lls.Add(wx.StaticText(self.panel,-1,_("Bed:"),pos=(0,343)),pos=(4,0),span=(1,1),flag=wx.ALIGN_CENTER) lls.Add(wx.StaticText(self.panel,-1,_("Bed:"),pos=(0,343)),pos=(4,0),span=(1,1),flag=wx.ALIGN_CENTER)
btemp_choices=[self.bedtemps[i]+" ("+i+")" for i in sorted(self.bedtemps.keys(),key=lambda x:self.temps[x])] btemp_choices=[self.bedtemps[i]+" ("+i+")" for i in sorted(self.bedtemps.keys(),key=lambda x:self.temps[x])]
self.setboff=wx.Button(self.panel,-1,_("Off"),size=(36,-1),pos=(135,335))
self.setboff.Bind(wx.EVT_BUTTON,lambda e:self.do_bedtemp("off"))
self.printerControls.append(self.setboff)
lls.Add(self.setboff,pos=(4,1),span=(1,1))
if self.settings.last_bed_temperature not in map(float,self.bedtemps.values()): if self.settings.last_bed_temperature not in map(float,self.bedtemps.values()):
btemp_choices = [str(self.settings.last_bed_temperature)] + btemp_choices btemp_choices = [str(self.settings.last_bed_temperature)] + btemp_choices
self.btemp=wx.ComboBox(self.panel, -1, self.btemp=wx.ComboBox(self.panel, -1,
choices=btemp_choices,style=wx.CB_DROPDOWN, size=(90,25),pos=(45,367)) choices=btemp_choices,style=wx.CB_DROPDOWN, size=(80,25),pos=(135,367))
self.btemp.Bind(wx.EVT_COMBOBOX,self.btemp_change)
lls.Add(self.btemp,pos=(4,2),span=(1,2))
self.setbbtn=wx.Button(self.panel,-1,_("Set"),size=(38,-1),pos=(135,365))
self.setbbtn.Bind(wx.EVT_BUTTON,self.do_bedtemp)
self.printerControls.append(self.setbbtn)
lls.Add(self.setbbtn,pos=(4,4),span=(1,2))
self.btemp.SetValue(str(self.settings.last_bed_temperature)) self.btemp.SetValue(str(self.settings.last_bed_temperature))
self.htemp.SetValue(str(self.settings.last_temperature)) self.htemp.SetValue(str(self.settings.last_temperature))
## added for an error where only the bed would get (pla) or (abs). ## added for an error where only the bed would get (pla) or (abs).
#This ensures, if last temp is a default pla or abs, it will be marked so. #This ensures, if last temp is a default pla or abs, it will be marked so.
# if it is not, then a (user) remark is added. This denotes a manual entry # if it is not, then a (user) remark is added. This denotes a manual entry
for i in btemp_choices: for i in btemp_choices:
if i.split()[0] == str(self.settings.last_bed_temperature).split('.')[0] or i.split()[0] == str(self.settings.last_bed_temperature): if i.split()[0] == str(self.settings.last_bed_temperature).split('.')[0] or i.split()[0] == str(self.settings.last_bed_temperature):
self.btemp.SetValue(i) self.btemp.SetValue(i)
...@@ -526,12 +585,8 @@ class PronterWindow(wx.Frame,pronsole.pronsole): ...@@ -526,12 +585,8 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
if( '(' not in self.htemp.Value): if( '(' not in self.htemp.Value):
self.htemp.SetValue(self.htemp.Value + ' (user)') self.htemp.SetValue(self.htemp.Value + ' (user)')
#lls.Add(self.btemp,pos=(4,1),span=(1,3))
lls.Add(self.btemp,pos=(4,1),span=(1,3)) #lls.Add(self.setbbtn,pos=(4,4),span=(1,2))
self.setbbtn=wx.Button(self.panel,-1,_("Set"),size=(38,-1),pos=(135,365))
self.setbbtn.Bind(wx.EVT_BUTTON,self.do_bedtemp)
self.printerControls.append(self.setbbtn)
lls.Add(self.setbbtn,pos=(4,4),span=(1,2))
self.tempdisp=wx.StaticText(self.panel,-1,"") self.tempdisp=wx.StaticText(self.panel,-1,"")
lls.Add(self.tempdisp,pos=(4,6),span=(1,3)) lls.Add(self.tempdisp,pos=(4,6),span=(1,3))
...@@ -593,6 +648,16 @@ class PronterWindow(wx.Frame,pronsole.pronsole): ...@@ -593,6 +648,16 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
#uts.Layout() #uts.Layout()
self.cbuttons_reload() self.cbuttons_reload()
def htemp_change(self,event):
if self.hsetpoint > 0:
self.do_settemp("")
wx.CallAfter(self.htemp.SetInsertionPoint,0)
def btemp_change(self,event):
if self.bsetpoint > 0:
self.do_bedtemp("")
wx.CallAfter(self.btemp.SetInsertionPoint,0)
def showwin(self,event): def showwin(self,event):
if(self.f is not None): if(self.f is not None):
self.gwindow.Show() self.gwindow.Show()
...@@ -642,28 +707,39 @@ class PronterWindow(wx.Frame,pronsole.pronsole): ...@@ -642,28 +707,39 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
#sizer.Remove(button) #sizer.Remove(button)
button.Destroy() button.Destroy()
self.custombuttonbuttons=[] self.custombuttonbuttons=[]
newbuttonbuttonindex = len(self.custombuttons)
while newbuttonbuttonindex>0 and self.custombuttons[newbuttonbuttonindex-1] is None:
newbuttonbuttonindex -= 1
while len(self.custombuttons) < 13: while len(self.custombuttons) < 13:
self.custombuttons.append(None) self.custombuttons.append(None)
for i in xrange(len(self.custombuttons)): for i in xrange(len(self.custombuttons)):
btndef = self.custombuttons[i] btndef = self.custombuttons[i]
try: try:
b=wx.Button(self.panel,-1,btndef[0]) b=wx.Button(self.panel,-1,btndef[0])
b.SetToolTip(wx.ToolTip(_("Execute command: ")+btndef[1]))
if len(btndef)>2: if len(btndef)>2:
b.SetBackgroundColour(btndef[2]) b.SetBackgroundColour(btndef[2])
rr,gg,bb=b.GetBackgroundColour().Get() rr,gg,bb=b.GetBackgroundColour().Get()
if 0.3*rr+0.59*gg+0.11*bb < 60: if 0.3*rr+0.59*gg+0.11*bb < 60:
b.SetForegroundColour("#ffffff") b.SetForegroundColour("#ffffff")
except: except:
b=wx.StaticText(self.panel,-1,"",size=(72,20),style=wx.ALIGN_CENTRE+wx.ST_NO_AUTORESIZE) #+wx.SIMPLE_BORDER if i == newbuttonbuttonindex:
#b.Freeze() self.newbuttonbutton=b=wx.Button(self.panel,-1,"+",size=(19,18))
b.Disable() #b.SetFont(wx.Font(12,wx.FONTFAMILY_SWISS,wx.FONTSTYLE_NORMAL,wx.FONTWEIGHT_BOLD))
b.SetForegroundColour("#4444ff")
b.SetToolTip(wx.ToolTip(_("click to add new custom button")))
b.Bind(wx.EVT_BUTTON,self.cbutton_edit)
else:
b=wx.StaticText(self.panel,-1,"",size=(72,22),style=wx.ALIGN_CENTRE+wx.ST_NO_AUTORESIZE) #+wx.SIMPLE_BORDER
#b.Freeze()
b.Disable()
b.custombutton=i b.custombutton=i
b.properties=btndef b.properties=btndef
if btndef is not None: if btndef is not None:
b.Bind(wx.EVT_BUTTON,self.procbutton) b.Bind(wx.EVT_BUTTON,self.procbutton)
b.Bind(wx.EVT_MOUSE_EVENTS,self.editbutton) b.Bind(wx.EVT_MOUSE_EVENTS,self.editbutton)
else: #else:
b.Bind(wx.EVT_BUTTON,lambda e:e.Skip()) # b.Bind(wx.EVT_BUTTON,lambda e:e.Skip())
self.custombuttonbuttons.append(b) self.custombuttonbuttons.append(b)
if i<4: if i<4:
ubs.Add(b) ubs.Add(b)
...@@ -761,7 +837,7 @@ class PronterWindow(wx.Frame,pronsole.pronsole): ...@@ -761,7 +837,7 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
self.cbutton_save(n,None) self.cbutton_save(n,None)
#while len(self.custombuttons) and self.custombuttons[-1] is None: #while len(self.custombuttons) and self.custombuttons[-1] is None:
# del self.custombuttons[-1] # del self.custombuttons[-1]
self.cbuttons_reload() wx.CallAfter(self.cbuttons_reload)
def cbutton_order(self,e,button,dir): def cbutton_order(self,e,button,dir):
n = button.custombutton n = button.custombutton
...@@ -815,7 +891,14 @@ class PronterWindow(wx.Frame,pronsole.pronsole): ...@@ -815,7 +891,14 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
return return
if not hasattr(self,"dragging"): if not hasattr(self,"dragging"):
# init dragging of the custom button # init dragging of the custom button
if hasattr(obj,"custombutton"): if hasattr(obj,"custombutton") and obj.properties is not None:
self.newbuttonbutton.SetLabel("")
self.newbuttonbutton.SetFont(wx.Font(10,wx.FONTFAMILY_DEFAULT,wx.FONTSTYLE_NORMAL,wx.FONTWEIGHT_NORMAL))
self.newbuttonbutton.SetForegroundColour("black")
self.newbuttonbutton.SetSize(obj.GetSize())
if self.upperbottomsizer.GetItem(self.newbuttonbutton) is not None:
self.upperbottomsizer.SetItemMinSize(self.newbuttonbutton,obj.GetSize())
self.topsizer.Layout()
self.dragging = wx.Button(self.panel,-1,obj.GetLabel()) self.dragging = wx.Button(self.panel,-1,obj.GetLabel())
self.dragging.SetBackgroundColour(obj.GetBackgroundColour()) self.dragging.SetBackgroundColour(obj.GetBackgroundColour())
self.dragging.SetForegroundColour(obj.GetForegroundColour()) self.dragging.SetForegroundColour(obj.GetForegroundColour())
...@@ -998,6 +1081,10 @@ class PronterWindow(wx.Frame,pronsole.pronsole): ...@@ -998,6 +1081,10 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
pass pass
string+=(self.tempreport.replace("\r","").replace("T",_("Hotend")).replace("B",_("Bed")).replace("\n","").replace("ok ",""))+" " string+=(self.tempreport.replace("\r","").replace("T",_("Hotend")).replace("B",_("Bed")).replace("\n","").replace("ok ",""))+" "
wx.CallAfter(self.tempdisp.SetLabel,self.tempreport.strip().replace("ok ","")) wx.CallAfter(self.tempdisp.SetLabel,self.tempreport.strip().replace("ok ",""))
#try:
# self.tgauge.SetValue(int(filter(lambda x:x.startswith("T:"),self.tempreport.split())[0].split(":")[1]))
#except:
# pass
if self.sdprinting: if self.sdprinting:
string+= _(" SD printing:%04.2f %%") % (self.percentdone,) string+= _(" SD printing:%04.2f %%") % (self.percentdone,)
if self.p.printing: if self.p.printing:
...@@ -1035,6 +1122,10 @@ class PronterWindow(wx.Frame,pronsole.pronsole): ...@@ -1035,6 +1122,10 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
if "T:" in l: if "T:" in l:
self.tempreport=l self.tempreport=l
wx.CallAfter(self.tempdisp.SetLabel,self.tempreport.strip().replace("ok ","")) wx.CallAfter(self.tempdisp.SetLabel,self.tempreport.strip().replace("ok ",""))
#try:
# self.tgauge.SetValue(int(filter(lambda x:x.startswith("T:"),self.tempreport.split())[0].split(":")[1]))
#except:
# pass
tstring=l.rstrip() tstring=l.rstrip()
#print tstring #print tstring
if(tstring!="ok"): if(tstring!="ok"):
...@@ -1497,6 +1588,89 @@ class ButtonEdit(wx.Dialog): ...@@ -1497,6 +1588,89 @@ class ButtonEdit(wx.Dialog):
if self.name.GetValue()=="": if self.name.GetValue()=="":
self.name.SetValue(macro) self.name.SetValue(macro)
class TempGauge(wx.Panel):
def __init__(self,parent,size=(200,22)):
wx.Panel.__init__(self,parent,-1,size=size)
self.Bind(wx.EVT_PAINT,self.paint)
self.SetBackgroundStyle(wx.BG_STYLE_CUSTOM)
self.width,self.height=size
self.value=0
self.setpoint=0
self.recalc()
def recalc(self):
self.max=max(int(self.setpoint*1.05),240)
self.scale=float(self.width-2)/float(self.max)
self.ypt=int(self.scale*max(self.setpoint,40))
def SetValue(self,value):
self.value=value
wx.CallAfter(self.Refresh)
def SetTarget(self,value):
self.setpoint=value
self.recalc()
wx.CallAfter(self.Refresh)
def paint(self,ev):
x0,y0,x1,y1,xE,yE = 1,1,self.ypt+1,1,self.width+1-2,20
dc=wx.PaintDC(self)
dc.SetBackground(wx.Brush((255,255,255)))
dc.Clear()
cold,medium,hot = wx.Colour(0,167,223),wx.Colour(239,233,119),wx.Colour(210,50.100)
gauge1,gauge2 = wx.Colour(255,255,210),wx.Colour(234,82,0)
shadow1,shadow2 = wx.Colour(110,110,110),wx.Colour(255,255,255)
gc = wx.GraphicsContext.Create(dc)
# draw shadow first
# corners
gc.SetBrush(gc.CreateRadialGradientBrush(xE-7,9,xE-7,9,8,shadow1,shadow2))
gc.DrawRectangle(xE-7,1,8,8)
gc.SetBrush(gc.CreateRadialGradientBrush(xE-7,17,xE-7,17,8,shadow1,shadow2))
gc.DrawRectangle(xE-7,17,8,8)
gc.SetBrush(gc.CreateRadialGradientBrush(x0+6,17,x0+6,17,8,shadow1,shadow2))
gc.DrawRectangle(0,17,x0+6,8)
# edges
gc.SetBrush(gc.CreateLinearGradientBrush(xE-13,0,xE-6,0,shadow1,shadow2))
gc.DrawRectangle(xE-6,9,10,8)
gc.SetBrush(gc.CreateLinearGradientBrush(x0,yE-2,x0,yE+5,shadow1,shadow2))
gc.DrawRectangle(x0+6,yE-2,xE-12,7)
# draw gauge background
gc.SetBrush(gc.CreateLinearGradientBrush(x0,y0,x1+1,y1,cold,medium))
gc.DrawRoundedRectangle(x0,y0,x1+4,yE,6)
gc.SetBrush(gc.CreateLinearGradientBrush(x1-2,y1,xE,y1,medium,hot))
gc.DrawRoundedRectangle(x1-2,y1,xE-x1,yE,6)
# draw gauge
gc.SetBrush(gc.CreateLinearGradientBrush(x0,y0+3,x0,y0+15,gauge1,gauge2))
#gc.SetBrush(gc.CreateLinearGradientBrush(0,3,0,15,wx.Colour(255,255,255),wx.Colour(255,90,32)))
width=12
w1=y0+9-width/2
w2=w1+width
value=x0+max(10,min(self.width+1-2,int(self.value*self.scale)))
val_path = gc.CreatePath()
val_path.MoveToPoint(x0,w1)
val_path.AddLineToPoint(value,w1)
val_path.AddLineToPoint(value+2,w1+width/4)
val_path.AddLineToPoint(value+2,w2-width/4)
val_path.AddLineToPoint(value,w2)
#val_path.AddLineToPoint(value-4,10)
val_path.AddLineToPoint(x0,w2)
gc.DrawPath(val_path)
# draw setpoint markers
setpoint=x0+max(10,int(self.setpoint*self.scale))
gc.SetBrush(gc.CreateBrush(wx.Brush(wx.Colour(0,0,0))))
setp_path = gc.CreatePath()
setp_path.MoveToPoint(setpoint-4,y0)
setp_path.AddLineToPoint(setpoint+4,y0)
setp_path.AddLineToPoint(setpoint,y0+5)
setp_path.MoveToPoint(setpoint-4,yE)
setp_path.AddLineToPoint(setpoint+4,yE)
setp_path.AddLineToPoint(setpoint,yE-5)
gc.DrawPath(setp_path)
# draw readout
text=u"T\u00B0 %u/%u"%(self.value,self.setpoint)
#gc.SetFont(gc.CreateFont(wx.Font(12,wx.FONTFAMILY_DEFAULT,wx.FONTSTYLE_NORMAL,wx.FONTWEIGHT_BOLD),wx.WHITE))
#gc.DrawText(text,29,-2)
gc.SetFont(gc.CreateFont(wx.Font(10,wx.FONTFAMILY_DEFAULT,wx.FONTSTYLE_NORMAL,wx.FONTWEIGHT_BOLD),wx.WHITE))
gc.DrawText(text,x0+31,y0+1)
gc.SetFont(gc.CreateFont(wx.Font(10,wx.FONTFAMILY_DEFAULT,wx.FONTSTYLE_NORMAL,wx.FONTWEIGHT_BOLD)))
gc.DrawText(text,x0+30,y0+0)
if __name__ == '__main__': if __name__ == '__main__':
app = wx.App(False) app = wx.App(False)
main = PronterWindow() main = PronterWindow()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment