diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index edf4e945f9..f4925d36ff 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 f657e14e07..1d95315437 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;