Aller au contenu

Messages recommandés

Posté(e)

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 

Posté(e) (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) par pommeverte
Posté(e)

@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.

Posté(e)

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.😅

Posté(e)

@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.
 

 

Posté(e)

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

Posté(e)
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.

Posté(e)
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.

  • J'aime 1
  • +1 3
Posté(e) (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 : 🧐

  1. Moonraker.conf (ou il faut mettre des choses à la fin)
  2. Printer.cfg (avec le include kamp)
  3. gcode_macro (avec les modifs de print_start)
  4. Custom_macro.py (avec la fonction qui m'a procuré des soucis.....🤔 )
  5. kamp.cfg
  6. line_purge.cfg
  7. 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) par BO105cbs
Posté(e)
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 🙂)

  • Haha 1
  • +1 1
Posté(e) (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) par pommeverte
  • Haha 3
Posté(e)
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 ?

Posté(e)
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 😄)

  • Haha 1
Posté(e)
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...🥴

Posté(e)
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.

Posté(e) (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) par pommeverte
  • Confus 1

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
  • Sur cette page :   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
  • YouTube / Les Imprimantes 3D .fr

×
×
  • Créer...