Aller au contenu

Messages recommandés

Posté(e)

Bonjour a tous,
J'aimerai savoir ou est t'il possible de modifier la position de la buse en cas d'annulation d'impression?
Ou ce situe cette macro?

Posté(e)

@Maker des bois  Si tu parles de Klipper, la macro, c'est toi qui la créé, dans ton fichier printer.cfg.

Voici un exemple de ma macro :

[gcode_macro CANCEL_PRINTING]
gcode:
    G91 # Position relative
    G10 # Retract un peu
    G0 Z20 F600 # Monte le Z de 20mm
    G90 # Position Absolu
    G0 X0 Y290 F2000 # Place la tete et avance le plateau
    M104 S0 # Désactive la chauffe
    M140 S0
    M106 S0 # Désactive le fan

😉

  • Merci ! 1
Posté(e)

Salut, oui désolé j'aurai pu préciser...
Le mien ressemble a ca:

gcode_macro CANCEL_PRINT]
description: Cancel the actual running print
rename_existing: CANCEL_PRINT_BASE
variable_park: True
gcode:
  ## Move head and retract only if not already in the pause state and park set to true
  {% if printer.pause_resume.is_paused|lower == 'false' and park|lower == 'true'%}
    _TOOLHEAD_PARK_PAUSE_CANCEL
  {% endif %}
  TURN_OFF_HEATERS
  CANCEL_PRINT_BASE

Effectivement si il est ecrit comme le tiens, il est tres facile de le modifier comme bon me semble.
Je debute avec Python et Klipper
J'ai fait pas mal de copié coller pour mon printer.cfg, je comprend le langage quand il est simple, comme ce que tu m'a envoyé mais je ne comprend pas quand c'est ecrit comme la partie que je t'ai envoyé

Je pense que je vais le refaire comme tu me la dit.
Comme il est ecrit dans mon printer.cfg je me demande ou sont écrit les déplacement de la buse.

Voici aussi mon macro_resume, ecrit de la meme facon

[gcode_macro RESUME]
description: Resume the actual running print
rename_existing: RESUME_BASE
gcode:
  ##### read extrude from  _TOOLHEAD_PARK_PAUSE_CANCEL  macro #####
  {% set extrude = printer['gcode_macro _TOOLHEAD_PARK_PAUSE_CANCEL'].extrude %}
  #### get VELOCITY parameter if specified ####
  {% if 'VELOCITY' in params|upper %}
    {% set get_params = ('VELOCITY=' + params.VELOCITY)  %}
  {%else %}
    {% set get_params = "" %}
  {% endif %}
  ##### end of definitions #####
  {% if printer.extruder.can_extrude|lower == 'true' %}
    M83
    G1 E{extrude} F2100
    {% if printer.gcode_move.absolute_extrude |lower == 'true' %} M82 {% endif %}
  {% else %}
    {action_respond_info("Extruder not hot enough")}
  {% endif %}  
  RESUME_BASE {get_params}

Et voici ma macro _TOOLHEAD_PARK_PAUSE_CANCEL:

[gcode_macro _TOOLHEAD_PARK_PAUSE_CANCEL]
description:outil pour le menu pause
variable_extrude: 1.0
gcode:
  ##### définir la position du parc pour x et y #####
  # La valeur par défaut est la position maximale de votre printer.cfg
  {% set x_park = printer.toolhead.axis_maximum.x|float - 5.0 %}
  {% set y_park = printer.toolhead.axis_maximum.y|float - 5.0 %}
  {% set z_park_delta = 2.0 %}
  ##### calculer la position de l'ascenseur de sauvegarde ???? #####
  {% set max_z = printer.toolhead.axis_maximum.z|float %}
  {% set act_z = printer.toolhead.position.z|float %}
  {% if act_z < (max_z - z_park_delta) %}
    {% set z_safe = z_park_delta %}
  {% else %}
    {% set z_safe = max_z - act_z %}
  {% endif %}
  ##### end of definitions #####
  {% if printer.extruder.can_extrude|lower == 'true' %}
    M83
    G1 E-{extrude} F2100
    {% if printer.gcode_move.absolute_extrude |lower == 'true' %} M82 {% endif %}
  {% else %}
    {action_respond_info("Extruder not hot enough")}
  {% endif %}
  {% if "xyz" in printer.toolhead.homed_axes %}
    G91
    G1 Z{z_safe} F900
    G90
    G1 X{x_park} Y{y_park} F6000
    {% if printer.gcode_move.absolute_coordinates|lower == 'false' %} G91 {% endif %}
  {% else %}
    {action_respond_info("Printer not homed")}
  {% endif %}

