Hallo Zusammen!
Ich bin gerade mal wieder ein wenig am verzweifeln. Ich arbeite mich gerade in die Konfiguration von Klipper ein und möchte gerne meinen Startcode nicht mehr über Cura definiert haben, sondern zentral in Klipper. Hintergrund ist, dass ich u.a. auch von mehreren Rechnern slice und dann auch nur an einem Ort Start- und End-Code-Einstellungen verwaltet und definiert haben möchte.
Eigentlich muss ich nur die Ziel-Temperatur des Bettes und des Extruders an Klipper übergeben.
In Cura habe ich folgendes als Startcode hinterlegt:
START_PRINT T_BED=[material_bed_temperature_layer_0] T_EXTRUDER=[material_print_temperature_layer_0]
Nun gehe ich davon aus, dass in der Variablen T_BED nun die Temperatur steht, die ich in Cura unter "Temperatur Druckplatte" eingestellt habe (also z.B. 60) und entsprechend in der Variablen T_EXTRUDER die Drucktemperatur hinterlegt ist (z.B. 210).
Mein Startcode im Klipper lautet:
[gcode_macro START_PRINT]
description: All what needs to be done at print start
gcode:
#### set defaults ####
{% set t_extruder = params.T_EXTRUDER|default(0) %}
{% set t_bed = params.T_BED|default(0) %}
#### end off definition ####
G28; home all axes
M83; extruder relative mode
M190 S{t_bed}; Bed heat up
LOAD_MESH_TEMP BED_TEMPERATURE={t_bed} ; Load mesh for bed temp
G1 Z1.0 F3000; move z up little to prevent scratching of surface
G1 X2 Y20 Z0.3 F5000.0; move to start-line position
M109 S{t_extruder}; Extruder heat up to target temp
G1 X2 Y200.0 Z0.3 F1500.0 E15; draw 1st line
G1 X2 Y200.0 Z0.4 F5000.0; move to side a little
G1 X2 Y20 Z0.4 F1500.0 E30; draw 2nd line
G92 E0; reset extruder
G90; Absolute positioning
G1 Z1.0 F3000; move z up little to prevent scratching of surface
-------
In den Zeilen
{% set t_extruder = params.T_EXTRUDER|default(0) %}
{% set t_bed = params.T_BED|default(0) %}
.... sollen die Werte, die aus Cura übergeben werden in die Variablen t_extruder und t_bed geschrieben werden.
Allerdings scheint das nicht zu funktionieren, denn ich bekomme die Fehlermeldung:
!! Error on 'M190 S[material_bed_temperature_layer_0] ; Bed heat up': unable to parse [
Die Übergabe scheint ja zu klappen, nur schreibt er keinen Wert rein, sondern den Text.
Das Script grundsätzlich geht, denn schreibe ich absolute Zahlen anstatt t_bed und t_extruder in die Zeilen
LOAD_MESH_TEMP BED_TEMPERATURE={t_bed}
M190 S{t_bed};
M109 S{t_extruder}
also
LOAD_MESH_TEMP BED_TEMPERATURE=60
M190 S60
M109 S210
gibt es keine Fehlermeldung.
Habe ich irgendwo einen Denk- oder Schreibfehler?
Im Anhang findet ihr die Scripte
Danke und LG