diff --git a/Marlin/src/gcode/calibrate/G28.cpp b/Marlin/src/gcode/calibrate/G28.cpp index b5ae3f8457..e22af34ab7 100644 --- a/Marlin/src/gcode/calibrate/G28.cpp +++ b/Marlin/src/gcode/calibrate/G28.cpp @@ -237,11 +237,10 @@ void GcodeSuite::G28() { return; } - #if HAS_Y_AXIS + #if ENABLED(G28_F_TEMPORARY_FEEDRATE) + REMEMBER(fr, homing_feedrate_mm_m); if (parser.floatval('F') > 0) - homing_feedrate_mm_m.x = homing_feedrate_mm_m.y = parser.value_feedrate(); - else - homing_feedrate_mm_m = xyz_feedrate_t(HOMING_FEEDRATE_MM_M); + homing_feedrate_mm_m.x = TERN_(HAS_Y_AXIS, homing_feedrate_mm_m.y =) parser.value_feedrate(); #endif #if ENABLED(FULL_REPORT_TO_HOST_FEATURE) diff --git a/Marlin/src/gcode/gcode.cpp b/Marlin/src/gcode/gcode.cpp index 595312e6ae..9e1a330974 100644 --- a/Marlin/src/gcode/gcode.cpp +++ b/Marlin/src/gcode/gcode.cpp @@ -199,10 +199,11 @@ void GcodeSuite::get_destination_from_command() { recovery.save(); #endif - if (parser.floatval('F') > 0) { + const float fr_mm_m = parser.floatval('F'); + if (fr_mm_m > 0) { feedrate_mm_s = parser.value_feedrate(); // Update the cutter feed rate for use by M4 I set inline moves. - TERN_(LASER_FEATURE, cutter.feedrate_mm_m = MMS_TO_MMM(feedrate_mm_s)); + TERN_(LASER_FEATURE, cutter.feedrate_mm_m = fr_mm_m); } #if ALL(PRINTCOUNTER, HAS_EXTRUDERS) diff --git a/Marlin/src/module/motion.cpp b/Marlin/src/module/motion.cpp index cca22b0f10..31530fd87d 100644 --- a/Marlin/src/module/motion.cpp +++ b/Marlin/src/module/motion.cpp @@ -141,7 +141,7 @@ xyze_pos_t destination; // {0} #endif feedRate_t feedrate_mm_s = MMM_TO_MMS(DEFAULT_FEEDRATE_MM_M); int16_t feedrate_percentage = 100; -#if HAS_Y_AXIS +#if ENABLED(G28_F_TEMPORARY_FEEDRATE) xyz_feedrate_t homing_feedrate_mm_m = HOMING_FEEDRATE_MM_M; #endif diff --git a/Marlin/src/module/motion.h b/Marlin/src/module/motion.h index 4166402824..fa9abf6a79 100644 --- a/Marlin/src/module/motion.h +++ b/Marlin/src/module/motion.h @@ -79,7 +79,7 @@ extern xyz_pos_t cartes; * Feed rates are often configured with mm/m * but the planner and stepper like mm/s units. */ -#if HAS_Y_AXIS +#if ENABLED(G28_F_TEMPORARY_FEEDRATE) extern xyz_feedrate_t homing_feedrate_mm_m; #else constexpr xyz_feedrate_t homing_feedrate_mm_m = HOMING_FEEDRATE_MM_M;