From a2a30ff0ac2be6c915d7b0193c827bae3395638c Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Tue, 19 Jun 2018 22:54:20 -0500 Subject: [PATCH] Use Tool 0 for Dual X Axis G29 See https://github.com/MarlinFirmware/Marlin/issues/5597#issuecomment-397683325 --- Marlin/src/feature/bedlevel/ubl/ubl_G29.cpp | 14 +++++++++----- Marlin/src/gcode/bedlevel/abl/G29.cpp | 4 ++++ 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/Marlin/src/feature/bedlevel/ubl/ubl_G29.cpp b/Marlin/src/feature/bedlevel/ubl/ubl_G29.cpp index 53a7f7252..7ebcd78ce 100644 --- a/Marlin/src/feature/bedlevel/ubl/ubl_G29.cpp +++ b/Marlin/src/feature/bedlevel/ubl/ubl_G29.cpp @@ -292,13 +292,17 @@ void unified_bed_leveling::G29() { - if (g29_parameter_parsing()) return; // abort if parsing the simple parameters causes a problem, + if (g29_parameter_parsing()) return; // Abort on parameter error + + const int8_t p_val = parser.intval('P', -1); + const bool may_move = p_val == 1 || p_val == 2 || p_val == 4 || parser.seen('J'); // Check for commands that require the printer to be homed - if (axis_unhomed_error()) { - const int8_t p_val = parser.intval('P', -1); - if (p_val == 1 || p_val == 2 || p_val == 4 || parser.seen('J')) - gcode.home_all_axes(); + if (may_move) { + if (axis_unhomed_error()) gcode.home_all_axes(); + #if ENABLED(DUAL_X_CARRIAGE) + if (active_extruder != 0) tool_change(0); + #endif } // Invalidate Mesh Points. This command is a little bit asymmetrical because diff --git a/Marlin/src/gcode/bedlevel/abl/G29.cpp b/Marlin/src/gcode/bedlevel/abl/G29.cpp index fb8a2e55f..c98bc6b9f 100644 --- a/Marlin/src/gcode/bedlevel/abl/G29.cpp +++ b/Marlin/src/gcode/bedlevel/abl/G29.cpp @@ -268,6 +268,10 @@ void GcodeSuite::G29() { */ if (!g29_in_progress) { + #if ENABLED(DUAL_X_CARRIAGE) + if (active_extruder != 0) tool_change(0); + #endif + #if ENABLED(PROBE_MANUALLY) || ENABLED(AUTO_BED_LEVELING_LINEAR) abl_probe_index = -1; #endif