132 lines
4.7 KiB
INI
132 lines
4.7 KiB
INI
[bed_mesh]
|
|
mesh_min = 15, 25
|
|
mesh_max = 330, 330
|
|
speed = 200
|
|
horizontal_move_z = 2
|
|
probe_count = 30,30
|
|
algorithm = bicubic
|
|
split_delta_z = 0.0125
|
|
scan_overshoot: 5
|
|
zero_reference_position: 176.00,179.50
|
|
fade_start: 1.0
|
|
fade_end: 10.0
|
|
fade_target: 0.0
|
|
##[(7x7)-1] / 2 = 24
|
|
##[(5x5)-1] / 2 = 12
|
|
##[(9x9)-1] / 2 = 40
|
|
#relative_reference_index: 40
|
|
#relative_reference_index: 15
|
|
|
|
|
|
[gcode_macro QUAD_GANTRY_LEVEL]
|
|
rename_existing: _QUAD_GANTRY_LEVEL
|
|
gcode:
|
|
STATUS_LEVELING
|
|
SAVE_GCODE_STATE NAME=STATE_QGL
|
|
BED_MESH_CLEAR
|
|
# If QGL has not been done yet, correct for any major skew first
|
|
# at 8mm height
|
|
{% if not printer.quad_gantry_level.applied %}
|
|
_QUAD_GANTRY_LEVEL horizontal_move_z=10 retry_tolerance=1
|
|
{% endif %}
|
|
# Compelte with a full QGL at the configured height
|
|
_QUAD_GANTRY_LEVEL
|
|
RESTORE_GCODE_STATE NAME=STATE_QGL
|
|
|
|
|
|
#[gcode_macro BED_MESH_CALIBRATE]
|
|
#rename_existing: _BED_MESH_CALIBRATE
|
|
#gcode:
|
|
# {% set TARGET_TEMP = printer.heater_bed.target %}
|
|
# M140 S0
|
|
# _BED_MESH_CALIBRATE {rawparams}
|
|
# M140 S{TARGET_TEMP}
|
|
|
|
#[gcode_macro CARTOGRAPHER_TOUCH]
|
|
#rename_existing: _CARTOGRAPHER_TOUCH
|
|
#gcode:
|
|
# {% set TARGET_TEMP = printer.heater_bed.target %}
|
|
# M140 S0
|
|
# _CARTOGRAPHER_TOUCH {rawparams}
|
|
# M140 S{TARGET_TEMP}
|
|
|
|
#####################################################################
|
|
# Macros
|
|
#####################################################################
|
|
## customize BED MESH CALIBRATE gcode
|
|
|
|
## use BED_MESH_STORE -> generate MESH and save immediately and park in the middle
|
|
## use BED_MESH_STORE PARK=false -> generate MESH and save immediately
|
|
## use BED_MESH_STORE SAVE=false -> generate MESH and save it later
|
|
## use BED_MESH_STORE SAVE=false PARK=false -> would be most likely be used in your macros
|
|
[gcode_macro BED_MESH_STORE]
|
|
description: Generate a mesh, name it and run save_config if requested
|
|
variable_save_at_end: 'false'
|
|
gcode:
|
|
##### set default parameter value #####
|
|
{% set save = params.SAVE|default('true') %}
|
|
{% set park = params.PARK|default('true') %}
|
|
############# Get user defines #############
|
|
{% set center = printer["gcode_macro _USER_VARIABLE"].center %}
|
|
{% set z_hop = printer["gcode_macro _USER_VARIABLE"].z_hop %}
|
|
{% set bed_temp = printer.heater_bed.target|int %}
|
|
##### define plate name: Voron (default) or flexplate name #####
|
|
{% set plate_name = 'Voron' %}
|
|
{% if 'save_variables' in printer.configfile.config %}
|
|
{% if printer.save_variables.variables.plate_array is defined %}
|
|
{% set plate_index = printer.save_variables.variables.plate_index|int %}
|
|
{% set plate_name = printer.save_variables.variables.plate_array[plate_index][0] %}
|
|
{% endif %}
|
|
{% endif %}
|
|
##### join everything to a single mesh name #####
|
|
{% set mesh_name = "Voron-Bed_Temp-" + bed_temp|string + "C" %}
|
|
##### end of definitions #####
|
|
BED_MESH_CALIBRATE
|
|
BED_MESH_PROFILE SAVE={mesh_name}
|
|
BED_MESH_PROFILE REMOVE=default
|
|
{% if park|lower == 'true' %}
|
|
G90 ; set absolute
|
|
G0 Z{z_hop} F1800 ; move nozzle to z high first
|
|
G0 X{center[0]} Y{center[1]} F18000 ; home to get toolhead in the middle
|
|
{% endif %}
|
|
{% if save|lower == 'true' %}
|
|
_PRINT_AR T="BED_MESH: Save Config!"
|
|
SAVE_CONFIG
|
|
{% else %}
|
|
_PRINT_AR T="BED_MESH: Save Config after print done"
|
|
SET_GCODE_VARIABLE MACRO=BED_MESH_STORE VARIABLE=save_at_end VALUE='"true"'
|
|
{% endif %}
|
|
|
|
|
|
## use BED_MESH_LOAD -> load an existing MESH
|
|
## use BED_MESH_LOAD AUTO=true -> load an existing MESH or generate a new one and prepare it to be saved after print end
|
|
[gcode_macro BED_MESH_LOAD]
|
|
description: Load an existing mesh or generate a new one
|
|
gcode:
|
|
##### set default parameter value #####
|
|
{% set auto = params.AUTO|default('false') %}
|
|
{% set bed_temp = printer.heater_bed.target|int %}
|
|
##### join everything to a single mesh name #####
|
|
{% set mesh_name = "Voron-Bed_Temp-" + bed_temp|string + "C" %}
|
|
##### end of definitions #####
|
|
{% if printer.configfile.config["bed_mesh " + mesh_name] is defined %}
|
|
BED_MESH_CLEAR
|
|
BED_MESH_PROFILE LOAD={mesh_name}
|
|
_PRINT_AR T="{"BED_MESH: " + mesh_name + " loaded"}"
|
|
{% else %}
|
|
{% if auto|lower == 'true' %}
|
|
_PRINT_AR T="{"BED_MESH: " + mesh_name + " needs to be generated"}"
|
|
BED_MESH_STORE SAVE=false PARK=false
|
|
{% else %}
|
|
_PRINT_AR T="{"BED_MESH ERROR: " + mesh_name + " not defined"}"
|
|
{% endif %}
|
|
{% endif %}
|
|
|
|
## add this to your PRINT_END to save a mesh if needed 10 seconds after print ended
|
|
## UPDATE_DELAYED_GCODE ID=_BED_MESH_SAVE DURATION=10
|
|
[delayed_gcode _BED_MESH_SAVE]
|
|
gcode:
|
|
{% if printer["gcode_macro BED_MESH_STORE"].save_at_end == 'true' %}
|
|
_PRINT_AR T="BED_MESH: Save Config!"
|
|
SAVE_CONFIG
|
|
{% endif %} |