Add a feedRate_t data type (#15349)
This commit is contained in:
		@@ -38,7 +38,7 @@
 | 
			
		||||
extern float destination[XYZE];
 | 
			
		||||
 | 
			
		||||
#if ENABLED(VARIABLE_G0_FEEDRATE)
 | 
			
		||||
  float saved_g0_feedrate_mm_s = MMM_TO_MMS(G0_FEEDRATE);
 | 
			
		||||
  feedRate_t fast_move_feedrate = MMM_TO_MMS(G0_FEEDRATE);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
@@ -46,7 +46,7 @@ extern float destination[XYZE];
 | 
			
		||||
 */
 | 
			
		||||
void GcodeSuite::G0_G1(
 | 
			
		||||
  #if IS_SCARA || defined(G0_FEEDRATE)
 | 
			
		||||
    bool fast_move/*=false*/
 | 
			
		||||
    const bool fast_move/*=false*/
 | 
			
		||||
  #endif
 | 
			
		||||
) {
 | 
			
		||||
 | 
			
		||||
@@ -60,23 +60,23 @@ void GcodeSuite::G0_G1(
 | 
			
		||||
  ) {
 | 
			
		||||
 | 
			
		||||
    #ifdef G0_FEEDRATE
 | 
			
		||||
      float saved_feedrate_mm_s;
 | 
			
		||||
      feedRate_t old_feedrate;
 | 
			
		||||
      #if ENABLED(VARIABLE_G0_FEEDRATE)
 | 
			
		||||
        if (fast_move) {
 | 
			
		||||
          saved_feedrate_mm_s = feedrate_mm_s;      // Back up the (old) motion mode feedrate
 | 
			
		||||
          feedrate_mm_s = saved_g0_feedrate_mm_s;   // Get G0 feedrate from last usage
 | 
			
		||||
          old_feedrate = feedrate_mm_s;             // Back up the (old) motion mode feedrate
 | 
			
		||||
          feedrate_mm_s = fast_move_feedrate;       // Get G0 feedrate from last usage
 | 
			
		||||
        }
 | 
			
		||||
      #endif
 | 
			
		||||
    #endif
 | 
			
		||||
 | 
			
		||||
    get_destination_from_command(); // For X Y Z E F
 | 
			
		||||
    get_destination_from_command();                 // Process X Y Z E F parameters
 | 
			
		||||
 | 
			
		||||
    #ifdef G0_FEEDRATE
 | 
			
		||||
      if (fast_move) {
 | 
			
		||||
        #if ENABLED(VARIABLE_G0_FEEDRATE)
 | 
			
		||||
          saved_g0_feedrate_mm_s = feedrate_mm_s;   // Save feedrate for the next G0
 | 
			
		||||
          fast_move_feedrate = feedrate_mm_s;       // Save feedrate for the next G0
 | 
			
		||||
        #else
 | 
			
		||||
          saved_feedrate_mm_s = feedrate_mm_s;      // Back up the (new) motion mode feedrate
 | 
			
		||||
          old_feedrate = feedrate_mm_s;             // Back up the (new) motion mode feedrate
 | 
			
		||||
          feedrate_mm_s = MMM_TO_MMS(G0_FEEDRATE);  // Get the fixed G0 feedrate
 | 
			
		||||
        #endif
 | 
			
		||||
      }
 | 
			
		||||
@@ -100,14 +100,14 @@ void GcodeSuite::G0_G1(
 | 
			
		||||
    #endif // FWRETRACT
 | 
			
		||||
 | 
			
		||||
    #if IS_SCARA
 | 
			
		||||
      fast_move ? prepare_uninterpolated_move_to_destination() : prepare_move_to_destination();
 | 
			
		||||
      fast_move ? prepare_fast_move_to_destination() : prepare_move_to_destination();
 | 
			
		||||
    #else
 | 
			
		||||
      prepare_move_to_destination();
 | 
			
		||||
    #endif
 | 
			
		||||
 | 
			
		||||
    #ifdef G0_FEEDRATE
 | 
			
		||||
      // Restore the motion mode feedrate
 | 
			
		||||
      if (fast_move) feedrate_mm_s = saved_feedrate_mm_s;
 | 
			
		||||
      if (fast_move) feedrate_mm_s = old_feedrate;
 | 
			
		||||
    #endif
 | 
			
		||||
 | 
			
		||||
    #if ENABLED(NANODLP_Z_SYNC)
 | 
			
		||||
 
 | 
			
		||||
@@ -146,10 +146,10 @@ void plan_arc(
 | 
			
		||||
  // Initialize the extruder axis
 | 
			
		||||
  raw[E_AXIS] = current_position[E_AXIS];
 | 
			
		||||
 | 
			
		||||
  const float fr_mm_s = MMS_SCALED(feedrate_mm_s);
 | 
			
		||||
  const feedRate_t scaled_fr_mm_s = MMS_SCALED(feedrate_mm_s);
 | 
			
		||||
 | 
			
		||||
  #if ENABLED(SCARA_FEEDRATE_SCALING)
 | 
			
		||||
    const float inv_duration = fr_mm_s / MM_PER_ARC_SEGMENT;
 | 
			
		||||
    const float inv_duration = scaled_fr_mm_s / MM_PER_ARC_SEGMENT;
 | 
			
		||||
  #endif
 | 
			
		||||
 | 
			
		||||
  millis_t next_idle_ms = millis() + 200UL;
 | 
			
		||||
@@ -206,7 +206,7 @@ void plan_arc(
 | 
			
		||||
      planner.apply_leveling(raw);
 | 
			
		||||
    #endif
 | 
			
		||||
 | 
			
		||||
    if (!planner.buffer_line(raw, fr_mm_s, active_extruder, MM_PER_ARC_SEGMENT
 | 
			
		||||
    if (!planner.buffer_line(raw, scaled_fr_mm_s, active_extruder, MM_PER_ARC_SEGMENT
 | 
			
		||||
      #if ENABLED(SCARA_FEEDRATE_SCALING)
 | 
			
		||||
        , inv_duration
 | 
			
		||||
      #endif
 | 
			
		||||
@@ -226,7 +226,7 @@ void plan_arc(
 | 
			
		||||
    planner.apply_leveling(raw);
 | 
			
		||||
  #endif
 | 
			
		||||
 | 
			
		||||
  planner.buffer_line(raw, fr_mm_s, active_extruder, MM_PER_ARC_SEGMENT
 | 
			
		||||
  planner.buffer_line(raw, scaled_fr_mm_s, active_extruder, MM_PER_ARC_SEGMENT
 | 
			
		||||
    #if ENABLED(SCARA_FEEDRATE_SCALING)
 | 
			
		||||
      , inv_duration
 | 
			
		||||
    #endif
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user