Implement soft_endstops_enabled for clamping

This commit is contained in:
Scott Lahteine 2017-03-16 17:28:44 -05:00
parent e4649c9044
commit d01b915085
2 changed files with 15 additions and 3 deletions

View File

@ -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]);

View File

@ -1596,9 +1596,20 @@ KeepDrawing:
if (encoderPosition) {
refresh_cmd_timeout();
float min = current_position[axis] - 1000,
max = current_position[axis] + 1000;
#if HAS_SOFTWARE_ENDSTOPS
// 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;
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;