소스 검색

do_pause_e_move => unscaled_e_move

Scott Lahteine 5 년 전
부모
커밋
765a9f3471

+ 11
- 20
Marlin/src/feature/pause.cpp 파일 보기

134
   return thermalManager.wait_for_hotend(active_extruder);
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
  * Load filament into the hotend
138
  * Load filament into the hotend
148
  *
139
  *
217
   #endif
208
   #endif
218
 
209
 
219
   // Slow Load filament
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
   // Fast Load Filament
213
   // Fast Load Filament
223
   if (fast_load_length) {
214
   if (fast_load_length) {
226
       planner.settings.retract_acceleration = FILAMENT_CHANGE_FAST_LOAD_ACCEL;
217
       planner.settings.retract_acceleration = FILAMENT_CHANGE_FAST_LOAD_ACCEL;
227
     #endif
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
     #if FILAMENT_CHANGE_FAST_LOAD_ACCEL > 0
222
     #if FILAMENT_CHANGE_FAST_LOAD_ACCEL > 0
232
       planner.settings.retract_acceleration = saved_acceleration;
223
       planner.settings.retract_acceleration = saved_acceleration;
253
     #endif
244
     #endif
254
     wait_for_user = true; // A click or M108 breaks the purge_length loop
245
     wait_for_user = true; // A click or M108 breaks the purge_length loop
255
     for (float purge_count = purge_length; purge_count > 0 && wait_for_user; --purge_count)
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
     wait_for_user = false;
248
     wait_for_user = false;
258
 
249
 
259
   #else
250
   #else
266
         #endif
257
         #endif
267
 
258
 
268
         // Extrude filament to get into hotend
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
       #if ENABLED(HOST_PROMPT_SUPPORT)
263
       #if ENABLED(HOST_PROMPT_SUPPORT)
331
   #endif
322
   #endif
332
 
323
 
333
   // Retract filament
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
   // Wait for filament to cool
327
   // Wait for filament to cool
337
   safe_delay(FILAMENT_UNLOAD_PURGE_DELAY);
328
   safe_delay(FILAMENT_UNLOAD_PURGE_DELAY);
338
 
329
 
339
   // Quickly purge
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
                   (FILAMENT_UNLOAD_PURGE_FEEDRATE) * mix_multiplier);
332
                   (FILAMENT_UNLOAD_PURGE_FEEDRATE) * mix_multiplier);
342
 
333
 
343
   // Unload filament
334
   // Unload filament
346
     planner.settings.retract_acceleration = FILAMENT_CHANGE_UNLOAD_ACCEL;
337
     planner.settings.retract_acceleration = FILAMENT_CHANGE_UNLOAD_ACCEL;
347
   #endif
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
   #if FILAMENT_CHANGE_FAST_LOAD_ACCEL > 0
342
   #if FILAMENT_CHANGE_FAST_LOAD_ACCEL > 0
352
     planner.settings.retract_acceleration = saved_acceleration;
343
     planner.settings.retract_acceleration = saved_acceleration;
436
 
427
 
437
   // Initial retract before move to filament change position
428
   // Initial retract before move to filament change position
438
   if (retract && thermalManager.hotEnoughToExtrude(active_extruder))
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
   // Park the nozzle by moving up by z_lift and then moving to (x_pos, y_pos)
432
   // Park the nozzle by moving up by z_lift and then moving to (x_pos, y_pos)
442
   if (!axes_need_homing())
433
   if (!axes_need_homing())
631
   #if ENABLED(FWRETRACT)
622
   #if ENABLED(FWRETRACT)
632
     // If retracted before goto pause
623
     // If retracted before goto pause
633
     if (fwretract.retracted[active_extruder])
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
   #endif
626
   #endif
636
 
627
 
637
   // If resume_position is negative
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
   // Move XY to starting position, then Z
631
   // Move XY to starting position, then Z
641
   do_blocking_move_to_xy(resume_position, feedRate_t(NOZZLE_PARK_XY_FEEDRATE));
632
   do_blocking_move_to_xy(resume_position, feedRate_t(NOZZLE_PARK_XY_FEEDRATE));
644
   do_blocking_move_to_z(resume_position.z, feedRate_t(NOZZLE_PARK_Z_FEEDRATE));
635
   do_blocking_move_to_z(resume_position.z, feedRate_t(NOZZLE_PARK_Z_FEEDRATE));
645
 
636
 
646
   #if ADVANCED_PAUSE_RESUME_PRIME != 0
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
   #endif
639
   #endif
649
 
640
 
650
   // Now all extrusion positions are resumed and ready to be confirmed
641
   // Now all extrusion positions are resumed and ready to be confirmed

+ 0
- 2
Marlin/src/feature/pause.h 파일 보기

83
   #define DXC_PASS
