|
@@ -134,15 +134,6 @@ static bool ensure_safe_temperature(const PauseMode mode=PAUSE_MODE_SAME) {
|
134
|
134
|
return thermalManager.wait_for_hotend(active_extruder);
|
135
|
135
|
}
|
136
|
136
|
|
137
|
|
-void do_pause_e_move(const float &length, const feedRate_t &fr_mm_s) {
|
138
|
|
- #if HAS_FILAMENT_SENSOR
|
139
|
|
- runout.reset();
|
140
|
|
- #endif
|
141
|
|
- current_position.e += length / planner.e_factor[active_extruder];
|
142
|
|
- line_to_current_position(fr_mm_s);
|
143
|
|
- planner.synchronize();
|
144
|
|
-}
|
145
|
|
-
|
146
|
137
|
/**
|
147
|
138
|
* Load filament into the hotend
|
148
|
139
|
*
|
|
@@ -217,7 +208,7 @@ bool load_filament(const float &slow_load_length/*=0*/, const float &fast_load_l
|
217
|
208
|
#endif
|
218
|
209
|
|
219
|
210
|
// Slow Load filament
|
220
|
|
- if (slow_load_length) do_pause_e_move(slow_load_length, FILAMENT_CHANGE_SLOW_LOAD_FEEDRATE);
|
|
211
|
+ if (slow_load_length) unscaled_e_move(slow_load_length, FILAMENT_CHANGE_SLOW_LOAD_FEEDRATE);
|
221
|
212
|
|
222
|
213
|
// Fast Load Filament
|
223
|
214
|
if (fast_load_length) {
|
|
@@ -226,7 +217,7 @@ bool load_filament(const float &slow_load_length/*=0*/, const float &fast_load_l
|
226
|
217
|
planner.settings.retract_acceleration = FILAMENT_CHANGE_FAST_LOAD_ACCEL;
|
227
|
218
|
#endif
|
228
|
219
|
|
229
|
|
- do_pause_e_move(fast_load_length, FILAMENT_CHANGE_FAST_LOAD_FEEDRATE);
|
|
220
|
+ unscaled_e_move(fast_load_length, FILAMENT_CHANGE_FAST_LOAD_FEEDRATE);
|
230
|
221
|
|
231
|
222
|
#if FILAMENT_CHANGE_FAST_LOAD_ACCEL > 0
|
232
|
223
|
planner.settings.retract_acceleration = saved_acceleration;
|
|
@@ -253,7 +244,7 @@ bool load_filament(const float &slow_load_length/*=0*/, const float &fast_load_l
|
253
|
244
|
#endif
|
254
|
245
|
wait_for_user = true; // A click or M108 breaks the purge_length loop
|
255
|
246
|
for (float purge_count = purge_length; purge_count > 0 && wait_for_user; --purge_count)
|
256
|
|
- do_pause_e_move(1, ADVANCED_PAUSE_PURGE_FEEDRATE);
|
|
247
|
+ unscaled_e_move(1, ADVANCED_PAUSE_PURGE_FEEDRATE);
|
257
|
248
|
wait_for_user = false;
|
258
|
249
|
|
259
|
250
|
#else
|
|
@@ -266,7 +257,7 @@ bool load_filament(const float &slow_load_length/*=0*/, const float &fast_load_l
|
266
|
257
|
#endif
|
267
|
258
|
|
268
|
259
|
// Extrude filament to get into hotend
|
269
|
|
- do_pause_e_move(purge_length, ADVANCED_PAUSE_PURGE_FEEDRATE);
|
|
260
|
+ unscaled_e_move(purge_length, ADVANCED_PAUSE_PURGE_FEEDRATE);
|
270
|
261
|
}
|
271
|
262
|
|
272
|
263
|
#if ENABLED(HOST_PROMPT_SUPPORT)
|
|
@@ -331,13 +322,13 @@ bool unload_filament(const float &unload_length, const bool show_lcd/*=false*/,
|
331
|
322
|
#endif
|
332
|
323
|
|
333
|
324
|
// Retract filament
|
334
|
|
- do_pause_e_move(-(FILAMENT_UNLOAD_PURGE_RETRACT) * mix_multiplier, (PAUSE_PARK_RETRACT_FEEDRATE) * mix_multiplier);
|
|
325
|
+ unscaled_e_move(-(FILAMENT_UNLOAD_PURGE_RETRACT) * mix_multiplier, (PAUSE_PARK_RETRACT_FEEDRATE) * mix_multiplier);
|
335
|
326
|
|
336
|
327
|
// Wait for filament to cool
|
337
|
328
|
safe_delay(FILAMENT_UNLOAD_PURGE_DELAY);
|
338
|
329
|
|
339
|
330
|
// Quickly purge
|
340
|
|
- do_pause_e_move((FILAMENT_UNLOAD_PURGE_RETRACT + FILAMENT_UNLOAD_PURGE_LENGTH) * mix_multiplier,
|
|
331
|
+ unscaled_e_move((FILAMENT_UNLOAD_PURGE_RETRACT + FILAMENT_UNLOAD_PURGE_LENGTH) * mix_multiplier,
|
341
|
332
|
(FILAMENT_UNLOAD_PURGE_FEEDRATE) * mix_multiplier);
|
342
|
333
|
|
343
|
334
|
// Unload filament
|
|
@@ -346,7 +337,7 @@ bool unload_filament(const float &unload_length, const bool show_lcd/*=false*/,
|
346
|
337
|
planner.settings.retract_acceleration = FILAMENT_CHANGE_UNLOAD_ACCEL;
|
347
|
338
|
#endif
|
348
|
339
|
|
349
|
|
- do_pause_e_move(unload_length * mix_multiplier, (FILAMENT_CHANGE_UNLOAD_FEEDRATE) * mix_multiplier);
|
|
340
|
+ unscaled_e_move(unload_length * mix_multiplier, (FILAMENT_CHANGE_UNLOAD_FEEDRATE) * mix_multiplier);
|
350
|
341
|
|
351
|
342
|
#if FILAMENT_CHANGE_FAST_LOAD_ACCEL > 0
|
352
|
343
|
planner.settings.retract_acceleration = saved_acceleration;
|
|
@@ -436,7 +427,7 @@ bool pause_print(const float &retract, const xyz_pos_t &park_point, const float
|
436
|
427
|
|
437
|
428
|
// Initial retract before move to filament change position
|
438
|
429
|
if (retract && thermalManager.hotEnoughToExtrude(active_extruder))
|
439
|
|
- do_pause_e_move(retract, PAUSE_PARK_RETRACT_FEEDRATE);
|
|
430
|
+ unscaled_e_move(retract, PAUSE_PARK_RETRACT_FEEDRATE);
|
440
|
431
|
|
441
|
432
|
// Park the nozzle by moving up by z_lift and then moving to (x_pos, y_pos)
|
442
|
433
|
if (!axes_need_homing())
|
|
@@ -631,11 +622,11 @@ void resume_print(const float &slow_load_length/*=0*/, const float &fast_load_le
|
631
|
622
|
#if ENABLED(FWRETRACT)
|
632
|
623
|
// If retracted before goto pause
|
633
|
624
|
if (fwretract.retracted[active_extruder])
|
634
|
|
- do_pause_e_move(-fwretract.settings.retract_length, fwretract.settings.retract_feedrate_mm_s);
|
|
625
|
+ unscaled_e_move(-fwretract.settings.retract_length, fwretract.settings.retract_feedrate_mm_s);
|
635
|
626
|
#endif
|
636
|
627
|
|
637
|
628
|
// If resume_position is negative
|
638
|
|
- if (resume_position.e < 0) do_pause_e_move(resume_position.e, feedRate_t(PAUSE_PARK_RETRACT_FEEDRATE));
|
|
629
|
+ if (resume_position.e < 0) unscaled_e_move(resume_position.e, feedRate_t(PAUSE_PARK_RETRACT_FEEDRATE));
|
639
|
630
|
|
640
|
631
|
// Move XY to starting position, then Z
|
641
|
632
|
do_blocking_move_to_xy(resume_position, feedRate_t(NOZZLE_PARK_XY_FEEDRATE));
|
|
@@ -644,7 +635,7 @@ void resume_print(const float &slow_load_length/*=0*/, const float &fast_load_le
|
644
|
635
|
do_blocking_move_to_z(resume_position.z, feedRate_t(NOZZLE_PARK_Z_FEEDRATE));
|
645
|
636
|
|
646
|
637
|
#if ADVANCED_PAUSE_RESUME_PRIME != 0
|
647
|
|
- do_pause_e_move(ADVANCED_PAUSE_RESUME_PRIME, feedRate_t(ADVANCED_PAUSE_PURGE_FEEDRATE));
|
|
638
|
+ unscaled_e_move(ADVANCED_PAUSE_RESUME_PRIME, feedRate_t(ADVANCED_PAUSE_PURGE_FEEDRATE));
|
648
|
639
|
#endif
|
649
|
640
|
|
650
|
641
|
// Now all extrusion positions are resumed and ready to be confirmed
|