Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 13 additions & 11 deletions examples/toolchanger-extra-macros.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -174,8 +174,9 @@ gcode:


[gcode_macro PRIME_LINES]
description: Prime all active tools before printing.
INITIAL_TOOL= Tool number, optional.
description: Prime tools before printing.
Tx_TEMP= Temperature per tool to prime
TOOL= Initial tool number, optional.
variable_tools_per_x: 6 # Number of tools primed in a single row
variable_lines_per_tool: 4 # Number of prime lines per tool
variable_line_step_y: 2 # Distance between lines in Y axis
Expand Down Expand Up @@ -205,15 +206,16 @@ gcode:
# Figure out the required tools by which tools are preheating
{% for tn in printer.toolchanger.tool_numbers %}
{% set extruder_id = "extruder" + tn|string if tn > 0 else "extruder" %}
{% set tooltemp_param = "T" ~ tn|string ~ "_TEMP" %}

{% if printer[extruder_id].target >= printer.configfile.settings[extruder_id].min_extrude_temp %}
{% if tooltemp_param in params and params[tooltemp_param]|int >= printer.configfile.settings[extruder_id].min_extrude_temp %}
{% set gengar = print_tools.append(tn) %}
{% endif %}
{% endfor %}

# Make sure the initial print tool is the last to prime
{% if params.INITIAL_TOOL is defined %}
{% set initial_tool = params.INITIAL_TOOL|int %}
{% if params.TOOL is defined %}
{% set initial_tool = params.TOOL|int %}

{% if print_tools|length > 1 %}
{% set snorlax = print_tools.pop(print_tools.index(initial_tool)) %}
Expand All @@ -225,7 +227,7 @@ gcode:
{% set bulbasaur = print_tools.insert(0, printer.toolchanger.tool_number) %}
{% endif %}

{% else %}
{% else %}
{% set initial_tool = None %}
{% endif %}

Expand All @@ -234,6 +236,7 @@ gcode:
T{tn}

{% set extruder_id = "extruder" + tn|string if tn > 0 else "extruder" %}
{% set tooltemp_param = "T" ~ tn|string ~ "_TEMP" %}
{% set t_idx = print_tools.index(tn) %}
{% set y_idx = (t_idx/tools_per_x)|int %}
{% set x_tool_list = print_tools[y_idx*tools_per_x:] %}
Expand All @@ -246,7 +249,7 @@ gcode:
G0 Z{z_prime_pos} F{move_speed}

# Wait for temp
M109 S{printer[extruder_id].target} T{tn}
M109 S{params[tooltemp_param]} T{tn}

# Prime Tool
M117 Priming T{tn}
Expand Down Expand Up @@ -280,16 +283,15 @@ gcode:
G0 Z{z_move_pos}

# Reduce temp for tools that are not required yet
{% if params.INITIAL_TOOL is defined %}
{% if params.TOOL is defined %}
{% if initial_tool in print_tools %}
{% if tn != initial_tool %}
M104 S{printer[extruder_id].target-temp_drop} T{tn}
M104 S{params[tooltemp_param]|int - temp_drop} T{tn}
{% endif %}
{% endif %}
{% endif %}

G90

G90
{% endfor %}

RESTORE_GCODE_STATE NAME=PRIME_LINE_STATE
Expand Down