This repository has been archived by the owner on Jan 5, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmacros.cfg
299 lines (270 loc) · 9.88 KB
/
macros.cfg
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
# Dragonfly3D with BIGTREETECH SKR mini E3 v2.0
######################################################
# G34 - MECHANICAL_GANTRY_CALIBRATION
######################################################
[gcode_macro MECHANICAL_GANTRY_CALIBRATION]
gcode:
{% set z_max = printer.configfile.settings.stepper_z.position_max %}
{% set oldcurrent = printer.configfile.settings["tmc2209 stepper_z"].run_current %}
G28
G90
G0 Z{z_max} # 12*60
SET_TMC_CURRENT STEPPER=stepper_z CURRENT=0.2 # Low current for easy miss-step
SET_KINEMATIC_POSITION Z=0 # Fake Z position to allow move further
G0 Z10 F300 # Force z move against the stopers
G4 P400 # wait
SET_KINEMATIC_POSITION Z={z_max} # Set Z-pos back (otherwise it would try to do z-hop and it is too high for that)
G91
G0 Z-2 F6000 # backoff
G90
SET_TMC_CURRENT STEPPER=stepper_z CURRENT={oldcurrent}
G0 Z30
G28 Z
######################################################
# G29, SART_PRINT & END_PRINT
######################################################
[gcode_macro START_PRINT]
variable_parameter_EXTRUDER_TEMP: 210
variable_parameter_BED_TEMP: 55
variable_parameter_AREA_START : 0,0 # bed mesh
variable_parameter_AREA_END : 0,0 # bed mesh
gcode:
CLEAR_PAUSE # clear pause flag
M220 S100 # reset feedrate
PRINT MSG="Homing..."
G28
G90 # Absolute Positioning
G0 X10 Y10 Z15 F3000 # move to start position for heatup
PRINT MSG="W8 temps"
SET_HEATER_TEMPERATURE HEATER=extruder TARGET={params.EXTRUDER_TEMP|default(210)|float}
SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET={params.BED_TEMP|default(55)|float}
TEMPERATURE_WAIT SENSOR=heater_bed MINIMUM={params.BED_TEMP|default(55)|float - 5} MAXIMUM={params.BED_TEMP|default(55)|float + 5}
TEMPERATURE_WAIT SENSOR=extruder MINIMUM={params.EXTRUDER_TEMP|default(210)|float - 5} MAXIMUM={params.EXTRUDER_TEMP|default(210)|float + 5}
G91 # Relative
G1 E-6 F3000 # retract
G90 # Absolute
BED_MESH_CLEAR
BED_MESH_CALIBRATE AREA_START={params.AREA_START} AREA_END={params.AREA_END} PROFILE=default
BED_MESH_PROFILE LOAD=default
PLAY_DOUBLE_FEEDBACK_SOUND
PRIME_LINE
PRINT MSG="{printer.print_stats.filename}"
[gcode_macro END_PRINT]
gcode:
M220 S100 ; reset to default speed
G91 # Relatives for E and Z
G1 E-6 Z+10 F2000 # move z up and retract
G90 # Absolute for x y
G1 X10 Y220 F3000 # Park position left back
TURN_OFF_HEATERS
M84 # disable steppers
M106 S0 # disable part fan
PRINT MSG="Done printing!"
PLAY_LONG_FEEDBACK_SOUND
# prime the nozzle
[gcode_macro PRIME_LINE]
gcode:
PRINT MSG="Prime Line"
G1 E6 F3000 # de-retract
G92 E0 #Reset Extruder
G90 # Make sure we are using absolute coords
G1 Z2.0 F3000 # Move Z Axis up
G1 X5 Y10 Z0.28 F5000.0 # Move to start position
G1 X5 Y150.0 Z0.28 E15 F1500.0 # Draw the first line
G1 X7 Y150.0 Z0.28 F5000.0 # Move to side a little
G1 X7 Y10 Z0.28 E30 F1500.0 # Draw the second line
G92 E0 # Reset Extruder
G1 Z5.0 F3000 # Move Z Axis up to cleanup a bit
################################################
# FORCE_MOVE_BED
################################################
[gcode_macro FORCE_MOVE_Z]
variable_parameter_DISTANCE: 10
gcode:
SET_KINEMATIC_POSITION Z=100 ; fake position
G91 ; Relative positioning
G0 Z{params.DISTANCE|default(10)|float}
G90 ; Absolute positioning
# M84 ; disable steppers, this will clear current position
################################################
# MIN_TEMP_CHECK and temp_wait
################################################
[gcode_macro MIN_TEMP_CHECK]
description:Min Temp Check
variable_parameter_MIN_TEMP: 250
gcode:
{% if printer.extruder.target != 0 %} # if there is a setpoint for extruder
{% if printer.extruder.temperature < printer.extruder.target %} # if not reached, heat
PLAY_LONG_FEEDBACK_SOUND
TEMPERATURE_WAIT SENSOR=extruder MINIMUM={printer.extruder.target|float - 5} MAXIMUM={printer.extruder.target|float + 5}
{% endif %}
{% else %} # if no setpoint for extruder, set default value to 210
PLAY_LONG_FEEDBACK_SOUND
SET_HEATER_TEMPERATURE HEATER=extruder TARGET={params.MIN_TEMP|default(210)|float}
TEMPERATURE_WAIT SENSOR=extruder MINIMUM={params.MIN_TEMP|default(210)|float - 5} MAXIMUM={params.MIN_TEMP|default(210)|float + 5}
{% endif %}
PLAY_DOUBLE_FEEDBACK_SOUND
######################################################
# CANCEL_PRINT, PAUSE, RESUME, TOOLHEAD_PARK, LOAD FIL, UNLOAD FIL
######################################################
[gcode_macro _TOOLHEAD_PARK_PAUSE_CANCEL]
description: Helper: park toolhead used in PAUSE and CANCEL_PRINT
variable_extrude: 1.0
gcode:
##### set park positon for x and y #####
# default is your max posion from your printer.cfg
{% set x_park = printer.toolhead.axis_maximum.x|float - 10.0 %}
{% set y_park = printer.toolhead.axis_maximum.y|float - 10.0 %}
{% set z_park_delta = 2.0 %}
##### calculate save lift position #####
{% set max_z = printer.toolhead.axis_maximum.z|float %}
{% set act_z = printer.toolhead.position.z|float %}
{% if act_z < (max_z - z_park_delta) %}
{% set z_safe = z_park_delta %}
{% else %}
{% set z_safe = max_z - act_z %}
{% endif %}
##### end of definitions #####
{% if printer.extruder.can_extrude|lower == 'true' %}
M83
G1 E-{extrude} F2100
{% if printer.gcode_move.absolute_extrude |lower == 'true' %} M82 {% endif %}
{% else %}
{action_respond_info("Extruder not hot enough")}
{% endif %}
{% if "xyz" in printer.toolhead.homed_axes %}
G91
G1 Z{z_safe} F900
G90
G1 X{x_park} Y{y_park} F6000
{% if printer.gcode_move.absolute_coordinates|lower == 'false' %} G91 {% endif %}
{% else %}
{action_respond_info("Printer not homed")}
{% endif %}
[gcode_macro CANCEL_PRINT]
description: Cancel the actual running print
rename_existing: CANCEL_PRINT_BASE
variable_park: True
gcode:
## Move head and retract only if not already in the pause state and park set to true
{% if printer.pause_resume.is_paused|lower == 'false' and park|lower == 'true'%}
_TOOLHEAD_PARK_PAUSE_CANCEL
{% endif %}
TURN_OFF_HEATERS
M106 S0 # disable part fan
CANCEL_PRINT_BASE
[gcode_macro PAUSE]
description: Pause the actual running print
rename_existing: PAUSE_BASE
gcode:
PAUSE_BASE
_TOOLHEAD_PARK_PAUSE_CANCEL
[gcode_macro RESUME]
description: Resume the actual running print
rename_existing: RESUME_BASE
gcode:
##### read extrude from _TOOLHEAD_PARK_PAUSE_CANCEL macro #####
{% set extrude = printer['gcode_macro _TOOLHEAD_PARK_PAUSE_CANCEL'].extrude %}
#### get VELOCITY parameter if specified ####
{% if 'VELOCITY' in params|upper %}
{% set get_params = ('VELOCITY=' + params.VELOCITY) %}
{%else %}
{% set get_params = "" %}
{% endif %}
##### end of definitions #####
{% if printer.extruder.can_extrude|lower == 'true' %}
M83
G1 E{extrude} F2100
{% if printer.gcode_move.absolute_extrude |lower == 'true' %} M82 {% endif %}
{% else %}
{action_respond_info("Extruder not hot enough")}
{% endif %}
RESUME_BASE {get_params}
[gcode_macro UNLOAD_FILAMENT]
gcode:
SAVE_GCODE_STATE NAME=unloading_filament
PLAY_SINGLE_FEEDBACK_SOUND
PRINT MSG="Unloading Fil."
MIN_TEMP_CHECK
G91 ; set relative
G1 E{params.FEED_LENGTH|default(10)|int} F100
G92 E0.0
G1 E-{params.FAST_UNLOAD_LENGTH|default(70)|int} F2000 ; fast unload
G92 E0.0
G1 E-{params.SLOW_UNLOAD_LENGTH|default(40)|int} F1000 ; slow unload
G92 E0.0
PLAY_SINGLE_FEEDBACK_SOUND
PRINT MSG="Ready"
RESTORE_GCODE_STATE NAME=unloading_filament
[gcode_macro LOAD_FILAMENT]
gcode:
SAVE_GCODE_STATE NAME=loading_filament
PLAY_SINGLE_FEEDBACK_SOUND
PRINT MSG="Loading Fil."
M83
G92 E0.0
MIN_TEMP_CHECK
G1 E{params.FEED_LENGTH|default(10)|int} F200 ; slow feed filament
G1 E{params.FAST_LOAD_LENGTH|default(50)|int} F2000 ; Fast load to cold zone
G1 E{params.SLOW_LOAD_LENGTH|default(50)|int} F100 ; Slow load to nozzle
G92 E0.0
PLAY_SINGLE_FEEDBACK_SOUND
PRINT MSG="Ready"
RESTORE_GCODE_STATE NAME=loading_filament
[gcode_macro CHANGE_FILAMENT]
gcode:
M600
######################################################
# PRINT to LCD or terminal
######################################################
[gcode_macro PRINT] # OUTPUT_TARGET 0 : Both LCD and terminal , 1 : Terminal only , 2 : LCD only
variable_parameter_MSG : ''
variable_parameter_OUTPUT_TARGET : 0
gcode:
{% if params.OUTPUT_TARGET|default(0)|int == 0 %}
M117 {params.MSG | string}
{ action_respond_info((params.MSG) | string)}
{% elif params.OUTPUT_TARGET|default(0)|int == 1 %}
{ action_respond_info((params.MSG) | string)}
{% else %}
M117 {params.MSG | string}
{% endif %}
######################################################
# SOUNDS
######################################################
[gcode_macro BEEP]
gcode:
{% set S = params.S|default(1000)|float %}
{% set P = params.P|default(100)|float %}
{% set N = params.N|default(1)|int %}
{% for i in range(N) %}
SET_PIN PIN=beeper VALUE={S}
G4 P{P}
SET_PIN PIN=beeper VALUE=0
{% if i != N-1 %}G4 P{P}{% endif %}
{% endfor %}
[gcode_macro COUNTDOWN]
gcode:
{% set MSG = params.MSG|default("Time: ")|string %}
{% set TIME = params.TIME|default(10)|float %}
# countdown
{% for s in range(TIME|int, 0, -1) %}
# dwell-sleep 1 second
G4 P1000
# echo
PRINT MSG={MSG} {s}s
{% endfor %}
[gcode_macro PLAY_SINGLE_FEEDBACK_SOUND]
gcode:
BEEP S=1000 P=100 N=1
BEEP S=1 P=100 N=1
[gcode_macro PLAY_DOUBLE_FEEDBACK_SOUND]
gcode:
BEEP S=1000 P=100 N=1
BEEP S=1 P=100 N=1
BEEP S=1000 P=100 N=1
BEEP S=1 P=100 N=1
[gcode_macro PLAY_LONG_FEEDBACK_SOUND]
gcode:
BEEP S=1000 P=1000 N=1
BEEP S=1 P=100 N=1