diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2021-05-01 00:27:43 -0400 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2021-05-29 21:54:34 -0400 |
commit | c0d860487a70a05d44973d53a981e935ce7b3ad0 (patch) | |
tree | d8ab7ec6e982882fe6de467c949773d8993908d1 /klippy/extras | |
parent | 77bc5e438851c8a8a8f160fd112e43f460a54241 (diff) | |
download | kutter-c0d860487a70a05d44973d53a981e935ce7b3ad0.tar.gz kutter-c0d860487a70a05d44973d53a981e935ce7b3ad0.tar.xz kutter-c0d860487a70a05d44973d53a981e935ce7b3ad0.zip |
stepper: Remove set_tag_position() code
Have callers store the stepper positions in a dict.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'klippy/extras')
-rw-r--r-- | klippy/extras/delta_calibrate.py | 6 | ||||
-rw-r--r-- | klippy/extras/endstop_phase.py | 17 | ||||
-rw-r--r-- | klippy/extras/gcode_move.py | 10 | ||||
-rw-r--r-- | klippy/extras/homing.py | 25 | ||||
-rw-r--r-- | klippy/extras/manual_probe.py | 6 |
5 files changed, 33 insertions, 31 deletions
diff --git a/klippy/extras/delta_calibrate.py b/klippy/extras/delta_calibrate.py index a2e0d361..4301c89a 100644 --- a/klippy/extras/delta_calibrate.py +++ b/klippy/extras/delta_calibrate.py @@ -233,9 +233,9 @@ class DeltaCalibrate: toolhead = self.printer.lookup_object('toolhead') toolhead.flush_step_generation() kin = toolhead.get_kinematics() - for s in kin.get_steppers(): - s.set_tag_position(s.get_commanded_position()) - kin_pos = kin.calc_tag_position() + kin_spos = {s.get_name(): s.get_commanded_position() + for s in kin.get_steppers()} + kin_pos = kin.calc_position(kin_spos) # Convert location to a stable position delta_params = kin.get_calibration() stable_pos = tuple(delta_params.calc_stable_position(kin_pos)) diff --git a/klippy/extras/endstop_phase.py b/klippy/extras/endstop_phase.py index 8e70be74..a2b2b548 100644 --- a/klippy/extras/endstop_phase.py +++ b/klippy/extras/endstop_phase.py @@ -102,17 +102,16 @@ class EndstopPhase: self.name, phase, self.endstop_phase)) return delta * self.step_dist def handle_home_rails_end(self, homing_state, rails): + kin_spos = homing_state.get_stepper_trigger_positions() + orig_pos = kin_spos.get(self.name) + if orig_pos is None: + return for rail in rails: stepper = rail.get_steppers()[0] - if stepper.get_name() != self.name: - continue - orig_pos = rail.get_tag_position() - offset = self.get_homed_offset(stepper) - pos = self.align_endstop(orig_pos) + offset - if pos == orig_pos: - return False - rail.set_tag_position(pos) - return True + if stepper.get_name() == self.name: + offset = self.get_homed_offset(stepper) + kin_spos[self.name] = self.align_endstop(orig_pos) + offset + return class EndstopPhases: def __init__(self, config): diff --git a/klippy/extras/gcode_move.py b/klippy/extras/gcode_move.py index 306b4b35..77087162 100644 --- a/klippy/extras/gcode_move.py +++ b/klippy/extras/gcode_move.py @@ -247,12 +247,10 @@ class GCodeMove: steppers = kin.get_steppers() mcu_pos = " ".join(["%s:%d" % (s.get_name(), s.get_mcu_position()) for s in steppers]) - for s in steppers: - s.set_tag_position(s.get_commanded_position()) - stepper_pos = " ".join(["%s:%.6f" % (s.get_name(), s.get_tag_position()) - for s in steppers]) - kin_pos = " ".join(["%s:%.6f" % (a, v) - for a, v in zip("XYZ", kin.calc_tag_position())]) + cinfo = [(s.get_name(), s.get_commanded_position()) for s in steppers] + stepper_pos = " ".join(["%s:%.6f" % (a, v) for a, v in cinfo]) + kinfo = zip("XYZ", kin.calc_position(dict(cinfo))) + kin_pos = " ".join(["%s:%.6f" % (a, v) for a, v in kinfo]) toolhead_pos = " ".join(["%s:%.6f" % (a, v) for a, v in zip( "XYZE", toolhead.get_position())]) gcode_pos = " ".join(["%s:%.6f" % (a, v) 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) diff --git a/klippy/extras/manual_probe.py b/klippy/extras/manual_probe.py index 69ce79e9..83c9aa2f 100644 --- a/klippy/extras/manual_probe.py +++ b/klippy/extras/manual_probe.py @@ -82,9 +82,9 @@ class ManualProbeHelper: return self.last_kinematics_pos 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_pos = kin.calc_tag_position() + kin_spos = {s.get_name(): s.get_commanded_position() + for s in kin.get_steppers()} + kin_pos = kin.calc_position(kin_spos) self.last_toolhead_pos = toolhead_pos self.last_kinematics_pos = kin_pos return kin_pos |