Набор макросов для прошивки Klipper
Для работы макросов, код можно добавить в основной файл конфигурации, либо же можно создать файл macros.cfg и подключить его строкой [include macros.cfg] в основном файле конфигурации printer.cfg
(частично откомментировал что где и зачем)
macros.cfg
[gcode_macro SHUTDOWN_MACHINE] # по тапу кнопки выключает хост правильно,
gcode: # завершая работу системы
{action_call_remote_method(«shutdown_machine»)}
# Добавить следующие строки в начальный джикод слайсера
# Cura: START_PRINT EXTRUDER_TEMP={material_print_temperature_layer_0} BED_TEMP={material_bed_temperature_layer_0}
# PrusaSlicer:
# M140 S0
# M104 S0
# START_PRINT EXTRUDER_TEMP=[first_layer_temperature] BED_TEMP=[first_layer_bed_temperature]
# Добавить в завершающий джикод: END_PRINT
[gcode_macro CANCEL_PRINT] # отмена печати
rename_existing: BASE_CANCEL_PRINT
gcode:
{% set E = printer[«gcode_macro START_PRINT»].retract|float %}
TURN_OFF_HEATERS
M107 # turn off fan
G91
G1 E-{E} F1500 # retract
G90
CLEAR_PAUSE
SDCARD_RESET_FILE
BASE_CANCEL_PRINT
PARK # парковка по отдельному
M18 # макросу
[gcode_macro PAUSE] # пауза во время печати
rename_existing: BASE_PAUSE
gcode:
{% set E = printer[«gcode_macro START_PRINT»].retract|float %}
SAVE_GCODE_STATE NAME=PAUSE_STATE
BASE_PAUSE
G91
G1 E-{E} F1500 # длина ретракта
G90
PARK # парковка по отдельному
# макросу
[gcode_macro RESUME] # возобновляет печать
rename_existing: BASE_RESUME
gcode:
{% set E = printer[«gcode_macro START_PRINT»].retract|float %}
G91
G1 E{E} F1500 # длина деретракта
G90
RESTORE_GCODE_STATE NAME=PAUSE_STATE MOVE=1
BASE_RESUME
[gcode_macro PARK] # парковка
gcode:
{% set x_park = params.X|default(10)|float %} # нужно изменить координату
{% set y_park = params.Y|default(200)|float %} # нужно изменить координату
{% set z_park = params.Z|default(10)|float + printer.toolhead.position.z|float %} # нужно изменить
{% set x_max = printer.toolhead.axis_maximum.x|float %} # координату
{% set y_max = printer.toolhead.axis_maximum.y|float %}
{% set z_max = printer.toolhead.axis_maximum.z|float %}
{% if x_park > x_max %}
{% set x_park = x_max %}
{% endif %}
{% if y_park > y_max %}
{% set y_park = y_max %}
{% endif %}
{% if z_park > z_max %}
{% set z_park = z_max %}
{% endif %}
SAVE_GCODE_STATE NAME=PARK_STATE
G90 # absolute positioning
G1 Z{z_park} F1500
G1 X{x_park} Y{y_park} F5000
RESTORE_GCODE_STATE name=PARK_STATE
[gcode_macro START_PRINT] # стартовый джикод
variable_retract: 3
gcode:
M117 Heating
{% set extruder_temp = params.EXTRUDER_TEMP|default(220)|float %}
{% set bed_temp = params.BED_TEMP|default(70)|float %}
{% set E = printer[«gcode_macro START_PRINT»].retract|float %}
CLEAR_PAUSE
M220 S100 # reset feedrate
M221 S100
SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET={bed_temp} # set bed t℃
TEMPERATURE_WAIT SENSOR=heater_bed MINIMUM={bed_temp * 0.90} # ожидание нагрева стола
SET_HEATER_TEMPERATURE HEATER=extruder TARGET={extruder_temp} # set nozzle t℃
G90 # absolute positioning
M82 # absolute extrusion mode
TEMPERATURE_WAIT SENSOR=heater_bed MINIMUM={bed_temp} # wait until
TEMPERATURE_WAIT SENSOR=extruder MINIMUM={extruder_temp} # wait until
M117 Home
G28 # home
BED_MESH_PROFILE LOAD=default
G0 Z10 F1500 # raise Z
G92 E0 # reset extruder
G1 E{E} F1500 # prime
G92 E0 # reset extruder
M117 Printing…
[gcode_macro END_PRINT] # завершающий джикод
gcode:
{% set E = printer[«gcode_macro START_PRINT»].retract|float %}
TURN_OFF_HEATERS
M107 # turn off fan
G91 # relative positioning
G1 E-{E} F1500 # retract
G0 X5 Y5 F5000 # wipe
G0 Z2 F1500 # raise Z
G90 # absolute positioning
PARK
M84 # turn off all motors
M106 S200
G4 P100000
M106 S0
[gcode_macro PID_E] # калибровка пид экструдера
gcode:
{% set T = params.T|default(240) %}
PID_CALIBRATE HEATER=extruder TARGET={T}
[gcode_macro PID_B] # калибровка пид стола
gcode:
{% set T = params.T|default(80) %}
PID_CALIBRATE HEATER=heater_bed TARGET={T}
[gcode_macro MOTOR_OFF] # отключение моторов
gcode:
M18
[gcode_macro M81] # отключение 3д принтера
gcode: # требует настройки пина
SET_PIN PIN=POWER_OFF VALUE=1