Et tous ca je n'y comprend rien

Posté(e)
il y a 10 minutes, Maker des bois a dit :

##### définir la position du parc pour x et y #####
  # La valeur par défaut est la position maximale de votre printer.cfg
  {% set x_park = printer.toolhead.axis_maximum.x|float - 5.0 %}
  {% set y_park = printer.toolhead.axis_maximum.y|float - 5.0 %}
  {% set z_park_delta = 2.0 %}

Ce que je comprends de ce code, c'est qu'il positionne la tete à X190 Y190  ( 200 - 5%) et que le Z monte de 4mm

Mais je ne comprends pas trop le principe de l'ascenseur de sauvegarde !   Peut-être pour ne pas aller taper dans le Maximum en Z sur des grosses pieces ??

🧐

  • Merci ! 1
Posté(e) (modifié)

En faite mon code vient claquer en max_X et max_Y
Pourquoi aller en X_max alors qu'il pourrai utiliser le end_stop X, que la buse aille a droite ou a gauche cela ne change rien.
Pour le Y forcement il faut avancer le plateau pour présenter la pièce, mais je préférerai que le plateau aille en Y=230 plutôt qu'a son max (235 ENDER 3 PRO)
Pour le Z  je préfère lui demander de monter de 20mm avec une condition limitante si il est a moins de 20 mm du max. Et je n'ai encore jamais été au max du Z. Au max je suis monter a 15 cm (que des pieces mecanique jamais de figurine) j'ai tendance a utiliser la surface plutôtque la hauteur.
De plus je peu enlever dans le slicer 20mm sur le Z ce qui me garanti que je ne monterai pas plus haut que possible.

Je préfère ton code, il est plus simple et je le comprend. Je vais changer le mien, peux tu m'envoyer tes 3 macro en question, pour que j'en prenne exemple.
Au moins je comprendrai enfin mon code printer.cfg en entier.

Modifié (le) par Maker des bois
Posté(e)

Je peut t'envoyer mes macros, tu piocheras ce que tu as besoin...    Mais les macros Pause et Resume ne sont pas définis encore !!!

######################################################################
# Macros
######################################################################

[gcode_macro START_PRINT]
gcode:
    G90                 # Use absolute coordinates
    # Reset Pressure Advance to 0, will be adjusted later in gcode based on material settings from cura
    #M900 K0
    BED_MESH_PROFILE LOAD=default    # Use the bed mesh
    G1 X2 Y30 Z5 F6000             # Move the nozzle near the purge beginning
    M117 Waiting for temperature
    PURGE       # Prime line
    M117 Impression...

[gcode_macro END_PRINT]
gcode:
    M117 Impression terminee :)
    G91                     # Move nozzle away from print while retracting
    G1 X-2 Y-2 E-3 F300
    G1 Z10 F3000            # Raise nozzle by 10mm
    G90                     # absolute xy
    G1 X5 Y295 F2000
    M104 S0                 # Turn off hotend, heated bed and fan
    M140 S0
	M106 S0
    M84                     # disable steppers
    BED_MESH_CLEAR

[gcode_macro PURGE]
gcode: 
    M117 Prime Line
    G92 E0 ;Reset Extruder
    # move z axis 
    G1 Z2.0 F3000 ;Move Z Axis up
    # move to prime position 
    G1 X2 Y30 Z0.20 F5000.0 ;Move to start position
    G1 X2 Y200.0 Z0.20 F1500.0 E15 ;Draw the first line
    G1 X2.4 Y200.0 Z0.20 F5000.0 ;Move to side a little
    G1 X2.4 Y50 Z0.20 F1500.0 E30 ;Draw the second line
    G92 E0 ;Reset Extruder
    G1 Z2.0 F3000 ;Move Z Axis up
    G1 X5 Y20 Z0.2 F5000  ; Move over to prevent blob squish
 
# G29 => (1) home all (2) get bed mesh (3) move nozzle to corner so it doesnt ooze on the bed while heating up.
[gcode_macro G29]
gcode:
    G28
    M190 S60
    BED_MESH_CALIBRATE METHOD=automatic
    M125
    #BED_MESH_PROFILE SAVE=default
    SAVE_CONFIG

