mirror of
https://github.com/Dark98/Ender-3_V3_KE_Klipper.git
synced 2026-07-02 16:49:04 +00:00
407 lines
10 KiB
INI
Executable File
407 lines
10 KiB
INI
Executable File
# Ender-3V3 KE
|
|
|
|
[exclude_object]
|
|
|
|
[virtual_sdcard]
|
|
#path: /home/rock/gcode_files
|
|
path: /usr/data/printer_data/gcodes
|
|
|
|
[pause_resume]
|
|
|
|
[display_status]
|
|
[gcode_macro CANCEL_PRINT]
|
|
description: Cancel the actual running print
|
|
rename_existing: CANCEL_PRINT_BASE
|
|
gcode:
|
|
TURN_OFF_HEATERS
|
|
{% if "xyz" in printer.toolhead.homed_axes %}
|
|
G91
|
|
G1 Z2
|
|
G90
|
|
{% else %}
|
|
{action_respond_info("Printer not homed")}
|
|
G28 X Y
|
|
{% endif %}
|
|
G1 F3000X0Y222
|
|
M104 S0
|
|
M140 S0
|
|
M107
|
|
M84
|
|
CANCEL_PRINT_BASE
|
|
FINISH_INIT
|
|
|
|
|
|
|
|
[gcode_macro PRINT_CALIBRATION]
|
|
# This part of the command is replaced by the application side without passing parameters
|
|
gcode:
|
|
CX_PRINT_LEVELING_CALIBRATION
|
|
|
|
[gcode_macro FIRST_FLOOR_PAUSE_POSITION]
|
|
gcode:
|
|
{% set extruder_temp = printer.custom_macro.g28_ext_temp %}
|
|
M104 S{extruder_temp}
|
|
{% set y_park = printer.toolhead.axis_maximum.y/2 %}
|
|
{% set x_park = printer['gcode_macro PRINTER_PARAM'].max_x_position|float %}
|
|
G90
|
|
G1 Z2 F600
|
|
G1 X{x_park} Y{y_park} F6000
|
|
G1 Z0.2 F600
|
|
|
|
[gcode_macro FIRST_FLOOR_RESUME]
|
|
description: Resume the first floor print
|
|
gcode:
|
|
##### read E from pause macro #####
|
|
{% set E = printer["gcode_macro FIRST_FLOOR_PAUSE"].extrude|float + 1.0 %}
|
|
#### 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' %}
|
|
G91
|
|
G1 E{E} F2100
|
|
{% else %}
|
|
{action_respond_info("Extruder not hot enough")}
|
|
{% endif %}
|
|
RESUME_BASE {get_params}
|
|
|
|
[gcode_macro FIRST_FLOOR_PAUSE]
|
|
description: Pause the first floor print
|
|
# change this if you need more or less extrusion
|
|
variable_extrude: 2.0
|
|
gcode:
|
|
##### read E from pause macro #####
|
|
{% set E = printer["gcode_macro FIRST_FLOOR_PAUSE"].extrude|float %}
|
|
##### set park positon for x and y #####
|
|
# default is your max posion from your printer.cfg
|
|
{% set y_park = printer.toolhead.axis_maximum.y/2 %}
|
|
{% set x_park = printer.toolhead.axis_maximum.x|float - 10.0 %}
|
|
##### calculate save lift position #####
|
|
{% set max_z = printer["gcode_macro PRINTER_PARAM"].max_z_position|float %}
|
|
{% set act_z = printer.toolhead.position.z|float %}
|
|
{% set z_safe = 0.0 %}
|
|
{% if act_z < (max_z - 2.0) %}
|
|
{% set z_safe = 2.0 %}
|
|
{% elif act_z < max_z %}
|
|
{% set z_safe = max_z - act_z %}
|
|
{% endif %}
|
|
##### end of definitions #####
|
|
SET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=z_safe_pause VALUE={z_safe|float}
|
|
PAUSE_BASE
|
|
G91
|
|
{% if "xyz" in printer.toolhead.homed_axes %}
|
|
{% if printer.extruder.can_extrude|lower == 'true' %}
|
|
G1 E-1.0 F180
|
|
G1 E-{E} F4000
|
|
{% else %}
|
|
{action_respond_info("Extruder not hot enough")}
|
|
{% endif %}
|
|
G1 Z{z_safe} F600
|
|
G90
|
|
G1 X{x_park} Y{y_park} F30000
|
|
{% else %}
|
|
{action_respond_info("Printer not homed")}
|
|
{% endif %}
|
|
|
|
[gcode_macro PAUSE]
|
|
description: Pause the actual running print
|
|
rename_existing: PAUSE_BASE
|
|
# change this if you need more or less extrusion
|
|
variable_extrude: 1.0
|
|
gcode:
|
|
##### read E from pause macro #####
|
|
{% set E = printer["gcode_macro PAUSE"].extrude|float %}
|
|
##### set park positon for x and y #####
|
|
# default is your max posion from your 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 x_park = 0 %}
|
|
{% set y_park = 222 %}
|
|
##### calculate save lift position #####
|
|
{% set max_z = printer.toolhead.axis_maximum.z|float %}
|
|
{% set act_z = printer.toolhead.position.z|float %}
|
|
{% if act_z < 48.0 %}
|
|
{% set z_safe = 50.0 - act_z %}
|
|
{% elif act_z < (max_z - 2.0) %}
|
|
{% set z_safe = 2.0 %}
|
|
{% else %}
|
|
{% set z_safe = max_z - act_z %}
|
|
{% endif %}
|
|
SET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=z_safe_pause VALUE={z_safe|float}
|
|
##### end of definitions #####
|
|
PAUSE_BASE
|
|
G91
|
|
SET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=hotend_temp VALUE={printer.extruder.target}
|
|
M104 S140
|
|
{% if printer.extruder.can_extrude|lower == 'true' %}
|
|
G1 E-{E} F2100
|
|
{% else %}
|
|
{action_respond_info("Extruder not hot enough")}
|
|
{% endif %}
|
|
{% if "xyz" in printer.toolhead.homed_axes %}
|
|
G1 Z{z_safe} F600
|
|
M400
|
|
G90
|
|
G1 X{x_park} Y{y_park} F6000
|
|
{% else %}
|
|
{action_respond_info("Printer not homed")}
|
|
{% endif %}
|
|
|
|
[gcode_macro RESUME]
|
|
description: Resume the actual running print
|
|
rename_existing: RESUME_BASE
|
|
gcode:
|
|
{% if printer['gcode_macro PRINTER_PARAM'].hotend_temp|int != 0 %}
|
|
{% if printer['gcode_macro PRINTER_PARAM'].hotend_temp|int > printer.extruder.temperature %}
|
|
M109 S{printer['gcode_macro PRINTER_PARAM'].hotend_temp|int}
|
|
{% else %}
|
|
M104 S{printer['gcode_macro PRINTER_PARAM'].hotend_temp|int}
|
|
{% endif %}
|
|
SET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=hotend_temp VALUE=0
|
|
{% endif %}
|
|
##### read E from pause macro #####
|
|
{% set E = printer["gcode_macro PAUSE"].extrude|float %}
|
|
#### get VELOCITY parameter if specified ####
|
|
{% if 'VELOCITY' in params|upper %}
|
|
{% set get_params = ('VELOCITY=' + params.VELOCITY) %}
|
|
{%else %}
|
|
{% set get_params = "" %}
|
|
{% endif %}
|
|
{% set z_resume_move = printer['gcode_macro PRINTER_PARAM'].z_safe_pause|int %}
|
|
{% if z_resume_move > 2 %}
|
|
{% set z_resume_move = z_resume_move - 2 %}
|
|
G91
|
|
G1 Z-{z_resume_move} F600
|
|
M400
|
|
{% endif %}
|
|
|
|
##### end of definitions #####
|
|
{% if printer.extruder.can_extrude|lower == 'true' %}
|
|
G91
|
|
G1 E{E} F2100
|
|
{% else %}
|
|
{action_respond_info("Extruder not hot enough")}
|
|
{% endif %}
|
|
RESUME_BASE {get_params}
|
|
|
|
|
|
[gcode_macro PRINTER_PARAM]
|
|
variable_z_safe_pause: 0.0
|
|
variable_max_x_position: 220.0
|
|
variable_max_y_position: 220.0
|
|
variable_max_z_position: 240.0
|
|
variable_fans: 3
|
|
variable_auto_g29: 0
|
|
variable_default_bed_temp: 50
|
|
variable_default_extruder_temp: 240
|
|
variable_g28_extruder_temp: 140
|
|
variable_print_calibration: 0
|
|
variable_fan0_min: 140
|
|
variable_hotend_temp: 200
|
|
gcode:
|
|
|
|
[gcode_macro STRUCTURE_PARAM]
|
|
variable_bed_length: 220
|
|
variable_bed_width: 220
|
|
variable_bed_hight: 240
|
|
variable_laser_x_offset: 45.0
|
|
variable_laser_y_offset: -8.0
|
|
variable_laser_z_offset: 3.0
|
|
variable_cali_x_offset: 204.0
|
|
variable_cali_y_offset: 14.0
|
|
variable_cali_z_offset: 3.0
|
|
gcode:
|
|
|
|
|
|
[gcode_macro M900]
|
|
gcode:
|
|
{% if 'K' in params %}
|
|
{% if 'E' in params %}
|
|
SET_PRESSURE_ADVANCE EXTRUDER={params.E} ADVANCE={params.K}
|
|
{% else %}
|
|
SET_PRESSURE_ADVANCE ADVANCE={params.K}
|
|
{% endif %}
|
|
{% endif %}
|
|
|
|
[gcode_arcs]#打印圆
|
|
resolution: 1.0
|
|
|
|
[gcode_macro M204]
|
|
rename_existing: M204.1
|
|
gcode:
|
|
# {% if printer['gcode_macro Qmode'].flag|int == 0 %}
|
|
{% set get_params = "" %}
|
|
{% if 'S' in params|upper %}
|
|
{% set get_params = (get_params + ' ' + 'S' + params.S) %}
|
|
{% endif %}
|
|
{% if 'P' in params|upper %}
|
|
{% set get_params = (get_params + ' ' + 'P' + params.P) %}
|
|
{% endif %}
|
|
{% if 'T' in params|upper %}
|
|
{% set get_params = (get_params + ' ' + 'T' + params.T) %}
|
|
{% endif %}
|
|
M204.1 {get_params}
|
|
# {% endif %}
|
|
|
|
[gcode_macro M205]
|
|
gcode:
|
|
{% if 'X' in params %}
|
|
SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={params.X}
|
|
{% elif 'Y' in params %}
|
|
SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={params.Y}
|
|
{% endif %}
|
|
|
|
|
|
[gcode_macro G29]
|
|
gcode:
|
|
M204 S5000
|
|
G90
|
|
M104S0
|
|
M107
|
|
G28
|
|
BED_MESH_CALIBRATE
|
|
G1 X110Y110Z10
|
|
M140S0
|
|
CXSAVE_CONFIG
|
|
|
|
[gcode_macro INPUTSHAPER_X]
|
|
gcode:
|
|
M84
|
|
G90
|
|
G28
|
|
SHAPER_CALIBRATE AXIS=x
|
|
CXSAVE_CONFIG
|
|
|
|
[gcode_macro INPUTSHAPER_Y]
|
|
gcode:
|
|
M84
|
|
G90
|
|
G28
|
|
SHAPER_CALIBRATE AXIS=y
|
|
CXSAVE_CONFIG
|
|
|
|
[gcode_macro INPUTSHAPER]
|
|
gcode:
|
|
G90
|
|
{% if "xyz" not in printer.toolhead.homed_axes %}
|
|
G28
|
|
{% endif %}
|
|
{% if 'X' in params.AXES|upper %}
|
|
SHAPER_CALIBRATE AXIS=X
|
|
{% elif 'Y' in params.AXES|upper %}
|
|
SHAPER_CALIBRATE AXIS=Y
|
|
{% else %}
|
|
SHAPER_CALIBRATE
|
|
{% endif %}
|
|
CXSAVE_CONFIG
|
|
|
|
|
|
[gcode_macro AUTOTUNE_SHAPERS]
|
|
variable_autotune_shapers: 'mzv'
|
|
gcode:
|
|
|
|
[gcode_macro Z_OFFSET_TEST]
|
|
gcode:
|
|
G28
|
|
Z_OFFSET_CALIBRATION
|
|
CXSAVE_CONFIG
|
|
|
|
[gcode_macro ZZ_OFFSET_TEST]
|
|
gcode:
|
|
G28
|
|
Z_OFFSET_AUTO
|
|
CXSAVE_CONFIG
|
|
|
|
[gcode_macro Z_COMPENSATE_TEST]
|
|
gcode:
|
|
G28
|
|
CRTENSE_NOZZLE_CLEAR
|
|
Z_OFFSET_CALIBRATION
|
|
|
|
[gcode_macro M106]
|
|
gcode:
|
|
{% set fan = 0 %}
|
|
{% set value = 255 %}
|
|
{% if params.S is defined %}
|
|
{% set tmp = params.S|int %}
|
|
{% if tmp <= 255 %}
|
|
{% set value = tmp %}
|
|
{% endif %}
|
|
{% endif %}
|
|
{% if params.P is defined %}
|
|
{% if params.P|int == 0 %}
|
|
{% set value = printer["gcode_macro PRINTER_PARAM"].fan0_min + (255 - printer["gcode_macro PRINTER_PARAM"].fan0_min) / 255 * tmp %}
|
|
{% if tmp < 1 %}
|
|
{% set value = tmp %}
|
|
{% endif %}
|
|
SET_PIN PIN=fan0 VALUE={value}
|
|
{% endif %}
|
|
{% else %}
|
|
{% set value = printer["gcode_macro PRINTER_PARAM"].fan0_min + (255 - printer["gcode_macro PRINTER_PARAM"].fan0_min) / 255 * tmp %}
|
|
{% if tmp < 1 %}
|
|
{% set value = tmp %}
|
|
{% endif %}
|
|
SET_PIN PIN=fan0 VALUE={value}
|
|
{% endif %}
|
|
|
|
[gcode_macro M107]
|
|
gcode:
|
|
{% if params.P is defined %}
|
|
SET_PIN PIN=fan0 VALUE=0
|
|
{% else %}
|
|
SET_PIN PIN=fan0 VALUE=0
|
|
# SET_PIN PIN=fan2 VALUE=0
|
|
{% endif %}
|
|
|
|
[gcode_macro LOAD_MATERIAL]
|
|
gcode:
|
|
SAVE_GCODE_STATE NAME=myMoveState
|
|
M109 S{printer.custom_macro.default_extruder_temp}
|
|
G91
|
|
G1 E150 F180
|
|
RESTORE_GCODE_STATE NAME=myMoveState
|
|
|
|
[gcode_macro QUIT_MATERIAL]
|
|
gcode:
|
|
SAVE_GCODE_STATE NAME=myMoveState
|
|
M109 S{printer.custom_macro.default_extruder_temp}
|
|
G91
|
|
G1 E20 F180
|
|
G1 E-30 F180
|
|
G1 E-50 F2000
|
|
RESTORE_GCODE_STATE NAME=myMoveState
|
|
|
|
[gcode_macro M600]
|
|
gcode:
|
|
PAUSE
|
|
{% set act_e = printer.toolhead.position.e|float %}
|
|
G91
|
|
G1 E20 F180
|
|
G1 E-30 F180
|
|
G1 E-50 F2000
|
|
G90
|
|
G92 E{act_e}
|
|
|
|
[gcode_macro FINISH_INIT]
|
|
gcode:
|
|
{% set extruder = printer.configfile.settings['extruder'] %}
|
|
{% set printer = printer.configfile.settings['printer'] %}
|
|
SET_PRESSURE_ADVANCE ADVANCE={extruder.pressure_advance}
|
|
SET_VELOCITY_LIMIT ACCEL_TO_DECEL={printer.max_accel_to_decel}
|
|
#转角速度:5mm/s
|
|
SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=5
|
|
#加速度:5000mm/s²
|
|
M204 S5000
|
|
#减速加速度:5000mm/s²
|
|
SET_VELOCITY_LIMIT ACCEL_TO_DECEL=5000
|
|
#移动速率:100%
|
|
M220 S100
|
|
#挤出流量:100%
|
|
M221 S100
|
|
|
|
|