Aller au contenu

GO Print

Klipper - message d'erreur : No trigger on x after full movement


Serge62

Messages recommandés

il y a 2 minutes, Serge62 a dit :

Je viens de regarder... il envoie ça

Essaye de rajouter ça avant le START_PRINT dans le gcode de démarrage de PS

M104 S0 ; Stops PS/SS from sending temp waits separately
M140 S0 ;
START_PRINT ....

 

  • Merci ! 1
Lien vers le commentaire
Partager sur d’autres sites

il y a 13 minutes, Serge62 a dit :

c'est bien un bug de prusaslicer

Ce n'est pas un bug, c'est une fonctionnalité non désirée 😄 

Lien vers le commentaire
Partager sur d’autres sites

Hello,

Je continue mon apprentissage des macros ... 😇

Et évidemment, j'ai un nouveau souci 😪

Dans Prusaslicer, il semble assez simple de paramétrer un changement de couleur.

J'ai vérifier dans le g-code, M600 est bien présent.

J'ai installé cette macro dans mainsail :

[gcode_macro M600]
gcode:
    {% set X = params.X|default(50)|float %}
    {% set Y = params.Y|default(0)|float %}
    {% set Z = params.Z|default(10)|float %}
    SAVE_GCODE_STATE NAME=M600_state
    PAUSE
    G91
    G1 E-.8 F2700
    G1 Z{Z}
    G90
    G1 X{X} Y{Y} F3000
    G91
    G1 E-50 F1000
    RESTORE_GCODE_STATE NAME=M600_state

L'impression se déroule bien. L'imprimante réagit au changement de couche, mais elle redémarre son impression sans me laisser la possibilité de changer le filament.

Comment puis-je insérer une pause ?

Encore une fois, quand je clique sur la macro, tout fonctionne bien. L'imprimante attend bien que je change le filament et attend un resume pour redémarrer.

J'y comprend rien, voilà que ça marche maintenant 🤔 Bizarre cette imprimante....

Modifié (le) par Serge62
Lien vers le commentaire
Partager sur d’autres sites

Il y a 5 heures, Serge62 a dit :

c'est bien un bug de prusaslicer ?

C'est plus le fait que le trancheur ne connait pas les macros Klipper et ne «voyant» pas de mise en chauffe, il les ajoute de son propre chef (l'astuce de @Savateest celle recommandée pour éviter ce «soucis»). Avec Cura, c'est le même «problèmes» 😉  , mon Cura Start Gcode :

Révélation

;Nozzle diameter = {machine_nozzle_size}

;Filament type = {material_type}

;Filament name = {material_name}

;Filament weight = {filament_weight}

; M190 S{material_bed_temperature_layer_0}

; M109 S{material_print_temperature_layer_0}

M109 S0

M190 S0

START_PRINT BED_TEMP={material_bed_temperature_layer_0} EXTRUDER_TEMP={material_print_temperature_layer_0}

Fait également attention aux «placeholders» utilisés par les trancheurs (nom des variables et manière de les encadrer),

Prusaslicer / Superslicer : on utilise des [ ] quand on utilise une seule variable mais { } si avec cette variable on fait un calcul par exemple ;

M140 S[first_layer_bed_temperature] ; set bed temp
M190 S[first_layer_bed_temperature] ; wait for bed
M104 S{first_layer_temperature[initial_extruder]+extruder_temperature_offset[initial_extruder]} ; set hotend temp
M109 S{first_layer_temperature[initial_extruder]+extruder_temperature_offset[initial_extruder]} ; wait for hotend 

