BO105cbs Posté(e) Mars 24 Posté(e) Mars 24 Bonjour, Je "tripote" différents paramètres de ma bestiole en l'ocurrence une K1C avec un kipper à la sauce Creality, si je saisi par mal de choses, dans gcode_macro.cfg il y a deux paramètres dont je ne perçois pas l'utilité ou à minima à quoi ils servent, et fouinant dans la documentation Klipper, c'est toujours de l'incompréhension, alors un spécialiste de Klipper peut il me dire simplement à quoi servent les macro suivantes gcode_macro_Qmode et sa soeur gcode_macro_exit Un grand merci d'avance
pommeverte Posté(e) Mars 24 Posté(e) Mars 24 (modifié) Salut, Je ne suis pas un spécialiste de Klipper , mais d'après ce que j'ai pu lire, le Qmode correspond au mode silencieux. C'est pour ça que dans cette macro: Citation [gcode_macro Qmode] variable_flag: 0 variable_accel: 0 variable_accel_to_decel: 0 variable_velocity: 0 variable_square_corner_velocity: 0 variable_pressure_advance:0.0 variable_fan0_value: 0.00 variable_fan1_value: 0.00 variable_fan2_value: 0.00 variable_speed_factor: 0 variable_max_accel: 2500 variable_max_accel_to_decel: 2500 gcode: {% set printer_state = printer.print_stats.state %} {% if printer['gcode_macro Qmode'].flag|int == 0 %} {% if printer_state == "printing" or printer_state == "paused" %} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=accel VALUE={printer.toolhead.max_accel} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=accel_to_decel VALUE={printer.toolhead.max_accel_to_decel} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=velocity VALUE={printer.toolhead.max_velocity} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=square_corner_velocity VALUE={printer.toolhead.square_corner_velocity} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=pressure_advance VALUE={printer.extruder.pressure_advance} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=speed_factor VALUE={printer.gcode_move.speed_factor} SET_TMC_FIELD STEPPER=stepper_x FIELD=en_spreadcycle VALUE=0 SET_TMC_FIELD STEPPER=stepper_y FIELD=en_spreadcycle VALUE=0 SET_TMC_CURRENT STEPPER=stepper_x CURRENT=1.0 SET_TMC_CURRENT STEPPER=stepper_y CURRENT=1.0 G4 P1000 # Set Motion Parameters SET_VELOCITY_LIMIT ACCEL=2500 SET_VELOCITY_LIMIT ACCEL_TO_DECEL=2500 SET_VELOCITY_LIMIT VELOCITY=150 SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=5 SET_PRESSURE_ADVANCE ADVANCE=0.05 M220 S50 {% set tmp = printer['output_pin fan0'].value * 255 %} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan0_value VALUE={tmp} {% if tmp - printer['gcode_macro PRINTER_PARAM'].fan0_min > (255 - printer['gcode_macro PRINTER_PARAM'].fan0_min) / 2 %} {% set tmp = printer['gcode_macro PRINTER_PARAM'].fan0_min + (255 - printer['gcode_macro PRINTER_PARAM'].fan0_min) / 2 %} SET_PIN PIN=fan0 VALUE={tmp} {% endif %} {% set tmp = printer['output_pin fan1'].value * 255 %} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan1_value VALUE={printer['output_pin fan1'].value * 255} {% if tmp - printer['gcode_macro PRINTER_PARAM'].fan1_min > (255 - printer['gcode_macro PRINTER_PARAM'].fan1_min) / 2 %} {% set tmp = printer['gcode_macro PRINTER_PARAM'].fan1_min + (255 - printer['gcode_macro PRINTER_PARAM'].fan1_min) / 2 %} SET_PIN PIN=fan1 VALUE={tmp} {% endif %} {% set tmp = printer['output_pin fan2'].value * 255 %} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan2_value VALUE={printer['output_pin fan2'].value * 255} {% if tmp - printer['gcode_macro PRINTER_PARAM'].fan2_min > (255 - printer['gcode_macro PRINTER_PARAM'].fan2_min) / 2 %} {% set tmp = printer['gcode_macro PRINTER_PARAM'].fan2_min + (255 - printer['gcode_macro PRINTER_PARAM'].fan2_min) / 2 %} SET_PIN PIN=fan2 VALUE={tmp} {% endif %} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=flag VALUE=1 SET_QMODE_FLAG FLAG=1 {% endif %} {% endif %} on peut voir que: la vitesse est ralentie de 50% (M220 S50), les pilotes des moteurs passent en mode stealthChop (mode moins bruyant mais potentiellement moins précis), la vitesse des ventilateurs est modifiée ... Evidemment, la macro Qmode_exit permet de sortir de ce mode Citation [gcode_macro Qmode_exit] gcode: {% set printer_state = printer.print_stats.state %} {% if printer['gcode_macro Qmode'].flag|int == 1 %} {% if printer_state == "printing" or printer_state == "paused" %} SET_VELOCITY_LIMIT ACCEL={printer['gcode_macro Qmode'].accel} SET_VELOCITY_LIMIT ACCEL_TO_DECEL={printer['gcode_macro Qmode'].accel_to_decel} SET_VELOCITY_LIMIT VELOCITY={printer['gcode_macro Qmode'].velocity} SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={printer['gcode_macro Qmode'].square_corner_velocity} SET_PRESSURE_ADVANCE ADVANCE={printer['gcode_macro Qmode'].pressure_advance} M220 S{printer['gcode_macro Qmode'].speed_factor * 100} {% set X_RUN_CUR = printer.configfile.settings['tmc2209 stepper_x'].run_current %} {% set Y_RUN_CUR = printer.configfile.settings['tmc2209 stepper_y'].run_current %} SET_TMC_CURRENT STEPPER=stepper_x CURRENT={X_RUN_CUR} SET_TMC_CURRENT STEPPER=stepper_y CURRENT={Y_RUN_CUR} SET_TMC_FIELD STEPPER=stepper_x FIELD=en_spreadcycle VALUE=1 SET_TMC_FIELD STEPPER=stepper_y FIELD=en_spreadcycle VALUE=1 G4 P1000 {% if printer['output_pin fan0'].value != 0 %} {action_respond_info("fan0_value = %s" % printer['gcode_macro Qmode'].fan0_value)} SET_PIN PIN=fan0 VALUE={printer['gcode_macro Qmode'].fan0_value} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan0_value VALUE=0 {% endif %} {% if printer['output_pin fan1'].value != 0 %} {action_respond_info("fan1_value = %s" % printer['gcode_macro Qmode'].fan1_value)} SET_PIN PIN=fan1 VALUE={printer['gcode_macro Qmode'].fan1_value} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan1_value VALUE=0 {% endif %} {% if printer['output_pin fan2'].value != 0 %} {action_respond_info("fan2_value = %s" % printer['gcode_macro Qmode'].fan2_value)} SET_PIN PIN=fan2 VALUE={printer['gcode_macro Qmode'].fan2_value} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan2_value VALUE=0 {% endif %} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=flag VALUE=0 SET_QMODE_FLAG FLAG=0 {% endif %} {% endif %} Modifié (le) Mars 24 par pommeverte
BO105cbs Posté(e) Mars 25 Auteur Posté(e) Mars 25 @pommeverte Raaaaaaaaaaaaaaaaaaaaaaaaaaaah Merci Donc Qmode c'est le Quiet-mode.... je suis moins couillon désormais.... Mode dont je me sert souvent, quand je viens dans mon bureau et que la bestiole imprime, venant perturber ma concentration. J'ai remarqué que le mode silence émulé à partir de Creality Print, n'est pas identique à celui de la machine, ne réduisant la vitesse que de 50% et ne réduit pas la ventilation en conséquence. Je ne sais pas si ce "bug" est corrigé sur la toute dernière version. Autre question si je peux me permettre. Comment installer seulement et simplement la Macro "Kampesque" correspondant à la ligne de purge en lieu et place de la ligne de purge (le CX_LINE_Print) dont j'ai trouvé l'origine en explorant la structure Klipérienne de la K1C à l'aide de MobaXterm et d'infos en provenance de GitHub. PS : Je ne souhaite pas installer Kamp à partir de l'excellent travail de Sieur Guilouz, car je ne sais pas pourquoi, mais le système de calibration "Kampesque" d'abord ne fonctionne pas sur la K1C, puis à chaque nouvelle impression il se remet en service et me cause des désordres, du genre, plus de bed mesh , je ne sais pas pourquoi, et je ne veux pas à chaque fois, retourner dans le fluide glacial, pour remettre en service le bed mesh standard. Heureusement que mon plateau n'est pas en hélice d'avion, mais c'est gênant. Bah Merci d'avance.
pommeverte Posté(e) Mars 25 Posté(e) Mars 25 Salut, Il y a 2 heures, BO105cbs a dit : Comment installer seulement et simplement la Macro "Kampesque" correspondant à la ligne de purge en lieu et place de la ligne de purge (le CX_LINE_Print) dont j'ai trouvé l'origine en explorant la structure Klipérienne de la K1C à l'aide de MobaXterm et d'infos en provenance de GitHub. probablement une réponse idiote : tu remplaces la ligne par l'appel à la macro LINE_PURGE de Kamp, trouvée ici. Comme je ne connais pas le contenu de ton printer.cfg et ce qu'il se cache derrière le CX_LINE_Print, je ne peux pas être plus précis.
BO105cbs Posté(e) Mars 25 Auteur Posté(e) Mars 25 @pommeverte Bonjour, Alors le CX_PRINT_DRAW_ONE_LINE se trouve dans le gcode_Macro A la fin de la Macro [gcode_macro START_PRINT] variable_prepare: 0 gcode: WAIT_TEMP_END CLEAR_PAUSE ; ; ; CX_PRINT_DRAW_ONE_LINE --------------------------------------------------------- Le fameux CX_PRINT_DRAW_ONE_LINE se trouve dans le fichier Custom_macro.py qui se trouve dans le répertoire usr/share/klipper/klippy/extras/ et (je ne la met pas complètement) ressemble à ça : cmd_CX_PRINT_DRAW_ONE_LINE_help = "Draw one line before printing" def cmd_CX_PRINT_DRAW_ONE_LINE(self, gcmd): self.gcode.run_script_from_command('G28 X Y') self.gcode.run_script_from_command('M83') self.gcode.run_script_from_command('G1 X10 Y10 Z2 F6000') self.gcode.run_script_from_command('G1 Z0.1 F600') self.pheaters = self.printer.lookup_object('heaters') self.heater_hot = self.printer.lookup_object('extruder').heater self.gcode.respond_info("can_break_flag = %d" % (self.pheaters.can_break_flag)) self.gcode.run_script_from_command('M104 S%d' % (self.extruder_temp)) self.gcode.run_script_from_command('M140 S%d' % (self.bed_temp)) Bon en attendant je vais aller jeter un oeil à ton lien, et voir comme cela s'installe.
pommeverte Posté(e) Mars 25 Posté(e) Mars 25 J'imagine que tu as compris qu'il suffisait de coller la macro LINE_PURGE dans ton fichier printer.cfg ou dans un fichier qui serait appelé. Ensuite, le plus simple, je pense, c'est de commenter ou supprimer la fin du script Custom_macro.py (voir cette version https://github.com/fmillion-mnsu/creality-k1-script-mods/blob/main/custom_macro.py ) et de gérer cette partie dans la macro START_PRINT avec un appel à la macro LINE_PURGE. Si ce n'est pas top secret, tu pourrais fournir tes fichiers printer.cfg et Custom_macro.py en les compressant
BO105cbs Posté(e) Mars 26 Auteur Posté(e) Mars 26 Il y a 12 heures, pommeverte a dit : Si ce n'est pas top secret, tu pourrais fournir tes fichiers printer.cfg et Custom_macro.py en les compressant Ce n'est pas top secret Là pour l'instant ça ne fonctionne pas, tout s'arrête après le fameux smart-park, à cause d'un problème de chauffe (elle ne chauffe pas) me générant une erreur machine, je vais consulter le lien et ferais ensuite une extraction de printer, gcode_macro et Custom_macro. Le CX_PRINT déclenchant la chauffe. Commenter cette ligne dans la macro de démarrage mettant le boxon..... Bref, je me remet sur la peau de ma bestiole, cet après midi.
Savate Posté(e) Mars 26 Posté(e) Mars 26 Il y a 21 heures, BO105cbs a dit : puis à chaque nouvelle impression il se remet en service c'est un peu le but du bed mesh adaptatif (de kamp ou de klipper depuis les dernières version), il teste le plateau sur la zone à imprimer avant chaque impression Donc en gros le bed mesh est refait à chaque fois mais uniquement sur la zone qui va recevoir l'impression. Et ça marche plutôt bien. 1 3
BO105cbs Posté(e) Mars 26 Auteur Posté(e) Mars 26 (modifié) @Savate Bonjour, Oui, mais le bed mesh adaptatif ne fonctionne ma sur ma K1C, j'ai la prise de mesure classique , puis la purge et hop l'impression, pas d'adaptatif, si j'active la calibration au départ, j'ai le droit à une calibration complète du plateau. Sachant que le klipper de la K1C est un mix Klipper-MarliesquoCreality donc. @hyoti Bon, résultat des courses, j'ai commenté (ou désactivé) toutes les lignes du code de la custom_macro concernant l'impression classique des deux lignes sur le bord du plateau. Alors j'ai le droit à smart park puis les lignes sur le bord du plateau et enfin la ligne de purge Bref, j'ai un blème.. , moi qui voulais enlever cette ligne de purge sur le bord..... ---------------------------------------------------------- Après un petit coup de sang, tentant une opération de la dernière chance, j'ai réussi. Je résume brièvement. En premier j'ai respecter l'installation du lien que tu m'a donné, grâce à MobaXterm, non sans mal, avec trois extinction de la bestiole, pour la faire redémarrer, mé bon Ensuite, bêtement j'ai désactiver l'exécution de la sous macro CX_PRINT_DRAW_ONE_LINE, mais cela faisait planter la K1C pour une température d'extrusion trop basse, donc arrêt d'impression + code erreur sur la K1C . Il faut dire que cette remontée de température est fixée dans la dite sous macro. Dans cette dernière, j'ai dans un premier désactivé ou commenter, bref rendu inactif tout ce qui concernait l'impression des deux lignes et sans succès à la finale . Dernier essais, j'ai carrément viré les lignes et miracle. Deux petits essais d'impression de 2mn à des endroits différents et ça fonctionne. Cerise sur le gâteau, je bénéficie d'une fonctionnalité intéressante qui est restée, la buse venant en contact avec le plateau a droite, pendant la remontée en température, qui évite ainsi les fuites ou trainées. Le fichier zip contient : Moonraker.conf (ou il faut mettre des choses à la fin) Printer.cfg (avec le include kamp) gcode_macro (avec les modifs de print_start) Custom_macro.py (avec la fonction qui m'a procuré des soucis..... ) kamp.cfg line_purge.cfg Smart_Park.cfg Bon, tant que j'y suis, je vais tenter de comprendre pourquoi le bed_mesh-adaptatif du père Kamp ne fonctionne pas sur ma K1C... Ca vas pas être facile ne m'étant pas encore fait au langage Klipper et sa syntaxe. K1C.zip Modifié (le) Mars 26 par BO105cbs
Savate Posté(e) Mars 26 Posté(e) Mars 26 il y a une heure, BO105cbs a dit : la buse venant en contact avec le plateau a droite, pendant la remontée en température, qui évite ainsi les fuites ou trainées. mais qui va bousiller ton pei ... il y a une heure, BO105cbs a dit : au langage Klipper et sa syntaxe. pour les macros c'est du Jinja 2 (un truc encore plus merdique que javascript ou python ) 1 1
pommeverte Posté(e) Mars 26 Posté(e) Mars 26 (modifié) Le pauvre hyoti, ça fait 2 fois en quelques jours (ici et dans ton dernier message) que tu l'interpelles alors que c'est moi qui suis visé . Attention, jamais 2 sans 3... Modifié (le) Mars 26 par pommeverte 3
BO105cbs Posté(e) Mars 26 Auteur Posté(e) Mars 26 Il y a 2 heures, Savate a dit : mais qui va bousiller ton pei ... Non, non, d'origine elle fait ça, la buse se pose trèèèèèèèèèèèèèèèèèèèèèèèès doucement sur le plateau, enfin à presque rien, la température monte, puis elle se relève et va faire son travail, bon hier elle traçait deux lignes, aujourd'hui elle se purge Il y a 2 heures, Savate a dit : pour les macros c'est du Jinja 2 Bon, sorti du Cobol, du basic, du Ms Dos, les fondamentaux quoi, voir du dbase et le RPN... ce sont les seuls langage que je connaisse. @pommeverte Bah, CPASBO de vieillir Mais j'l'aime aussi l'père Hyoty Bon t'as vu mes fichiers ?
Savate Posté(e) Mars 26 Posté(e) Mars 26 il y a 2 minutes, BO105cbs a dit : Cobol, du basic, du Ms Dos, les fondamentaux quoi, voir du dbase et le RPN Bienvenue dans le club des vieux (mais pas obsolètes ) 1
pommeverte Posté(e) Mars 26 Posté(e) Mars 26 il y a une heure, BO105cbs a dit : Bon t'as vu mes fichiers ? à priori, ça me parait juste mais comme tu n'as pas fourni la version initiale des fichiers, je ne peux pas être affirmatif...
BO105cbs Posté(e) Mars 27 Auteur Posté(e) Mars 27 Il y a 14 heures, pommeverte a dit : je ne peux pas être affirmatif... Mais qu'à cela ne tienne Messire, en pièce jointe se trouve les originaux Je te fais grâce des fichiers printer et moonraker dont la seule et unique modif Kampienne sont visible (bon mes restrictions d'agitation de la K1C aussi...) PommeVerte.zip Il y a 15 heures, Savate a dit : Bienvenue dans le club des vieux (mais pas obsolètes ) Il existe sur la toile un excellent reportage concernant le Cobol, que de jeunes "Geek" dirigeant une chaine "geek" découvraient avec étonnement que 66 ans plus tard, ce dernier existe toujours et est très employé. Tellement de langages ont étés créés depuis et ont sombrés dans les abîmes de l'informatique.... Alors que les valeurs sûres sont toujours là.. Il y a quelques temps, je regardait combien pesait en octet un excel des tous débuts, et son collègue le multiplan, par rapport à aujourd'hui c'est simplement effarant, surtout quant l'on sait le minuscule pourcentage de fonctions utilisées. Certains gérant des base de données avec, vi, vi. Alors que des sgbd sont conçu pour ça et vont beaucoup plus vite en prenant moins de place. Bref, ont ne vas pas réécrire l'affaire, ni refaire le monde... Et ma K1C un peu sado-maso adore que je lui tripote les entrailles , bon reste que son langage est étrange, tel le père Champollion, je cherche le traducteur..... Ce reportage est excellent, expliquant aussi les fondements de la terreur du bug de l'an 2000, qui devrait se reproduire entre 2030-2035 pour exactement les mêmes raisons.. Edifiant.
pommeverte Posté(e) Mars 27 Posté(e) Mars 27 (modifié) Salut, Ma seule remarque, c'est que je trouve que tu as un peu trop "scalpé" le script python. Dans le doute / par sécurité, j'aurai laissé le début des commandes Gcode: Citation self.gcode.run_script_from_command('G21') self.gcode.run_script_from_command('G1 F2400 E-0.5') self.gcode.run_script_from_command('SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=5') self.gcode.run_script_from_command('M204 S12000') #self.gcode.run_script_from_command('G21') #inutile car déjà envoyé 4 lignes au dessus self.gcode.run_script_from_command('SET_VELOCITY_LIMIT ACCEL_TO_DECEL=6000') # self.gcode.run_script_from_command('SET_PRESSURE_ADVANCE ADVANCE=0.04') # self.gcode.run_script_from_command('SET_PRESSURE_ADVANCE SMOOTH_TIME=0.04') self.gcode.run_script_from_command('M220 S100') self.gcode.run_script_from_command('M221 S100') Modifié (le) Mars 27 par pommeverte 1
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant