Ho una lk1 longer con klipper e vorrei stampare dei portachiavi con la scritta in rilievo con un colore diverso dalla base e come posso fare?
Ho provato a creare questa macro ma non funziona correttamente
[gcode_macro CAMBIO_COLORE]
description: Cambio colore con spurgo e pulizia dopo la pausa
gcode:
{% set x_wipe = 290 %}
{% set y_wipe = 10 %}
{% set z_lift = 10 %} # Altezza Z di sollevamento per il cambio colore (modificata a 10mm)
{% set purge_len = 50 %}
{% set clean_line = 30 %}
{% set clean_extrude = 2 %}
{% set initial_z = printer.toolhead.position.z %}
G91 ; Setta coordinate relative
G1 Z{z_lift} F1000 ; Alza l'asse Z alla posizione di sollevamento definita per il cambio colore
G90 ; Setta coordinate assolute
G1 X{x_wipe} Y{y_wipe} F6000 ; Muovi la testina in posizione di "park" (fuori dall'area di stampa)
RESPOND PREFIX="CAMBIO COLORE" MSG="Cambia il filamento e premi 'Resume' per continuare"
PAUSE ; <<--- QUI CHIAMIAMO LA MACRO PAUSE. QUESTA DOVREBBE BLOCCARE L'ESECUZIONE.
G1 Z0.2 F1000 ; Abbassa il nozzle vicino al piatto per l'estrusione di pulizia (posizione assoluta)
G92 E0 ; Reset dell'estrusore
G1 E{purge_len} F300 ; Estrudi il filamento nuovo (purging)
G1 X{clean_line} E{clean_extrude} F800 ; Esegue una linea di pulizia (wipe)
G92 E0 ; Reset dell'estrusore
G1 Z{initial_z} F1000 ; Torna all'altezza Z iniziale prima della pausa
# --- Macro di supporto ---
[gcode_macro M600]
description: Alias per CAMBIO_COLORE (M600 è il G-code standard per il cambio filamento)
gcode:
CAMBIO_COLORE ; Chiama direttamente la macro CAMBIO_COLORE
[gcode_macro PAUSE]
description: Pausa con sollevamento e timeout esteso (mantiene le temperature)
gcode:
SAVE_GCODE_STATE NAME=PAUSE_STATE ; Salva lo stato attuale della stampante (posizione, velocità, ecc.)
M118 Pausa attivata. In attesa dell'utente... ; Messaggio nel terminale
G91 ; Setta coordinate relative
G1 Z5 F900 ; **MODIFICATO:** Alza la testina di 5mm *aggiuntivi* rispetto a dove si trova la Z in quel momento.
; Questo è il sollevamento standard della pausa.
G90 ; Setta coordinate assolute
# Il comando SET_IDLE_TIMEOUT non è necessario per la pausa in sé.
# Klipper gestisce la pausa effettiva dopo l'esecuzione di questa macro.
# L'estensione del timeout è più per evitare che la stampante si spenga completamente
# se rimane inattiva per molto tempo DOPO aver ripreso o DOPO che la stampa è finita.
# Se vuoi mantenere il timeout esteso durante l'intera durata della pausa, puoi lasciarlo.
SET_IDLE_TIMEOUT TIMEOUT=3600
[gcode_macro RESUME]
description: Ripresa stampa dopo pausa
gcode:
M118 Ripresa stampa in corso... ; Messaggio nel terminale
SET_IDLE_TIMEOUT TIMEOUT=30 ; Ripristina il timeout di inattività normale
# Klipper ha una gestione interna per il ritorno alla posizione pre-pausa.
# Non è sempre necessario un RESTORE_GCODE_STATE in RESUME se non hai fatto movimenti complessi
# all'interno della pausa, ma è una buona pratica se SAVE_GCODE_STATE è stato usato.
RESTORE_GCODE_STATE NAME=PAUSE_
STATE MOVE=1 ; Ripristina lo stato salvato e muovi la testina.