Cura utilise des { } pour encadrer les variables (les noms sont différents de {Prusa|Super}slicer :

M140 S{material_bed_temperature_layer_0} ; set bed temp
M190 S{material_bed_temperature_layer_0} ; wait for bed
M104 S{material_print_temperature_layer_0} ; set hotend temp
M109 S{material_print_temperature_layer_0} ; wait for hotend 

Pour infos, mon START_PRINT (ou PRINT_START) est maintenant le suivant :

Citation

[gcode_macro START_PRINT]
description: Use START_PRINT for the slicer beginning script
  Customize for your slicer of choice with placeholders. These are different
  for slicers, so take care of their syntax.
gcode:
      # Get Printer built volume dimensions
      {% set X_MAX = printer.toolhead.axis_maximum.x|default(235)|float %}
      {% set Y_MAX = printer.toolhead.axis_maximum.y|default(235)|float %}
      {% set Z_MAX = printer.toolhead.axis_maximum.z|default(270)|float %}
      # Get Nozzle diameter and filament width for conditioning
      {% set NOZZLE = printer.extruder.nozzle_diameter|default(0.4)|float %}
      {% set FILADIA = printer.extruder.filament_diameter|default(1.75)|float %}
      # Set Start coordinates of purge lines
      {% set X_START = 4.0|default(4.0)|float %}
      {% set Y_START = 9.0|default(9.0)|float %}
      # Calculate purge line extrusion volume and filament length
      {% set PRIMER_WIDTH = 1 * NOZZLE %}                    
      {% set PRIMER_HEIGHT = 0.5 * NOZZLE %}           
      {% set PRIMER_SECT = PRIMER_WIDTH * PRIMER_HEIGHT %}    
      {% set PRIMER_VOL = PRIMER_SECT * (Y_MAX - 3 - Y_START) * 2 %}    
      {% set FILA_SECT = 3.1415 * ( FILADIA / 2.0) * ( FILADIA / 2.0) %}          
      {% set FILA_LENGTH = 1.55 * PRIMER_VOL / FILA_SECT %}      
      # Get Bed and Extruder temperature from Slicer GCode
      {% set BED_TEMP = params.BED_TEMP|default(60)|float %}
      {% set EXTRUDER_TEMP_PRE = 160|float %}
      {% set EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(205)|float %}
      # Preheat nozzle and bed
      M104 S{EXTRUDER_TEMP_PRE}                        
      M190 S{BED_TEMP}
      # Reset Pressure Advance to 0, will be adjusted later in G-code based on material settings from Cura
      #M900 K0
      # Reset the G-Code Z offset (adjust Z offset if needed)
      SET_GCODE_OFFSET Z=0.0
      # Home
      _CG28
      # either use one of these below lines : G29 and / or BED_MESH_CALIBRATE
      # do bed leveling for each print.
      # BED_MESH_PROFILE use an already made leveling.
      #G29
      #BED_MESH_CALIBRATE
      BED_MESH_PROFILE LOAD="default"
      #LEVEL_BED_ADVANCED MAX_AGE=10 ; probe mesh eventually
      # Park nozzle while things heat up
      G1 X{X_START} Y{Y_START-5} Z{PRIMER_HEIGHT} F6000.0                 
      # Heat nozzle and bed
      M190 S{BED_TEMP}                               
      M109 S{EXTRUDER_TEMP}                       
      # Purge line
      G90
      G92 E0     
      G1 X{X_START} Y{Y_START} Z{PRIMER_HEIGHT} F6000.0     
      G1 X{X_START} Y{Y_MAX - 3 - Y_START} Z{PRIMER_HEIGHT} E{FILA_LENGTH} F2000.0
      G1 X{X_START + PRIMER_WIDTH} Y{Y_MAX - 3 - Y_START} Z{PRIMER_HEIGHT}
      G1 X{X_START + PRIMER_WIDTH} Y{Y_START} Z{PRIMER_HEIGHT} E{FILA_LENGTH*2} F2000.0
      G92 E0            
      G1 Z2.0 F600        
      G1 Z0.2 F600        
      G1 Z2.0 F600

# Alternative macros PRINT_START and PRINT_END
[gcode_macro PRINT_START]
gcode:
    START_PRINT { rawparams }

Pour la chauffe des éléments (M109 M190), j'utilise également des macros car Klipper sinon attend que la température soit stabilisée (je n'aime pas attendre 😄 ) :

Citation

