mirror of
https://github.com/DBarwikowski-3DPrints/Demon_Klipper_Essentials_Unified_Sovol_SV08.git
synced 2026-10-19 01:59:48 -05:00
388 lines
15 KiB
INI
388 lines
15 KiB
INI
|
|
###################################################
|
|
#######>>>>>>>>>> 3DPrintDemon <<<<<<<<<<<#######
|
|
####### https://github.com/3DPrintDemon #######
|
|
# The idea for this macro is inspired by the contribution of Karl L, his original macro is at the end of this file
|
|
|
|
[gcode_macro AUTO_BED_MESH_BUILDER]
|
|
gcode:
|
|
{% set start_vars = printer["gcode_macro _START_VARIABLES"] %}
|
|
{% set mesh_vars = printer["gcode_macro _MESH_BUILDER_VARIABLES"] %}
|
|
{% set x_park = printer.toolhead.axis_maximum.x|float / 2 %}
|
|
{% set y_park = printer.toolhead.axis_maximum.y|float / 2 %}
|
|
|
|
#############################################################################################################
|
|
|
|
{% if start_vars.printer_lights == True %}
|
|
{% if printer["Printer_Lights"] != start_vars.printer_lights_print %}
|
|
SET_PIN PIN=Printer_Lights VALUE={start_vars.printer_lights_print}
|
|
{% endif %}
|
|
{% endif %}
|
|
|
|
SET_DISPLAY_TEXT MSG="Building Bed Meshes PLEASE WAIT...."
|
|
RESPOND TYPE=echo MSG="NOTE: THIS IS A LONG MACRO! IT BUILDS 5 FULL MESHES! DO NOT PRESS SAVE CONFIG! THIS MACRO AUTO SAVES WHEN COMPLETE!! BUILDING WILL START SOON PLEASE WAIT..."
|
|
G4 P20000
|
|
G90 ; Use absoulte coordinates
|
|
M83 ; Extruder relative mode
|
|
SET_GCODE_OFFSET Z=0.0 # Reset the G-Code Z offset
|
|
BED_MESH_CLEAR # Clears currently loaded mesh
|
|
|
|
{% if start_vars.neopixel_led == True %}
|
|
STATUS_HEATING
|
|
{% endif %}
|
|
|
|
{% if printer.configfile.settings.stepper_z.endstop_pin != 'probe:z_virtual_endstop' %}
|
|
SET_HEATER_TEMPERATURE HEATER=extruder TARGET={start_vars.pla_noz_pre}
|
|
TEMPERATURE_WAIT SENSOR=extruder MINIMUM={start_vars.pla_noz_pre|float -5} MAXIMUM={start_vars.pla_noz_pre|float + 5}
|
|
|
|
{% else %}
|
|
SET_HEATER_TEMPERATURE HEATER=extruder TARGET=90
|
|
|
|
{% endif %}
|
|
|
|
_CONDITIONAL_HOME
|
|
|
|
#############################################################################################################
|
|
|
|
_Z_PARK
|
|
# G1 X{x_park} Y{y_park} Z{mesh_vars.z_park} F9000
|
|
{% if start_vars.neopixel_led == True %}
|
|
STATUS_HEATING
|
|
{% endif %}
|
|
|
|
SET_DISPLAY_TEXT MSG="Waiting For TPU Mesh Bed Temp: {mesh_vars.mesh_tpu_bed_temp}c"
|
|
RESPOND TYPE=echo MSG="Waiting For TPU Mesh Bed Temp: {mesh_vars.mesh_tpu_bed_temp}c"
|
|
SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET={mesh_vars.mesh_tpu_bed_temp}
|
|
TEMPERATURE_WAIT SENSOR=heater_bed MINIMUM={mesh_vars.mesh_tpu_bed_temp|float -2} MAXIMUM={mesh_vars.mesh_tpu_bed_temp|float + 5}
|
|
|
|
{% if start_vars.chamber_sensor == True %}
|
|
_WAIT_HANDLING_LOW_TEMP
|
|
{% else %}
|
|
_HEAT_WAIT MINUTES={start_vars.lo_temp_timer}
|
|
{% endif %}
|
|
|
|
_PRE_MESH_LEVEL
|
|
{% if start_vars.neopixel_led == True %}
|
|
STATUS_MESHING
|
|
{% endif %}
|
|
|
|
SET_DISPLAY_TEXT MSG="TPU MESH BUILDING PLEASE WAIT"
|
|
RESPOND TYPE=echo MSG="TPU MESH BUILDING PLEASE WAIT"
|
|
G4 P5000
|
|
BED_MESH_CALIBRATE PROFILE=TPU
|
|
|
|
SET_DISPLAY_TEXT MSG="DO NOT SAVE CONFIG - MACRO IS STILL RUNNING!"
|
|
RESPOND TYPE=echo MSG="DO NOT SAVE CONFIG - MACRO IS STILL RUNNING!"
|
|
G4 P10000
|
|
|
|
#############################################################################################################
|
|
|
|
_Z_PARK
|
|
# G1 X{x_park} Y{y_park} Z{mesh_vars.z_park} F9000
|
|
{% if start_vars.neopixel_led == True %}
|
|
STATUS_HEATING
|
|
{% endif %}
|
|
|
|
SET_DISPLAY_TEXT MSG="Waiting For PLA Mesh Bed Temp: {mesh_vars.mesh_pla_bed_temp}c"
|
|
RESPOND TYPE=echo MSG="Waiting For PLA Mesh Bed Temp: {mesh_vars.mesh_pla_bed_temp}c"
|
|
SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET={mesh_vars.mesh_pla_bed_temp}
|
|
TEMPERATURE_WAIT SENSOR=heater_bed MINIMUM={mesh_vars.mesh_pla_bed_temp|float -2} MAXIMUM={mesh_vars.mesh_pla_bed_temp|float + 5}
|
|
|
|
{% if start_vars.chamber_sensor == True %}
|
|
_WAIT_HANDLING_LOW_TEMP
|
|
{% else %}
|
|
_HEAT_WAIT MINUTES={start_vars.lo_temp_timer}
|
|
{% endif %}
|
|
|
|
_PRE_MESH_LEVEL
|
|
{% if start_vars.neopixel_led == True %}
|
|
STATUS_MESHING
|
|
{% endif %}
|
|
|
|
SET_DISPLAY_TEXT MSG="PLA MESH BUILDING PLEASE WAIT"
|
|
RESPOND TYPE=echo MSG="PLA MESH BUILDING PLEASE WAIT"
|
|
G4 P5000
|
|
BED_MESH_CALIBRATE PROFILE=default
|
|
|
|
SET_DISPLAY_TEXT MSG="DO NOT SAVE CONFIG - MACRO IS STILL RUNNING!"
|
|
RESPOND TYPE=echo MSG="DO NOT SAVE CONFIG - MACRO IS STILL RUNNING!"
|
|
G4 P10000
|
|
|
|
#############################################################################################################
|
|
|
|
_Z_PARK
|
|
# G1 X{x_park} Y{y_park} Z{mesh_vars.z_park} F9000
|
|
{% if start_vars.neopixel_led == True %}
|
|
STATUS_HEATING
|
|
{% endif %}
|
|
|
|
SET_DISPLAY_TEXT MSG="Waiting For PETG Mesh Bed Temp: {mesh_vars.mesh_petg_bed_temp}c"
|
|
RESPOND TYPE=echo MSG="Waiting For PETG Mesh Bed Temp: {mesh_vars.mesh_petg_bed_temp}c"
|
|
SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET={mesh_vars.mesh_petg_bed_temp}
|
|
TEMPERATURE_WAIT SENSOR=heater_bed MINIMUM={mesh_vars.mesh_petg_bed_temp|float -2} MAXIMUM={mesh_vars.mesh_petg_bed_temp|float + 5}
|
|
|
|
{% if start_vars.chamber_sensor == True %}
|
|
_WAIT_HANDLING_LOW_TEMP
|
|
{% else %}
|
|
_HEAT_WAIT MINUTES={start_vars.lo_temp_timer}
|
|
{% endif %}
|
|
|
|
_PRE_MESH_LEVEL
|
|
{% if start_vars.neopixel_led == True %}
|
|
STATUS_MESHING
|
|
{% endif %}
|
|
|
|
SET_DISPLAY_TEXT MSG="PETG MESH BUILDING PLEASE WAIT"
|
|
RESPOND TYPE=echo MSG="PETG MESH BUILDING PLEASE WAIT"
|
|
G4 P5000
|
|
BED_MESH_CALIBRATE PROFILE=PETG
|
|
|
|
SET_DISPLAY_TEXT MSG="DO NOT SAVE CONFIG - MACRO IS STILL RUNNING!"
|
|
RESPOND TYPE=echo MSG="DO NOT SAVE CONFIG - MACRO IS STILL RUNNING!"
|
|
G4 P10000
|
|
|
|
#############################################################################################################
|
|
|
|
_Z_PARK
|
|
# G1 X{x_park} Y{y_park} Z{mesh_vars.z_park} F9000
|
|
{% if start_vars.neopixel_led == True %}
|
|
STATUS_HEATING
|
|
{% endif %}
|
|
|
|
SET_DISPLAY_TEXT MSG="Waiting For ASA Mesh Bed Temp: {mesh_vars.mesh_asa_bed_temp}c"
|
|
RESPOND TYPE=echo MSG="Waiting For ASA Mesh Bed Temp: {mesh_vars.mesh_asa_bed_temp}c"
|
|
SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET={mesh_vars.mesh_asa_bed_temp}
|
|
TEMPERATURE_WAIT SENSOR=heater_bed MINIMUM={mesh_vars.mesh_asa_bed_temp|float -2} MAXIMUM={mesh_vars.mesh_asa_bed_temp|float + 5}
|
|
|
|
|
|
{% if start_vars.chamber_sensor == True %}
|
|
_WAIT_HANDLING_HIGH_TEMP
|
|
{% else %}
|
|
_HEAT_WAIT MINUTES={start_vars.hi_temp_timer}
|
|
{% endif %}
|
|
|
|
_PRE_MESH_LEVEL
|
|
{% if start_vars.neopixel_led == True %}
|
|
STATUS_MESHING
|
|
{% endif %}
|
|
|
|
SET_DISPLAY_TEXT MSG="ASA MESH BUILDING PLEASE WAIT"
|
|
RESPOND TYPE=echo MSG="ASA MESH BUILDING PLEASE WAIT"
|
|
G4 P5000
|
|
BED_MESH_CALIBRATE PROFILE=ASA
|
|
|
|
SET_DISPLAY_TEXT MSG="DO NOT SAVE CONFIG - MACRO IS STILL RUNNING!"
|
|
RESPOND TYPE=echo MSG="DO NOT SAVE CONFIG - MACRO IS STILL RUNNING!"
|
|
G4 P10000
|
|
|
|
#############################################################################################################
|
|
|
|
_Z_PARK
|
|
# G1 X{x_park} Y{y_park} Z{mesh_vars.z_park} F9000
|
|
{% if start_vars.neopixel_led == True %}
|
|
STATUS_HEATING
|
|
{% endif %}
|
|
|
|
SET_DISPLAY_TEXT MSG="Waiting For ABS Mesh Bed Temp: {mesh_vars.mesh_abs_bed_temp}c"
|
|
RESPOND TYPE=echo MSG="Waiting For ABS Mesh Bed Temp: {mesh_vars.mesh_abs_bed_temp}c"
|
|
SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET={mesh_vars.mesh_abs_bed_temp}
|
|
TEMPERATURE_WAIT SENSOR=heater_bed MINIMUM={mesh_vars.mesh_abs_bed_temp|float -2} MAXIMUM={mesh_vars.mesh_abs_bed_temp|float + 5}
|
|
|
|
|
|
{% if start_vars.chamber_sensor == True %}
|
|
_WAIT_HANDLING_HIGH_TEMP
|
|
{% else %}
|
|
_HEAT_WAIT MINUTES={start_vars.hi_temp_timer}
|
|
{% endif %}
|
|
|
|
_PRE_MESH_LEVEL
|
|
{% if start_vars.neopixel_led == True %}
|
|
STATUS_MESHING
|
|
{% endif %}
|
|
|
|
SET_DISPLAY_TEXT MSG="ABS MESH BUILDING PLEASE WAIT"
|
|
RESPOND TYPE=echo MSG="ABS MESH BUILDING PLEASE WAIT"
|
|
G4 P5000
|
|
BED_MESH_CALIBRATE PROFILE=ABS
|
|
|
|
#############################################################################################################
|
|
|
|
SET_DISPLAY_TEXT MSG="PARKING TOOLHEAD PLEASE WAIT..."
|
|
RESPOND TYPE=echo MSG="PARKING TOOLHEAD PLEASE WAIT..."
|
|
G4 P10000
|
|
_TOOLHEAD_PARK_PAUSE_CANCEL
|
|
M104 S0 # kill extruder temperature
|
|
M140 S0 # kill bed temperature
|
|
M84 X Y E # DISABLE ALL STEPPERS BUT Z
|
|
M400
|
|
SET_DISPLAY_TEXT MSG="ALL BED MESHES BUILT. MACRO COMPLETE!"
|
|
RESPOND TYPE=echo MSG="ALL BED MESHES BUILT. MACRO COMPLETE!"
|
|
|
|
|
|
# {% if start_vars.chamber_fan == True %}
|
|
# SET_TEMPERATURE_FAN_TARGET temperature_fan="chamber" target={start_vars.post_print_cool}
|
|
# {% endif %}
|
|
|
|
{% if start_vars.printer_lights == True %}
|
|
{% if printer["Printer_Lights"] != start_vars.printer_lights_finish %}
|
|
SET_PIN PIN=Printer_Lights VALUE={start_vars.printer_lights_finish}
|
|
{% if start_vars.neopixel_led == True and start_vars.neopixel_off == True %}
|
|
STATUS_OFF
|
|
{% endif %}
|
|
|
|
{% endif %}
|
|
{% endif %}
|
|
|
|
M400
|
|
G4 P5000
|
|
SET_DISPLAY_TEXT MSG="SAVING CONFIG PLEASE WAIT..."
|
|
RESPOND TYPE=echo MSG="SAVING CONFIG PLEASE WAIT..."
|
|
G4 P5000
|
|
SAVE_CONFIG
|
|
|
|
|
|
[gcode_macro _WAIT_HANDLING_LOW_TEMP]
|
|
gcode:
|
|
{% set start_vars = printer["gcode_macro _START_VARIABLES"] %}
|
|
{% set mesh_vars = printer["gcode_macro _MESH_BUILDER_VARIABLES"] %}
|
|
{% if start_vars.chamber_fan == True %}
|
|
{% if printer["temperature_fan chamber"].temperature <mesh_vars.lo_heat_soak_threshold %}
|
|
{% if start_vars.chamber_temp_wait == True %}
|
|
SET_DISPLAY_TEXT MSG="Waiting For Chamber Temp: {mesh_vars.lo_heat_soak_threshold}c"
|
|
RESPOND TYPE=echo MSG="Waiting For Chamber Temp: {mesh_vars.lo_heat_soak_threshold}c"
|
|
TEMPERATURE_WAIT SENSOR="temperature_fan chamber" MINIMUM={mesh_vars.lo_heat_soak_threshold|float}
|
|
{% else %}
|
|
_HEAT_WAIT MINUTES={start_vars.lo_temp_timer}
|
|
{% endif %}
|
|
|
|
{% else %}
|
|
M117 Already up to temp, heat soak skipped
|
|
G4 P5000
|
|
{% endif %}
|
|
|
|
{% elif start_vars.chamber_sensor == True %}
|
|
{% if printer["temperature_sensor Chamber_Temp"].temperature <mesh_vars.lo_heat_soak_threshold %}
|
|
{% if start_vars.chamber_temp_wait == True %}
|
|
SET_DISPLAY_TEXT MSG="Waiting For Chamber Temp: {mesh_vars.lo_heat_soak_threshold}c"
|
|
RESPOND TYPE=echo MSG="Waiting For Chamber Temp: {mesh_vars.lo_heat_soak_threshold}c"
|
|
TEMPERATURE_WAIT SENSOR="temperature_sensor Chamber_Temp" MINIMUM={mesh_vars.lo_heat_soak_threshold|float}
|
|
{% else %}
|
|
_HEAT_WAIT MINUTES={start_vars.lo_temp_timer}
|
|
{% endif %}
|
|
|
|
{% else %}
|
|
M117 Already up to temp, heat soak skipped
|
|
G4 P5000
|
|
{% endif %}
|
|
|
|
{% endif %}
|
|
|
|
[gcode_macro _WAIT_HANDLING_HIGH_TEMP]
|
|
gcode:
|
|
{% set start_vars = printer["gcode_macro _START_VARIABLES"] %}
|
|
{% set mesh_vars = printer["gcode_macro _MESH_BUILDER_VARIABLES"] %}
|
|
{% if start_vars.chamber_fan == True %}
|
|
{% if printer["temperature_fan chamber"].temperature <mesh_vars.hi_heat_soak_threshold %}
|
|
{% if start_vars.chamber_temp_wait == True %}
|
|
SET_DISPLAY_TEXT MSG="Waiting For Chamber Temp: {mesh_vars.hi_heat_soak_threshold}c"
|
|
RESPOND TYPE=echo MSG="Waiting For Chamber Temp: {mesh_vars.hi_heat_soak_threshold}c"
|
|
TEMPERATURE_WAIT SENSOR="temperature_fan chamber" MINIMUM={mesh_vars.hi_heat_soak_threshold|float}
|
|
{% else %}
|
|
_HEAT_WAIT MINUTES={start_vars.hi_temp_timer}
|
|
{% endif %}
|
|
|
|
{% else %}
|
|
M117 Already up to temp, heat soak skipped
|
|
G4 P5000
|
|
{% endif %}
|
|
|
|
{% elif start_vars.chamber_sensor == True %}
|
|
{% if printer["temperature_sensor Chamber_Temp"].temperature <mesh_vars.hi_heat_soak_threshold %}
|
|
{% if start_vars.chamber_temp_wait == True %}
|
|
SET_DISPLAY_TEXT MSG="Waiting For Chamber Temp: {mesh_vars.hi_heat_soak_threshold}c"
|
|
RESPOND TYPE=echo MSG="Waiting For Chamber Temp: {mesh_vars.hi_heat_soak_threshold}c"
|
|
TEMPERATURE_WAIT SENSOR="temperature_sensor Chamber_Temp" MINIMUM={mesh_vars.hi_heat_soak_threshold|float}
|
|
{% else %}
|
|
_HEAT_WAIT MINUTES={start_vars.hi_temp_timer}
|
|
{% endif %}
|
|
|
|
{% else %}
|
|
M117 Already up to temp, heat soak skipped
|
|
G4 P5000
|
|
{% endif %}
|
|
|
|
{% endif %}
|
|
|
|
[gcode_macro _PRE_MESH_LEVEL]
|
|
gcode:
|
|
{% set start_vars = printer["gcode_macro _START_VARIABLES"] %}
|
|
_CONDITIONAL_CLEAN
|
|
{% if start_vars.neopixel_led == True %}
|
|
STATUS_LEVELING
|
|
{% endif %}
|
|
|
|
G28 Z
|
|
|
|
_ADAPTIVE_LEVELLING
|
|
_CONDITIONAL_CLEAN
|
|
G28 Z
|
|
|
|
|
|
[gcode_macro _MESH_BUILDER_VERSION]
|
|
variable_demon_mesh_builder: 1.2
|
|
gcode:
|
|
|
|
|
|
# Original contribution by Karl L, his macro he kindly shared follows
|
|
|
|
# [gcode_macro CREATE_BED_MESHES]
|
|
# description: Create bed meshes for DEMON Essentials with different temperatures for PLA, ASA, ABS, PETG, TPU
|
|
# gcode:
|
|
# {% set start_vars = printer["gcode_macro _START_VARIABLES"] %}
|
|
|
|
# M117 Calibrate Bed Meshes for DEMON Essentials
|
|
# M104 S180 # set extruder temp tp 180
|
|
# G28 # Auto home
|
|
# BED_MESH_CLEAR
|
|
# M109 S180 # set extruder temp to 180 and wait for it
|
|
# # Following sections should be sorted according temperature
|
|
# # Material: TPU mesh profile: "TPU"
|
|
# M117 Creating Bed Mesh for "TPU"
|
|
# M190 S40 # set bed temp and wait for it
|
|
# _HEAT_WAIT MINUTES={start_vars.lo_temp_timer}
|
|
# BED_MESH_CALIBRATE PROFILE=TPU
|
|
# M117 Do NOT save the config yet!
|
|
# # Material: PLA mesh profile: "default"
|
|
# M117 Creating Bed Mesh for "PLA"
|
|
# M190 S60 # set bed temp and wait for it
|
|
# _HEAT_WAIT MINUTES={start_vars.lo_temp_timer}
|
|
# BED_MESH_CALIBRATE PROFILE=default
|
|
# M117 Do NOT save the config yet!
|
|
# # Material: PETG mesh profile: "PETG"
|
|
# M117 Creating Bed Mesh for "PETG"
|
|
# M190 S75 # set bed temp and wait for it
|
|
# _HEAT_WAIT MINUTES={start_vars.lo_temp_timer}
|
|
# BED_MESH_CALIBRATE PROFILE=PETG
|
|
# M117 Do NOT save the config yet!
|
|
# # Material: ASA mesh profile: "ASA"
|
|
# M117 Creating Bed Mesh for "ASA"
|
|
# M190 S85 # set bed temp and wait for it
|
|
# _HEAT_WAIT MINUTES={start_vars.hi_temp_timer}
|
|
# BED_MESH_CALIBRATE PROFILE=ASA
|
|
# M117 Do NOT save the config yet!
|
|
# # Material: ABS mesh profile: "ABS"
|
|
# M117 Creating Bed Mesh for "ABS"
|
|
# M190 S95 # set bed temp and wait for it
|
|
# _HEAT_WAIT MINUTES={start_vars.hi_temp_timer}
|
|
# BED_MESH_CALIBRATE PROFILE=ABS
|
|
|
|
# # Finish and clean up
|
|
# M117 Bed Meshes created
|
|
# _TOOLHEAD_PARK_PAUSE_CANCEL
|
|
# M104 S0 # kill extruder temp
|
|
# M140 S0 # kill bed temp
|
|
# M84 X Y E # disable all steppers but Z
|
|
# BED_MESH_CLEAR
|
|
# M117 Now do SAVE_CONFIG!
|
|
|
|
|