aboutsummaryrefslogtreecommitdiffstats
path: root/klippy/extras
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2020-08-16 22:08:28 -0400
committerKevin O'Connor <kevin@koconnor.net>2020-08-20 21:03:22 -0400
commitb9ac6d63069974a90a3740eaf2a3e5ae81e35470 (patch)
tree1cb17e61ae0ff0f12766a64359580f64fe6622e0 /klippy/extras
parent4115a77342239bfbef3be2463e3ba6b5c3616167 (diff)
downloadkutter-b9ac6d63069974a90a3740eaf2a3e5ae81e35470.tar.gz
kutter-b9ac6d63069974a90a3740eaf2a3e5ae81e35470.tar.xz
kutter-b9ac6d63069974a90a3740eaf2a3e5ae81e35470.zip
skew_correction: Make sure to call reset_last_position() on a skew update
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'klippy/extras')
-rw-r--r--klippy/extras/skew_correction.py17
1 files changed, 10 insertions, 7 deletions
diff --git a/klippy/extras/skew_correction.py b/klippy/extras/skew_correction.py
index c3731da3..afb68bbb 100644
--- a/klippy/extras/skew_correction.py
+++ b/klippy/extras/skew_correction.py
@@ -69,6 +69,12 @@ class PrinterSkew:
def move(self, newpos, speed):
corrected_pos = self.calc_skew(newpos)
self.next_transform.move(corrected_pos, speed)
+ def _update_skew(self, xy_factor, xz_factor, yz_factor):
+ self.xy_factor = xy_factor
+ self.xz_factor = xz_factor
+ self.yz_factor = yz_factor
+ gcode = self.printer.lookup_object('gcode')
+ gcode.reset_last_position()
cmd_GET_CURRENT_SKEW_help = "Report current printer skew"
def cmd_GET_CURRENT_SKEW(self, gcmd):
out = "Current Printer Skew:"
@@ -90,9 +96,7 @@ class PrinterSkew:
cmd_SET_SKEW_help = "Set skew based on lengths of measured object"
def cmd_SET_SKEW(self, gcmd):
if gcmd.get_int("CLEAR", 0):
- self.xy_factor = 0.
- self.xz_factor = 0.
- self.yz_factor = 0.
+ self._update_skew(0., 0., 0.)
return
planes = ["XY", "XZ", "YZ"]
for plane in planes:
@@ -113,14 +117,13 @@ class PrinterSkew:
def cmd_SKEW_PROFILE(self, gcmd):
if gcmd.get('LOAD', None) is not None:
name = gcmd.get('LOAD')
- if name not in self.skew_profiles:
+ prof = self.skew_profiles.get(name)
+ if prof is None:
gcmd.respond_info(
"skew_correction: Load failed, unknown profile [%s]"
% (name))
return
- self.xy_factor = self.skew_profiles[name]['xy_skew']
- self.xz_factor = self.skew_profiles[name]['xz_skew']
- self.yz_factor = self.skew_profiles[name]['yz_skew']
+ self._update_skew(prof['xy_skew'], prof['xz_skew'], prof['yz_skew'])
elif gcmd.get('SAVE', None) is not None:
name = gcmd.get('SAVE')
configfile = self.printer.lookup_object('configfile')