Skip to content

Commit 76ea342

Browse files
authored
endprint and startprint retract-unretract is now parametric (#642)
1 parent 621e0ea commit 76ea342

File tree

5 files changed

+17
-6
lines changed

5 files changed

+17
-6
lines changed

macros/base/cancel_print.cfg

+3-2
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@ gcode:
1414
{% set filament_sensor_enabled = printer["gcode_macro _USER_VARIABLES"].filament_sensor_enabled %}
1515
{% set filter_default_time = printer["gcode_macro _USER_VARIABLES"].filter_default_time_on_end_print|default(600)|int %}
1616
{% set hotend_fan_tach_enabled = printer["gcode_macro _USER_VARIABLES"].hotend_fan_tach_enabled %}
17-
17+
{% set retract_length = printer["gcode_macro _USER_VARIABLES"].retract_length|default(20)|float %}
18+
1819
PARK
1920

2021
{% if klippain_mmu_enabled and mmu_unload_on_cancel_print %}
@@ -25,7 +26,7 @@ gcode:
2526
{% elif printer.extruder.can_extrude %}
2627
# Pull back the filament a little bit
2728
G92 E0
28-
G1 E-10 F2100
29+
G1 E-{retract_length} F2100
2930
{% endif %}
3031

3132
{% if turn_off_heaters_in_end_print %}

macros/base/end_print.cfg

+2-1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ gcode:
1414
{% set filter_default_time = printer["gcode_macro _USER_VARIABLES"].filter_default_time_on_end_print|default(600)|int %}
1515
{% set filament_sensor_enabled = printer["gcode_macro _USER_VARIABLES"].filament_sensor_enabled %}
1616
{% set hotend_fan_tach_enabled = printer["gcode_macro _USER_VARIABLES"].hotend_fan_tach_enabled %}
17+
{% set retract_length = printer["gcode_macro _USER_VARIABLES"].retract_length|default(20)|float %}
1718

1819
PARK
1920

@@ -25,7 +26,7 @@ gcode:
2526
{% elif printer.extruder.can_extrude %}
2627
# pull back the filament a little bit
2728
G92 E0
28-
G1 E-10 F2100
29+
G1 E-{retract_length} F2100
2930
{% endif %}
3031

3132
{% if turn_off_heaters_in_end_print %}

macros/helpers/nozzle_cleaning.cfg

+3-2
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ gcode:
8181
{% set OOZE_TIME = params.OOZE_TIME|default(printer["gcode_macro _USER_VARIABLES"].purge_ooze_time)|int %}
8282
{% set TEMP = params.TEMP|default(printer["gcode_macro _USER_VARIABLES"].print_default_extruder_temp)|float %}
8383
{% set Z_DROP = params.Z_DROP|default(1)|int %}
84+
{% set RETRACT = params.RETRACT|default(printer["gcode_macro _USER_VARIABLES"].retract_length)|default(20)|float %}
8485

8586
{% set purge_and_brush_enabled = printer["gcode_macro _USER_VARIABLES"].purge_and_brush_enabled %}
8687
{% set purgeclean_servo_enabled = printer["gcode_macro _USER_VARIABLES"].purgeclean_servo_enabled %}
@@ -119,8 +120,8 @@ gcode:
119120

120121
# Retract
121122
G92 E0
122-
G1 E-1.7 F2100
123-
G1 E-18.3 F150
123+
G1 E-{RETRACT*0.1} F2100
124+
G1 E-({RETRACT}-{RETRACT*0.1}) F150
124125
G92 E0
125126

126127
# Wait some time to let the nozzle ooze before cleaning

macros/helpers/prime_line.cfg

+2-1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ gcode:
77
{% set prime_line_height = params.LINE_HEIGHT|default(printer["gcode_macro _USER_VARIABLES"].prime_line_height)|default(0.6)|float %}
88
{% set prime_line_adaptive = params.ADAPTIVE_MODE|default(1)|int %}
99
{% set prime_line_margin = params.LINE_MARGIN|default(printer["gcode_macro _USER_VARIABLES"].prime_line_margin)|default(5.0)|float %} # Used only in adaptive mode
10+
{% set prime_line_unretract_length = printer["gcode_macro _USER_VARIABLES"].unretract_length|default(23)|float %}
1011
{% set prime_line_wipe = printer["gcode_macro _USER_VARIABLES"].prime_line_wipe|default(False) %}
1112
{% set prime_line_wipe_length = prime_line_length * 0.8 %}
1213

@@ -112,7 +113,7 @@ gcode:
112113

113114
# Add pressure in the nozzle
114115
G92 E0
115-
G1 E18 F300
116+
G1 E{prime_line_unretract_length} F300
116117

117118
# Prime line
118119
G92 E0

user_templates/variables.cfg

+7
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,13 @@ variable_prime_line_height: 0.6 # mm, used for actual cross section computation
6161
variable_prime_line_margin: 5 # distance of purge line from fl_size rectangle
6262
variable_prime_line_wipe: False # enable a wipe of the nozzle after completing the prime line
6363

64+
## Length of filament to retract to disengage it from the heatbreak.
65+
## This is to reduce final print oozing, but also to prevent heatcreep, clogging, and allow cold filament change between prints.
66+
## Unretract is the length of filament to prime and pressurize the nozzle prior to printing.
67+
## This is recommended to be 10-20% more than the retract value.
68+
variable_retract_length: 20
69+
variable_unretract_length: 23
70+
6471
## Park position used when pause, end_print, etc...
6572
variable_park_position_xy: -1, -1
6673
variable_park_lift_z: 50

0 commit comments

Comments
 (0)