83
   #define DXC_PASS
84
 #endif
84
 #endif
85
 
85
 
86
-void do_pause_e_move(const float &length, const feedRate_t &fr_mm_s);
87
-
88
 bool pause_print(const float &retract, const xyz_pos_t &park_point, const float &unload_length=0, const bool show_lcd=false DXC_PARAMS);
86
 bool pause_print(const float &retract, const xyz_pos_t &park_point, const float &unload_length=0, const bool show_lcd=false DXC_PARAMS);
89
 
87
 
90
 void wait_for_confirmation(const bool is_reload=false, const int8_t max_beep_count=0 DXC_PARAMS);
88
 void wait_for_confirmation(const bool is_reload=false, const int8_t max_beep_count=0 DXC_PARAMS);

+ 2
- 8
Marlin/src/gcode/feature/camera/M240.cpp 파일 보기

48
 
48
 
49
   #ifdef PHOTO_RETRACT_MM
49
   #ifdef PHOTO_RETRACT_MM
50
     inline void e_move_m240(const float length, const feedRate_t &fr_mm_s) {
50
     inline void e_move_m240(const float length, const feedRate_t &fr_mm_s) {
51
-      if (length && thermalManager.hotEnoughToExtrude(active_extruder)) {
52
-        #if ENABLED(ADVANCED_PAUSE_FEATURE)
53
-          do_pause_e_move(length, fr_mm_s);
54
-        #else
55
-          current_position.e += length / planner.e_factor[active_extruder];
56
-          line_to_current_position(fr_mm_s);
57
-        #endif
58
-      }
51
+      if (length && thermalManager.hotEnoughToExtrude(active_extruder))
52
+        unscaled_e_move(length, fr_mm_s);
59
     }
53
     }
60
   #endif
54
   #endif
61
 
55
 

+ 2
- 2
Marlin/src/lcd/language/language_fr.h 파일 보기

93
   PROGMEM Language_Str MSG_SWITCH_PS_ON                    = _UxGT("Allumer alim.");
93
   PROGMEM Language_Str MSG_SWITCH_PS_ON                    = _UxGT("Allumer alim.");
94
   PROGMEM Language_Str MSG_SWITCH_PS_OFF                   = _UxGT("Eteindre alim.");
94
   PROGMEM Language_Str MSG_SWITCH_PS_OFF                   = _UxGT("Eteindre alim.");
95
   PROGMEM Language_Str MSG_EXTRUDE                         = _UxGT("Extrusion");
95
   PROGMEM Language_Str MSG_EXTRUDE                         = _UxGT("Extrusion");
96
-  PROGMEM Language_Str MSG_RETRACT                         = _UxGT("Rétraction");
96
+  PROGMEM Language_Str MSG_RETRACT                         = _UxGT("Rétractation");
97
   PROGMEM Language_Str MSG_MOVE_AXIS                       = _UxGT("Déplacer un axe");
97
   PROGMEM Language_Str MSG_MOVE_AXIS                       = _UxGT("Déplacer un axe");
98
   PROGMEM Language_Str MSG_BED_LEVELING                    = _UxGT("Régler Niv. lit");
98
   PROGMEM Language_Str MSG_BED_LEVELING                    = _UxGT("Régler Niv. lit");
99
   PROGMEM Language_Str MSG_LEVEL_BED                       = _UxGT("Niveau du lit");
99
   PROGMEM Language_Str MSG_LEVEL_BED                       = _UxGT("Niveau du lit");
317
   PROGMEM Language_Str MSG_NO_MOVE                         = _UxGT("Moteurs bloqués");
317
   PROGMEM Language_Str MSG_NO_MOVE                         = _UxGT("Moteurs bloqués");
318
   PROGMEM Language_Str MSG_KILLED                          = _UxGT("KILLED");
318
   PROGMEM Language_Str MSG_KILLED                          = _UxGT("KILLED");
319
   PROGMEM Language_Str MSG_STOPPED                         = _UxGT("STOPPÉ");
319
   PROGMEM Language_Str MSG_STOPPED                         = _UxGT("STOPPÉ");
320
-  PROGMEM Language_Str MSG_CONTROL_RETRACT                 = _UxGT("Rétraction mm");
320
+  PROGMEM Language_Str MSG_CONTROL_RETRACT                 = _UxGT("Rétractation mm");
321
   PROGMEM Language_Str MSG_CONTROL_RETRACT_SWAP            = _UxGT("Ech. rétr. mm");
321
   PROGMEM Language_Str MSG_CONTROL_RETRACT_SWAP            = _UxGT("Ech. rétr. mm");
322
   PROGMEM Language_Str MSG_CONTROL_RETRACTF                = _UxGT("Vit. rétract°");
322
   PROGMEM Language_Str MSG_CONTROL_RETRACTF                = _UxGT("Vit. rétract°");
