Implement soft_endstops_enabled for clamping

master
Scott Lahteine 8 years ago
parent e4649c9044
commit d01b915085

@ -8982,6 +8982,7 @@ void ok_to_send() {
* Constrain the given coordinates to the software endstops. * Constrain the given coordinates to the software endstops.
*/ */
void clamp_to_software_endstops(float target[XYZ]) { void clamp_to_software_endstops(float target[XYZ]) {
if (!soft_endstops_enabled) return;
#if ENABLED(min_software_endstops) #if ENABLED(min_software_endstops)
NOLESS(target[X_AXIS], soft_endstop_min[X_AXIS]); NOLESS(target[X_AXIS], soft_endstop_min[X_AXIS]);
NOLESS(target[Y_AXIS], soft_endstop_min[Y_AXIS]); NOLESS(target[Y_AXIS], soft_endstop_min[Y_AXIS]);

@ -1596,9 +1596,20 @@ KeepDrawing:
if (encoderPosition) { if (encoderPosition) {
refresh_cmd_timeout(); refresh_cmd_timeout();
// Limit to software endstops, if enabled float min = current_position[axis] - 1000,
float min = (soft_endstops_enabled && min_software_endstops) ? soft_endstop_min[axis] : current_position[axis] - 1000, max = current_position[axis] + 1000;
max = (soft_endstops_enabled && max_software_endstops) ? soft_endstop_max[axis] : 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 // Get the new position
current_position[axis] += float((int32_t)encoderPosition) * move_menu_scale; current_position[axis] += float((int32_t)encoderPosition) * move_menu_scale;

Loading…
Cancel
Save