From 9e5fac2bceb63ec6a038f243964317e63653d4b8 Mon Sep 17 00:00:00 2001 From: smwoodward Date: Thu, 9 Mar 2023 20:13:58 -0600 Subject: [PATCH 1/3] Added User customizable macro hooks Added macro hooks for end users to customize different macros on their own, while leaving the logic of the existing macros to be updatable by other commits. --- macros.cfg | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/macros.cfg b/macros.cfg index 9d89a421..91c4242e 100644 --- a/macros.cfg +++ b/macros.cfg @@ -373,6 +373,7 @@ gcode: MAYBE_HOME {% if params.CHAMBER_TEMP is defined %} _START_PRINT_HEAT_CHAMBER CHAMBER_TEMP={params.CHAMBER_TEMP} BED_TEMP={printer["gcode_macro RatOS"].start_print_heat_chamber_bed_temp} + _USER_START_PRINT_HEAT_CHAMBER CHAMBER_TEMP={params.CHAMBER_TEMP} BED_TEMP={printer["gcode_macro RatOS"].start_print_heat_chamber_bed_temp} {% endif %} M117 Heating bed... RESPOND MSG="Heating bed..." @@ -380,8 +381,12 @@ gcode: M190 S{params.BED_TEMP|default(printer.heater_bed.target, true) } # Run the customizable "AFTER_HEATING_BED" macro. _START_PRINT_AFTER_HEATING_BED + # Run the user created "AFTER_HEATING_BED" macro + _USER_START_PRINT_AFTER_HEATING_BED # Run the customizable "BED_MESH" macro _START_PRINT_BED_MESH + # Run the user created "START_PRINT_BED_MESH" macro + _USER_START_PRINT_BED_MESH {% if printer["gcode_macro RatOS"].z_probe|lower == 'stowable' %} STOWABLE_PROBE_END_BATCH {% endif %} @@ -389,12 +394,16 @@ gcode: M104 S{params.EXTRUDER_TEMP|default(printer.extruder.target, true) } # Run the customizable "PARK" macro _START_PRINT_PARK + # Run the users "PARK" macro + _USER_START_PRINT_PARK # Wait for extruder to heat up M117 Heating Extruder... RESPOND MSG="Heating Extruder..." M109 S{params.EXTRUDER_TEMP|default(printer.extruder.target, true) } # Run the customizable "AFTER_HEATING_EXTRUDER" macro. _START_PRINT_AFTER_HEATING_EXTRUDER + # Run the user created "AFTER_HEATING_EXTRUDER" macro. + _USER_START_PRINT_AFTER_HEATING_EXTRUDER M117 Printing... RESPOND MSG="Printing..." RESTORE_GCODE_STATE NAME=start_print_state @@ -423,6 +432,9 @@ gcode: M104 S150 TEMPERATURE_WAIT SENSOR=extruder MINIMUM={min_temp} MAXIMUM={max_temp} {% endif %} + +[gcode_macro _USER_START_PRINT_AFTER_HEATING_BED] +gcode: [gcode_macro _START_PRINT_BED_MESH] gcode: @@ -434,6 +446,9 @@ gcode: {% elif printer["gcode_macro RatOS"].bed_mesh_profile is defined %} BED_MESH_PROFILE LOAD={printer["gcode_macro RatOS"].bed_mesh_profile} {% endif %} + +[gcode_macro _USER_START_PRINT_BED_MESH] +gcode: [gcode_macro _START_PRINT_PARK] gcode: @@ -442,6 +457,9 @@ gcode: _PARK LOCATION={printer["gcode_macro RatOS"].start_print_park_in} X={printer["gcode_macro RatOS"].start_print_park_x} G0 Z{z} F{zSpeed} +[gcode_macro _USER_START_PRINT_PARK] +gcode: + [gcode_macro _START_PRINT_AFTER_HEATING_EXTRUDER] gcode: {% if printer["gcode_macro RatOS"].nozzle_priming|lower == 'primeline' %} @@ -453,6 +471,9 @@ gcode: {% if printer["gcode_macro RatOS"].skew_profile is defined %} SKEW_PROFILE LOAD={printer["gcode_macro RatOS"].skew_profile} {% endif %} + +[gcode_macro _USER_START_PRINT_AFTER_HEATING_EXTRUDER] +gcode: [gcode_macro _START_PRINT_HEAT_CHAMBER] description: Uses the extruder sensor to wait for chamber temp. Override the _START_PRINT_HEAT_CHAMBER macro to implement heated chamber handling. @@ -468,6 +489,10 @@ gcode: TEMPERATURE_WAIT SENSOR=extruder MINIMUM={params.CHAMBER_TEMP} MAYBE_HOME {% endif %} + +[gcode_macro _USER_START_PRINT_HEAT_CHAMBER] +description: Uses the extruder sensor to wait for chamber temp. Override the _START_PRINT_HEAT_CHAMBER macro to implement heated chamber handling. +gcode: ##### # END PRINT MACROS @@ -481,9 +506,12 @@ description: End print procedure, use this in your Slicer. gcode: SAVE_GCODE_STATE NAME=end_print_state _END_PRINT_BEFORE_HEATERS_OFF + _USER_END_PRINT_BEFORE_HEATERS_OFF TURN_OFF_HEATERS _END_PRINT_AFTER_HEATERS_OFF + _USER_END_PRINT_AFTER_HEATERS_OFF _END_PRINT_PARK + _USER_END_PRINT_PARK # Clear skew profile if any was loaded. {% if printer["gcode_macro RatOS"].skew_profile is defined %} SET_SKEW CLEAR=1 @@ -505,6 +533,10 @@ gcode: gcode: RESPOND MSG="Cleaning up..." + +[gcode_macro _USER_END_PRINT_BEFORE_HEATERS_OFF] +gcode: + [gcode_macro _END_PRINT_AFTER_HEATERS_OFF] gcode: # Calculate safe Z position @@ -527,6 +559,12 @@ gcode: # Back to absolute positioning G90 +[gcode_macro _USER_END_PRINT_AFTER_HEATERS_OFF] +gcode: + [gcode_macro _END_PRINT_PARK] gcode: _PARK LOCATION={printer["gcode_macro RatOS"].end_print_park_in} X={printer["gcode_macro RatOS"].end_print_park_x} + +[gcode_macro _USER_END_PRINT_PARK] +gcode: From ad1952d68d35bf961a3da1ec1dc71e13d71ceb21 Mon Sep 17 00:00:00 2001 From: smwoodward Date: Wed, 15 Mar 2023 19:42:43 -0500 Subject: [PATCH 2/3] Update macros.cfg After testing, it seems better to have the user created macros before the included system macros. --- macros.cfg | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/macros.cfg b/macros.cfg index 91c4242e..902b57b7 100644 --- a/macros.cfg +++ b/macros.cfg @@ -379,31 +379,31 @@ gcode: RESPOND MSG="Heating bed..." # Wait for bed to heat up M190 S{params.BED_TEMP|default(printer.heater_bed.target, true) } - # Run the customizable "AFTER_HEATING_BED" macro. - _START_PRINT_AFTER_HEATING_BED # Run the user created "AFTER_HEATING_BED" macro _USER_START_PRINT_AFTER_HEATING_BED - # Run the customizable "BED_MESH" macro - _START_PRINT_BED_MESH + # Run the customizable "AFTER_HEATING_BED" macro. + _START_PRINT_AFTER_HEATING_BED # Run the user created "START_PRINT_BED_MESH" macro _USER_START_PRINT_BED_MESH + # Run the customizable "BED_MESH" macro + _START_PRINT_BED_MESH {% if printer["gcode_macro RatOS"].z_probe|lower == 'stowable' %} STOWABLE_PROBE_END_BATCH {% endif %} # Start heating extruder M104 S{params.EXTRUDER_TEMP|default(printer.extruder.target, true) } - # Run the customizable "PARK" macro - _START_PRINT_PARK # Run the users "PARK" macro _USER_START_PRINT_PARK + # Run the customizable "PARK" macro + _START_PRINT_PARK # Wait for extruder to heat up M117 Heating Extruder... RESPOND MSG="Heating Extruder..." M109 S{params.EXTRUDER_TEMP|default(printer.extruder.target, true) } - # Run the customizable "AFTER_HEATING_EXTRUDER" macro. - _START_PRINT_AFTER_HEATING_EXTRUDER # Run the user created "AFTER_HEATING_EXTRUDER" macro. _USER_START_PRINT_AFTER_HEATING_EXTRUDER + # Run the customizable "AFTER_HEATING_EXTRUDER" macro. + _START_PRINT_AFTER_HEATING_EXTRUDER M117 Printing... RESPOND MSG="Printing..." RESTORE_GCODE_STATE NAME=start_print_state @@ -505,13 +505,13 @@ gcode: description: End print procedure, use this in your Slicer. gcode: SAVE_GCODE_STATE NAME=end_print_state - _END_PRINT_BEFORE_HEATERS_OFF _USER_END_PRINT_BEFORE_HEATERS_OFF + _END_PRINT_BEFORE_HEATERS_OFF TURN_OFF_HEATERS - _END_PRINT_AFTER_HEATERS_OFF _USER_END_PRINT_AFTER_HEATERS_OFF - _END_PRINT_PARK + _END_PRINT_AFTER_HEATERS_OFF _USER_END_PRINT_PARK + _END_PRINT_PARK # Clear skew profile if any was loaded. {% if printer["gcode_macro RatOS"].skew_profile is defined %} SET_SKEW CLEAR=1 From 55be7c32901197f8e39090d3e8e6cd518a0010cd Mon Sep 17 00:00:00 2001 From: smwoodward Date: Sat, 13 May 2023 17:10:59 -0500 Subject: [PATCH 3/3] Update macros.cfg Added additional _USER_START_PRINT locations for additional user additions --- macros.cfg | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/macros.cfg b/macros.cfg index 1ae9e058..a04597dd 100644 --- a/macros.cfg +++ b/macros.cfg @@ -372,11 +372,14 @@ gcode: STOWABLE_PROBE_BEGIN_BATCH {% endif %} # Home if needed + _USER_START_PRINT_BEFORE_HOMING MAYBE_HOME + _USER_START_PRINT_AFTER_HOMING {% if params.CHAMBER_TEMP is defined %} _START_PRINT_HEAT_CHAMBER CHAMBER_TEMP={params.CHAMBER_TEMP} BED_TEMP={printer["gcode_macro RatOS"].start_print_heat_chamber_bed_temp} _USER_START_PRINT_HEAT_CHAMBER CHAMBER_TEMP={params.CHAMBER_TEMP} BED_TEMP={printer["gcode_macro RatOS"].start_print_heat_chamber_bed_temp} {% endif %} + _USER_START_PRINT_BEFORE_HEATING_BED M117 Heating bed... RESPOND MSG="Heating bed..." # Wait for bed to heat up @@ -399,6 +402,7 @@ gcode: # Run the customizable "PARK" macro _START_PRINT_PARK # Wait for extruder to heat up + _USER_START_PRINT_BEFORE_HEATING_EXTRUDER M117 Heating Extruder... RESPOND MSG="Heating Extruder..." M109 S{params.EXTRUDER_TEMP|default(printer.extruder.target, true) }