aboutsummaryrefslogtreecommitdiffstats
path: root/klippy
diff options
context:
space:
mode:
Diffstat (limited to 'klippy')
-rw-r--r--klippy/extras/screws_tilt_adjust.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/klippy/extras/screws_tilt_adjust.py b/klippy/extras/screws_tilt_adjust.py
index 2dd54af3..30e091ff 100644
--- a/klippy/extras/screws_tilt_adjust.py
+++ b/klippy/extras/screws_tilt_adjust.py
@@ -19,6 +19,7 @@ class ScrewsTiltAdjust:
self.config = config
self.printer = config.get_printer()
self.screws = []
+ self.max_diff = None
# Read config
for i in range(99):
prefix = "screw%d" % (i + 1,)
@@ -51,11 +52,13 @@ class ScrewsTiltAdjust:
"of turns to level it."
def cmd_SCREWS_TILT_CALCULATE(self, gcmd):
+ self.max_diff = gcmd.get_float("MAX_DEVIATION", None)
self.probe_helper.start_probe(gcmd)
def probe_finalize(self, offsets, positions):
# Factors used for CW-M3, CCW-M3, CW-M4, CCW-M4, CW-M5 and CCW-M5
threads_factor = {0: 0.5, 1: 0.5, 2: 0.7, 3: 0.7, 4: 0.8, 5: 0.8}
+ screw_diff = []
# Process the read Z values and
for i, screw in enumerate(self.screws):
if i == 0:
@@ -71,6 +74,7 @@ class ScrewsTiltAdjust:
z = positions[i][2]
coord, name = screw
diff = z_base - z
+ screw_diff.append(abs(diff))
if abs(diff) < 0.001:
adjust = 0
else:
@@ -87,6 +91,10 @@ class ScrewsTiltAdjust:
"Adjust -> %s %02d:%02d" %
(name, coord[0], coord[1], z, sign,
abs(full_turns), abs(minutes)))
+ if self.max_diff and any((d > self.max_diff) for d in screw_diff):
+ raise self.gcode.error(
+ "bed level exceeds configured limits ({}mm)! " \
+ "Adjust screws and restart print.".format(self.max_diff))
def load_config(config):
return ScrewsTiltAdjust(config)