# Replace M109 (wait for hotend temperature) and M190 (wait for bed temperature) with TEMPERATURE_WAIT.
# This just makes Klipper resume immediately after reaching temp. Otherwise, it waits for the temperature to stabilize.
[gcode_macro M109]
rename_existing: M99109
gcode:
    #Parameters
    {% set s = params.S|float %}
    
    M104 {% for p in params %}{'%s%s' % (p, params[p])}{% endfor %}  ; Set hotend temp
    {% if s != 0 %}
        TEMPERATURE_WAIT SENSOR=extruder MINIMUM={s} MAXIMUM={s+1}   ; Wait for hotend temp (within 1 degree)
    {% endif %}

[gcode_macro M190]
rename_existing: M99190
gcode:
    #Parameters
    {% set s = params.S|float %}

    M140 {% for p in params %}{'%s%s' % (p, params[p])}{% endfor %}   ; Set bed temp
    {% if s != 0 %}
        TEMPERATURE_WAIT SENSOR=heater_bed MINIMUM={s} MAXIMUM={s+1}  ; Wait for bed temp (within 1 degree)
    {% endif %}

 

🙂

Modifié (le) par fran6p
  • Merci ! 1
Lien vers le commentaire
Partager sur d’autres sites

Merci @fran6ppour ce partage.

J'avoue humblement ne pas tout comprendre, mais je vois l'idée 🙂

C'est vrai que c'est ch... d'attendre 😉

J'ai une autre question qui découle de l'utilisation des macros.

Est-ce que le homing et le bed leveling se font sous Klipper à chaud ou à froid ?

Dans mon start_print, le home se fait à froid, mais dans le tien à chaud. 

Dans ma macro bed leveling c'est à froid aussi.

Finalement, c'est mieux de le faire à chaud ou à froid ?

J'ai des soucis de première couche du coup. Perso je dirai que c'est mieux à chaud, mais j'ai entendu dire que sous Klipper c'était à froid...

Modifié (le) par Serge62
Lien vers le commentaire
Partager sur d’autres sites

Je l'ai toujours fait à chaud, question d'habitude particulièrement pour le «bed_mesh», la buse est à 160°C uniquement pour pouvoir bien la «nettoyer» de tout résidu de filament et à cette température, le filament ne suinte pas.

Klipper, au moins pour la partie nivellement via la méthode «papier» dit de le faire à température ambiante pour la buse, extrait de la documentation :

Citation

Effectuez toujours le test du papier lorsque la buse et le lit sont à température ambiante !

Lorsque la buse est chauffée, sa position (par rapport au lit) change en raison de la dilatation thermique. Cette dilatation thermique est généralement d'environ 100 microns, ce qui correspond à peu près à la même épaisseur qu'un morceau de papier d'imprimante typique. La quantité exacte de dilatation thermique n'est pas cruciale, tout comme l'épaisseur exacte du papier n'est pas cruciale. Commencez par l'hypothèse que les deux sont égaux (voir ci-dessous pour une méthode de détermination de la différence entre les deux distances).

Il peut sembler étonnant de calibrer la distance à température ambiante alors que l'objectif est d'avoir une distance constante lorsqu'il est chauffé. Cependant, si l'on calibre lorsque la buse est chauffée, elle a tendance à laisser couler de petites quantités de plastique fondu sur le papier, ce qui modifie la quantité de frottement ressenti. Cela complique l'obtention d'un bon calibrage. Le calibrage alors que le lit/la buse est chaud augmente également considérablement le risque de se brûler. La dilatation thermique est stable, elle est donc facilement prise en compte plus tard dans le processus d'étalonnage.

Leur raison est celle «en gras», comme je ne chauffe la buse qu'à 160°C, je n'ai pas de problème de suintement 😉 Quant aux brûlures, je ne me suis mis en contact avec une buse une seule fois, il y a bien longtemps et cela m'a servi d'apprentissage 😄 et j'évite de poser mes gros doigts sur le plateau ce qui fausserait sa planéité.

Lien vers le commentaire
Partager sur d’autres sites

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
×
×
  • Créer...