# Park toolhead
[gcode_macro M125]
gcode:
    SAVE_GCODE_STATE NAME=parking
    M117 Parking toolhead
    G91
    G1 Z10 F600 # move up 10 mm
    G90
    G1 X150 Y300 F4000 # move to park position
    RESTORE_GCODE_STATE NAME=parking

# LOW_TEMP_CHECK checks if there is a setpoint for the  extruder. 
# - If this setpoint is reached, continue. 
# - If not, heat to setpoint.
# - If no setpoint, heat to parameter T (default@200)
[gcode_macro LOW_TEMP_CHECK]
#variable_T: 200
gcode: 
    {% set T = params.T|default(200)|float %}
	{% if printer.extruder.target != 0 %} # if there is a setpoint for extruder
        {% if printer.extruder.temperature < printer.extruder.target %} # if not reached, heat
            M118 Heating from {printer.extruder.temperature} to {printer.extruder.target}.
            M109 S{printer.extruder.target|float} 
        {% endif %}
    {% else %} # if no setpoint for extruder
        {% if printer.extruder.target < param.T %}  # heat to T.
            M118 No setpoint, heating to {param.T}.
            M109 S{param.T}
        {% endif %}
    {% endif %}
    
# load filament
[gcode_macro M701]
gcode:
    SAVE_GCODE_STATE NAME=loading_filament
    M117 Loading Filament
    M83
    G92 E0.0
    LOW_TEMP_CHECK
    G1 E80 F2100  # Premier 80mm rapide
    G1 E20 F600    # purge --> lentement 
    G92 E0.0
    RESTORE_GCODE_STATE NAME=loading_filament
    
# unload filament
[gcode_macro M702]
gcode:
    SAVE_GCODE_STATE NAME=unloading_filament
    M125 # park
    M117 Unloading Filament 
    LOW_TEMP_CHECK
    G91 # set relative
    G1 E3 F100  # preparation retrait en extrudant un peu de filament
    G92 E0.0
    # Tete CR10V2
    G1 E-15 F1500  # retraction primaire
    G1 E-85 F1800  # retrait hors tete  
    G92 E0.0
    RESTORE_GCODE_STATE NAME=unloading_filament

# M600: Filament Change. This macro will pause the printer, move the
# tool to the change position, and retract the filament 50mm. Adjust
# the retraction settings for your own extruder. After filament has
# been changed, the print can be resumed from its previous position
# with the "RESUME" gcode.

[gcode_macro M600]
gcode:
    {% set X = params.X|default(30)|float %}
    {% set Y = params.Y|default(30)|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
    RESUME
    RESTORE_GCODE_STATE NAME=M600_state MOVE=1

[gcode_macro CANCEL_PRINTING]
gcode:
    G91 # Relative position
    G10
    G0 Z20 F600 # Move Z up 20mm
    G90 # Absolute position
    G0 X0 Y290 F2000 # Park the nozzle and present print
    M104 S0 # Disable all heaters
    M140 S0
    M106 S0 # Disable fan

😉

 

 

  • J'aime 1
Posté(e) (modifié)
il y a 19 minutes, PierreG a dit :
{% set X = params.X|default(30)|float %}

peut tu m'expliquer cette ligne vite fait sinon je ferai des recherches.
{ } ??
% %??
| ??

Et bien merci pour toutes tes macros, ca va mettre utile pour avoir un printer.cfg qui me conviens.

Modifié (le) par Maker des bois
Posté(e) (modifié)

La syntaxe est du jinja2: {% … %}

Les … correspondent à la variable utilisée (set) . Donc X = le paramètre X passé lors de l'appel de la macro, si ce paramètre est absent, la valeur par défaut sera de 30, cette valeur est numérique de type flottant (float).

Donc en résumé:

Ce qui se trouve entre {% et %} correspond à une variable à laquelle on peut attribuer une valeur par défaut ( |default(30) et dont on précise le type ( |float ).

Bine mettre un espace après le % et avant le %

🙂

Modifié (le) par fran6p
Posté(e)
il y a 6 minutes, fran6p a dit :

Ce qui se trouve entre {% et %} correspond à une variable

Salut fran6p

Je l'avais déja lu mais j'ai oublié, merci. Je vous ai posé la question par facilité et gain de temps mais il va falloir que je regarde qq tutos pour me mettre au niveau.

il y a 8 minutes, fran6p a dit :

on peut attribuer une valeur par défaut ( |default(30) et dont on précise le type ( |float ).

Bine mettre un espace après le % et avant le %

Ok c'est la facon d'ecrire en python la définition d'une variable, son type et sa valeur par défaut. Basique... Ce sont des bribes de bases que j'ai ^^

Posté(e) (modifié)

Les briques sont essentielles à une bonne fondation 😉

Dans ton «ancienne» macro, les positions de déplacement lors d'une pause utilisent les paramètres ( position_max: ) définis dans les sections [stepper_x] et [stepper_y] via les variables « printer.toolhead.axis_maximum.x|float - 5.0 », de type flottant moins 5%, tu pourrais mettre des valeurs «fixes», par exemple:

set x_park = 220|float (si tu veux déplacer la tête en X à 220 et que l'imprimante en est physiquement capable 😉)

Je pense que le terme «ascenseur» fait plutôt référence au décalage (offset) à appliquer pour l'axe Z.

 

La documentation de Klipper n'est pas encore totalement disponible en français ( @Savateet moi y contribuons ), en attendant tu peux tout de même consulter une «pré-version», par exemple ici.

🙂

Modifié (le) par fran6p
Posté(e)
il y a 11 minutes, fran6p a dit :

Dans ton «ancienne» macro, les positions de déplacement lors d'une pause utilisent les paramètres ( position_max: ) définis dans les sections [stepper_x] et [stepper_y] via les variables « printer.toolhead.axis_maximum.x|float - 5.0 », de type flottant moins 5%, tu pourrais mettre des valeurs «fixes», par exemple:

set x_park = 220|float (si tu veux déplacer la tête en X à 220 et que l'imprimante en est physiquement capable 😉)

😍

La documentation de Klipper n'est pas encore totalement disponible en français ( @Savateet moi y contribuons ), en attendant tu peux tout de même consulter une «pré-version», par exemple ici.

OH MERCI

il y a 12 minutes, fran6p a dit :

Les briques sont essentielles à une bonne fondation 😉

Oui je sais bien, mais très peu de temps et tellement de choses intéressantes... Je bidouille dans le solaire et la mécanique avec un peu d’électronique aussi. L'impression 3D ce n'est que par période, quand il ne fait pas trop froid dans l'atelier, quand il y a l'elec pour l'alimenter, et avant c'etait aussi quand il y a une connexion internet...
Je fait ce que je peux ... 🙂

Une autre question vite fait: comment puis je modifier le homing? (vitesse et distance du deuxieme homing)

Posté(e)
Il y a 22 heures, Maker des bois a dit :

Une autre question vite fait: comment puis je modifier le homing? (vitesse et distance du deuxieme homing)

Par exemple, pour l'axe Z, j'ai ça, c'est le même principe pour les 3 axes.

[stepper_z]
step_pin: PL3 #ar46
dir_pin: !PL1 #!ar48
enable_pin: !PK0 #!ar62
microsteps: 16
rotation_distance: 8
full_steps_per_rotation: 200
position_max: 350 #ParMAtt
position_min: -4 # ParMAtt For the TouchMi
endstop_pin: probe:z_virtual_endstop
homing_speed: 8
homing_retract_dist: 10.0
homing_retract_speed: 10
second_homing_speed: 4
#position_endstop: 0.0 #Do not define because of the TouchMi

 

  • Merci ! 1
Posté(e)

L'explication (en français) des paramètres liés à la vitesse de mise à l'origine, des sections [stepper???] : https://github.com/Klipper3d/klipper-translations/blob/translations/docs/locales/fr/Config_Reference.md#stepper

🙂

  • Merci ! 1
Posté(e) (modifié)
Le 23/01/2023 at 14:32, willy2406 a dit :
homing_speed: 8
homing_retract_dist: 10.0
homing_retract_speed: 10
second_homing_speed: 4

 

Salut @willy2406, parfait c'est exactement ce que je cherchais. Merci
Je me doutais bien qu'il y avait un truc dans le genre, mais je ne connaissais pas le nom des variables permettant de le faire.

(Y'a des gros bugs sur le site aujd)

(Y'a des gros bugs sur le site aujd)

(Y'a des gros bugs sur le site aujd)

(Y'a des gros bugs sur le site aujd)

(Y'a des gros bugs sur le site aujd)

Modifié (le) par Maker des bois

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