From c0d860487a70a05d44973d53a981e935ce7b3ad0 Mon Sep 17 00:00:00 2001 From: Kevin O'Connor Date: Sat, 1 May 2021 00:27:43 -0400 Subject: stepper: Remove set_tag_position() code Have callers store the stepper positions in a dict. Signed-off-by: Kevin O'Connor --- klippy/extras/homing.py | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) (limited to 'klippy/extras/homing.py') diff --git a/klippy/extras/homing.py b/klippy/extras/homing.py index a1167e2e..f6dead84 100644 --- a/klippy/extras/homing.py +++ b/klippy/extras/homing.py @@ -46,8 +46,8 @@ class HomingMove: # Note start location self.toolhead.flush_step_generation() kin = self.toolhead.get_kinematics() - for s in kin.get_steppers(): - s.set_tag_position(s.get_commanded_position()) + kin_spos = {s.get_name(): s.get_commanded_position() + for s in kin.get_steppers()} start_mcu_pos = [(s, name, s.get_mcu_position()) for es, name in self.endstops for s in es.get_steppers()] @@ -80,9 +80,10 @@ class HomingMove: for s, name, spos in start_mcu_pos] if probe_pos: for s, name, spos, epos in self.end_mcu_pos: - md = (epos - spos) * s.get_step_dist() - s.set_tag_position(s.get_tag_position() + md) - movepos = list(kin.calc_tag_position())[:3] + movepos[3:] + sname = s.get_name() + if sname in kin_spos: + kin_spos[sname] += (epos - spos) * s.get_step_dist() + movepos = list(kin.calc_position(kin_spos))[:3] + movepos[3:] self.toolhead.set_position(movepos) # Signal homing/probing move complete try: @@ -107,10 +108,13 @@ class Homing: self.printer = printer self.toolhead = printer.lookup_object('toolhead') self.changed_axes = [] + self.kin_spos = {} def set_axes(self, axes): self.changed_axes = axes def get_axes(self): return self.changed_axes + def get_stepper_trigger_positions(self): + return self.kin_spos def _fill_coord(self, coord): # Fill in any None entries in 'coord' with current toolhead position thcoord = list(self.toolhead.get_position()) @@ -155,12 +159,13 @@ class Homing: # Signal home operation complete self.toolhead.flush_step_generation() kin = self.toolhead.get_kinematics() - for s in kin.get_steppers(): - s.set_tag_position(s.get_commanded_position()) - ret = self.printer.send_event("homing:home_rails_end", self, rails) - if any(ret): + kin_spos = {s.get_name(): s.get_commanded_position() + for s in kin.get_steppers()} + self.kin_spos = dict(kin_spos) + self.printer.send_event("homing:home_rails_end", self, rails) + if kin_spos != self.kin_spos: # Apply any homing offsets - adjustpos = kin.calc_tag_position() + adjustpos = kin.calc_position(self.kin_spos) for axis in homing_axes: movepos[axis] = adjustpos[axis] self.toolhead.set_position(movepos) -- cgit v1.2.3-70-g09d2