diff --git a/klippy/chelper/kin_winch.c b/klippy/chelper/kin_winch.c index 08e4a3fe3..bf47225bd 100644 --- a/klippy/chelper/kin_winch.c +++ b/klippy/chelper/kin_winch.c @@ -256,15 +256,17 @@ static_forces_tikhonov(struct winch_flex *wf, const struct coord *pos, double norm_sq = 0.; for (int i = 0; i < N; ++i) norm_sq += d[i] * d[i]; - if (norm_sq < tol * tol) + if (norm_sq < tol * tol) { break; + } for (int i = 0; i < N; ++i) T[i] -= step_damp * d[i]; } // Hard cap on Tmax and 0 if we don't ignore pretension + // Allow negative forces if the user asked for it for (int i=0;imin_force[i] >= 0. && T[i] < 0.) T[i] = 0.; if (T[i] > wf->max_force[i]) T[i] = wf->max_force[i]; } }