From a9926b71a461f2bc800207ab7b9df275c1e0c833 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Tue, 17 May 2016 16:57:12 -0700 Subject: [PATCH 1/2] Require homing of Z before G29 --- Marlin/Marlin_main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index e0191a292e..4ae097833b 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -3176,7 +3176,7 @@ inline void gcode_G28() { #endif // Don't allow auto-leveling without homing first - if (!axis_homed[X_AXIS] || !axis_homed[Y_AXIS]) { + if (!axis_homed[X_AXIS] || !axis_homed[Y_AXIS] || !axis_homed[Z_AXIS]) { axis_unhomed_error(); return; } From a28970784cb9e5420d47df698213a85f9ac1f32b Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Tue, 17 May 2016 17:02:53 -0700 Subject: [PATCH 2/2] XYZ unhomed --- Marlin/Marlin_main.cpp | 23 +++++++++++++++-------- Marlin/language_en.h | 3 +++ 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 4ae097833b..ab017c46f5 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -2063,10 +2063,17 @@ static void setup_for_endstop_move() { #endif // AUTO_BED_LEVELING_FEATURE #if ENABLED(Z_PROBE_SLED) || ENABLED(Z_SAFE_HOMING) || ENABLED(AUTO_BED_LEVELING_FEATURE) - static void axis_unhomed_error() { - LCD_MESSAGEPGM(MSG_YX_UNHOMED); - SERIAL_ECHO_START; - SERIAL_ECHOLNPGM(MSG_YX_UNHOMED); + static void axis_unhomed_error(bool xyz=false) { + if (xyz) { + LCD_MESSAGEPGM(MSG_XYZ_UNHOMED); + SERIAL_ECHO_START; + SERIAL_ECHOLNPGM(MSG_XYZ_UNHOMED); + } + else { + LCD_MESSAGEPGM(MSG_YX_UNHOMED); + SERIAL_ECHO_START; + SERIAL_ECHOLNPGM(MSG_YX_UNHOMED); + } } #endif @@ -2090,8 +2097,8 @@ static void setup_for_endstop_move() { } #endif - if (!axis_homed[X_AXIS] || !axis_homed[Y_AXIS]) { - axis_unhomed_error(); + if (!axis_homed[X_AXIS] || !axis_homed[Y_AXIS] || !axis_homed[Z_AXIS]) { + axis_unhomed_error(true); return; } @@ -3177,7 +3184,7 @@ inline void gcode_G28() { // Don't allow auto-leveling without homing first if (!axis_homed[X_AXIS] || !axis_homed[Y_AXIS] || !axis_homed[Z_AXIS]) { - axis_unhomed_error(); + axis_unhomed_error(true); return; } @@ -4035,7 +4042,7 @@ inline void gcode_M42() { inline void gcode_M48() { if (!axis_homed[X_AXIS] || !axis_homed[Y_AXIS] || !axis_homed[Z_AXIS]) { - axis_unhomed_error(); + axis_unhomed_error(true); return; } diff --git a/Marlin/language_en.h b/Marlin/language_en.h index cc9142de1b..e85d342d0f 100644 --- a/Marlin/language_en.h +++ b/Marlin/language_en.h @@ -448,6 +448,9 @@ #ifndef MSG_YX_UNHOMED #define MSG_YX_UNHOMED "Home X/Y before Z" #endif +#ifndef MSG_XYZ_UNHOMED + #define MSG_XYZ_UNHOMED "Home XYZ first" +#endif #ifndef MSG_ZPROBE_ZOFFSET #define MSG_ZPROBE_ZOFFSET "Z Offset" #endif