From 7f8984b500d6a40c55eb95a685cf3bc13730f8a5 Mon Sep 17 00:00:00 2001 From: Studiodyne Date: Wed, 14 Mar 2018 07:34:15 +0100 Subject: [PATCH] [1.1] FWRetract Reset (Best way) (#10084) --- Marlin/Configuration_adv.h | 2 +- Marlin/Marlin_main.cpp | 2 +- Marlin/fwretract.cpp | 4 +++- Marlin/fwretract.h | 3 ++- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h index 4f2d9e0a8..2ddb0c806 100644 --- a/Marlin/Configuration_adv.h +++ b/Marlin/Configuration_adv.h @@ -863,7 +863,7 @@ * will be converted to firmware-based retract/recover moves. * * Note: Be sure to turn off auto-retract during filament change. - * Note: Current status (Retract / Swap / Zlift) isn't reset by G28. + * Note: Current Zlift reset by G28 or G28 Z. * * Note that M207 / M208 / M209 settings are saved to EEPROM. * diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 218bf43f5..8365ed812 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -3093,7 +3093,7 @@ static void homeaxis(const AxisEnum axis) { // Clear retracted status if homing the Z axis #if ENABLED(FWRETRACT) if (axis == Z_AXIS) - for (uint8_t i = 0; i < EXTRUDERS; i++) fwretract.retracted[i] = false; + fwretract.hop_amount = 0.0; #endif #if ENABLED(DEBUG_LEVELING_FEATURE) diff --git a/Marlin/fwretract.cpp b/Marlin/fwretract.cpp index 4f0c65111..8a26a4e16 100644 --- a/Marlin/fwretract.cpp +++ b/Marlin/fwretract.cpp @@ -52,7 +52,8 @@ float FWRetract::retract_length, // M207 S - G10 Retract len FWRetract::retract_recover_feedrate_mm_s, // M208 F - G11 Recover feedrate FWRetract::swap_retract_length, // M207 W - G10 Swap Retract length FWRetract::swap_retract_recover_length, // M208 W - G11 Swap Recover length - FWRetract::swap_retract_recover_feedrate_mm_s; // M208 R - G11 Swap Recover feedrate + FWRetract::swap_retract_recover_feedrate_mm_s, // M208 R - G11 Swap Recover feedrate + FWRetract::hop_amount; void FWRetract::reset() { autoretract_enabled = false; @@ -64,6 +65,7 @@ void FWRetract::reset() { swap_retract_length = RETRACT_LENGTH_SWAP; swap_retract_recover_length = RETRACT_RECOVER_LENGTH_SWAP; swap_retract_recover_feedrate_mm_s = RETRACT_RECOVER_FEEDRATE_SWAP; + hop_amount = 0.0; for (uint8_t i = 0; i < EXTRUDERS; ++i) { retracted[i] = false; diff --git a/Marlin/fwretract.h b/Marlin/fwretract.h index a36885789..d72f193eb 100644 --- a/Marlin/fwretract.h +++ b/Marlin/fwretract.h @@ -43,7 +43,8 @@ public: retract_recover_feedrate_mm_s, // M208 F - G11 Recover feedrate swap_retract_length, // M207 W - G10 Swap Retract length swap_retract_recover_length, // M208 W - G11 Swap Recover length - swap_retract_recover_feedrate_mm_s; // M208 R - G11 Swap Recover feedrate + swap_retract_recover_feedrate_mm_s, // M208 R - G11 Swap Recover feedrate + hop_amount; FWRetract() { reset(); }