From d01b91508568ecd6b69e4d09e9b91a21dfa5cdd5 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Thu, 16 Mar 2017 17:28:44 -0500 Subject: [PATCH] Implement soft_endstops_enabled for clamping --- Marlin/Marlin_main.cpp | 1 + Marlin/ultralcd.cpp | 17 ++++++++++++++--- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index edf4e945f..f4925d36f 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -8982,6 +8982,7 @@ void ok_to_send() { * Constrain the given coordinates to the software endstops. */ void clamp_to_software_endstops(float target[XYZ]) { + if (!soft_endstops_enabled) return; #if ENABLED(min_software_endstops) NOLESS(target[X_AXIS], soft_endstop_min[X_AXIS]); NOLESS(target[Y_AXIS], soft_endstop_min[Y_AXIS]); diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index f657e14e0..1d9531543 100755 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -1596,9 +1596,20 @@ KeepDrawing: if (encoderPosition) { refresh_cmd_timeout(); - // Limit to software endstops, if enabled - float min = (soft_endstops_enabled && min_software_endstops) ? soft_endstop_min[axis] : current_position[axis] - 1000, - max = (soft_endstops_enabled && max_software_endstops) ? soft_endstop_max[axis] : current_position[axis] + 1000; + float min = current_position[axis] - 1000, + max = current_position[axis] + 1000; + + #if HAS_SOFTWARE_ENDSTOPS + // Limit to software endstops, if enabled + if (soft_endstops_enabled) { + #if ENABLED(min_software_endstops) + min = soft_endstop_min[axis]; + #endif + #if ENABLED(max_software_endstops) + max = soft_endstop_max[axis]; + #endif + } + #endif // Get the new position current_position[axis] += float((int32_t)encoderPosition) * move_menu_scale;