-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathchange_nozzle.cfg
More file actions
69 lines (62 loc) · 2.95 KB
/
change_nozzle.cfg
File metadata and controls
69 lines (62 loc) · 2.95 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# To use per-tool and per-nozzle pressure advance, make sure https://github.com/garethky/change-nozzle-klipper-extra
# is installed and you provide your slicer's nozzle diameter to your start gcode and tool-change gcode before calling T0/T1/etc.
#
# Slic3r Start G-code example:
# T_CHANGE_NOZZLE TOOL={ current_extruder } NOZZLE_DIAMETER={ nozzle_diameter[current_extruder] }
#
# Slic3r Tool-change G-code example:
# T_CHANGE_NOZZLE TOOL={ next_extruder } NOZZLE_DIAMETER={ nozzle_diameter[current_extruder] }
#
#
# For each tool macro (T0, T1, etc), add a pressure advance variable and the following g-code:
#
# [gcode_macro T0]
# variable_pressure_advance_table: {
# 0.4: 0.035,
# 0.6: 0.038,
# }
# gcode:
# KTCC_T0
#
# # set pressure advance from table, the macro will filter and set only the appropriate one
# {% set tool = printer.tool_probe_endstop.active_tool_number %}
# {% for nozzle_diameter, pressure_advance in variable_pressure_advance_table %}
# SET_EXTRUDER_PA TOOL={ tool } NOZZLE={ nozzle_diameter } ADVANCE={ pressure_advance }
# {% endfor %}
[gcode_macro SET_EXTRUDER_PA]
gcode:
{% set tool = params.TOOL | int %}
{% if tool >= 0 %}
{% set extruder = printer['tool ' + tool|string].extruder %}
{% else %}
{% set extruder = 'extruder' + (params.EXTRUDER | default('')) %}
{% if extruder == 'extruder0' %}
{% set extruder = 'extruder' %}
{% endif %}
{% endif %}
{% set extruder_nozzle_diameter = (printer[extruder]).nozzle_diameter %}
{% set nozzle = (params.NOZZLE | default(extruder_nozzle_diameter) | float) %}
{% set advance = params.ADVANCE | float %}
# fall back to the default PA value from the config file
{% if not advance %}
{% set advance = printer.configfile.config[extruder].pressure_advance %}
{% endif %}
{% if nozzle == extruder_nozzle_diameter %}
RESPOND TYPE=command MSG='Setting pressure advance { advance } for { nozzle } nozzle diameter on { extruder } (tool { tool })'
SET_PRESSURE_ADVANCE EXTRUDER={extruder} ADVANCE={advance}
{% endif %}
[gcode_macro T_CHANGE_NOZZLE]
description: Change nozzle diameter for specified tool
gcode:
{% set tool = params.TOOL | default(printer.tool_probe_endstop.active_tool_number) %}
{% set extruder = printer['tool ' + tool].extruder %}
{% set newparameters = "" %} # Parameters to be passed to subroutines in new format.
{% if params.NOZZLE_DIAMETER is defined %}
{% set newparameters = newparameters ~ " NOZZLE_DIAMETER="~params.NOZZLE_DIAMETER %}
RESPOND TYPE=command MSG='Setting nozzle diameter {params.NOZZLE_DIAMETER} for { extruder } (tool { tool })'
{% endif %}
{% if params.MAX_EXTRUDE_CROSS_SECTION is defined %}
{% set newparameters = newparameters ~ " MAX_EXTRUDE_CROSS_SECTION="~params.MAX_EXTRUDE_CROSS_SECTION %}
RESPOND TYPE=command MSG='Setting max extrude cross-section {params.NOZZLE_DIAMETER} for { extruder } (tool { tool })'
{% endif %}
CHANGE_NOZZLE EXTRUDER={ extruder } { newparameters }