323
   PROGMEM Language_Str MSG_CONTROL_RETRACT_ZHOP            = _UxGT("Saut Z mm");
323
   PROGMEM Language_Str MSG_CONTROL_RETRACT_ZHOP            = _UxGT("Saut Z mm");

+ 13
- 0
Marlin/src/module/motion.cpp 파일 보기

55
   #include "../lcd/ultralcd.h"
55
   #include "../lcd/ultralcd.h"
56
 #endif
56
 #endif
57
 
57
 
58
+#if HAS_FILAMENT_SENSOR
59
+  #include "../feature/runout.h"
60
+#endif
61
+
58
 #if ENABLED(SENSORLESS_HOMING)
62
 #if ENABLED(SENSORLESS_HOMING)
59
   #include "../feature/tmc_util.h"
63
   #include "../feature/tmc_util.h"
60
 #endif
64
 #endif
332
   planner.buffer_line(current_position, fr_mm_s, active_extruder);
336
   planner.buffer_line(current_position, fr_mm_s, active_extruder);
333
 }
337
 }
334
 
338
 
339
+void unscaled_e_move(const float &length, const feedRate_t &fr_mm_s) {
340
+  #if HAS_FILAMENT_SENSOR
341
+    runout.reset();
342
+  #endif
343
+  current_position.e += length / planner.e_factor[active_extruder];
344
+  line_to_current_position(fr_mm_s);
345
+  planner.synchronize();
346
+}
347
+
335
 #if IS_KINEMATIC
348
 #if IS_KINEMATIC
336
 
349
 
337
   /**
350
   /**

+ 2
- 0
Marlin/src/module/motion.h 파일 보기

184
  */
184
  */
185
 void line_to_current_position(const feedRate_t &fr_mm_s=feedrate_mm_s);
185
 void line_to_current_position(const feedRate_t &fr_mm_s=feedrate_mm_s);
186
 
186
 
187
+void unscaled_e_move(const float &length, const feedRate_t &fr_mm_s);
188
+
187
 void prepare_line_to_destination();
189
 void prepare_line_to_destination();
188
 
190
 
189
 void _internal_move_to_destination(const feedRate_t &fr_mm_s=0.0f
191
 void _internal_move_to_destination(const feedRate_t &fr_mm_s=0.0f

+ 3
- 3
Marlin/src/module/tool_change.cpp 파일 보기

856
         }
856
         }
857
         else {
857
         else {
858
           #if ENABLED(ADVANCED_PAUSE_FEATURE)
858
           #if ENABLED(ADVANCED_PAUSE_FEATURE)
859
-            do_pause_e_move(-toolchange_settings.swap_length, MMM_TO_MMS(toolchange_settings.retract_speed));
859
+            unscaled_e_move(-toolchange_settings.swap_length, MMM_TO_MMS(toolchange_settings.retract_speed));
860
           #else
860
           #else
861
             current_position.e -= toolchange_settings.swap_length / planner.e_factor[old_tool];
861
             current_position.e -= toolchange_settings.swap_length / planner.e_factor[old_tool];
862
             planner.buffer_line(current_position, MMM_TO_MMS(toolchange_settings.retract_speed), old_tool);
862
             planner.buffer_line(current_position, MMM_TO_MMS(toolchange_settings.retract_speed), old_tool);
991
         #if ENABLED(TOOLCHANGE_FILAMENT_SWAP)
991
         #if ENABLED(TOOLCHANGE_FILAMENT_SWAP)
992
           if (should_swap && !too_cold) {
992
           if (should_swap && !too_cold) {
993
             #if ENABLED(ADVANCED_PAUSE_FEATURE)
993
             #if ENABLED(ADVANCED_PAUSE_FEATURE)
994
-              do_pause_e_move(toolchange_settings.swap_length, MMM_TO_MMS(toolchange_settings.prime_speed));
995
-              do_pause_e_move(toolchange_settings.extra_prime, ADVANCED_PAUSE_PURGE_FEEDRATE);
994
+              unscaled_e_move(toolchange_settings.swap_length, MMM_TO_MMS(toolchange_settings.prime_speed));
995
+              unscaled_e_move(toolchange_settings.extra_prime, ADVANCED_PAUSE_PURGE_FEEDRATE);
996
             #else
996
             #else
997
               current_position.e += toolchange_settings.swap_length / planner.e_factor[new_tool];
997
               current_position.e += toolchange_settings.swap_length / planner.e_factor[new_tool];
998
               planner.buffer_line(current_position, MMM_TO_MMS(toolchange_settings.prime_speed), new_tool);
998
               planner.buffer_line(current_position, MMM_TO_MMS(toolchange_settings.prime_speed), new_tool);

Loading…
취소
저장