aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--klippy/extras/bed_mesh.py19
1 files changed, 10 insertions, 9 deletions
diff --git a/klippy/extras/bed_mesh.py b/klippy/extras/bed_mesh.py
index 98bb6920..3f0498ff 100644
--- a/klippy/extras/bed_mesh.py
+++ b/klippy/extras/bed_mesh.py
@@ -186,7 +186,8 @@ class BedMesh:
self.last_position[2] -= self.fade_target
else:
# return current position minus the current z-adjustment
- x, y, z, e = self.toolhead.get_position()
+ cur_pos = self.toolhead.get_position()
+ x, y, z = cur_pos[:3]
max_adj = self.z_mesh.calc_z(x, y)
factor = 1.
z_adj = max_adj - self.fade_target
@@ -202,19 +203,19 @@ class BedMesh:
(self.fade_dist - z_adj))
factor = constrain(factor, 0., 1.)
final_z_adj = factor * z_adj + self.fade_target
- self.last_position[:] = [x, y, z - final_z_adj, e]
+ self.last_position[:] = [x, y, z - final_z_adj] + cur_pos[3:]
return list(self.last_position)
def move(self, newpos, speed):
factor = self.get_z_factor(newpos[2])
if self.z_mesh is None or not factor:
# No mesh calibrated, or mesh leveling phased out.
- x, y, z, e = newpos
+ x, y, z = newpos[:3]
if self.log_fade_complete:
self.log_fade_complete = False
logging.info(
"bed_mesh fade complete: Current Z: %.4f fade_target: %.4f "
% (z, self.fade_target))
- self.toolhead.move([x, y, z + self.fade_target, e], speed)
+ self.toolhead.move([x, y, z + self.fade_target] + newpos[3:], speed)
else:
self.splitter.build_move(self.last_position, newpos, factor)
while not self.splitter.traverse_complete:
@@ -1273,7 +1274,7 @@ class MoveSplitter:
self.z_offset = self._calc_z_offset(prev_pos)
self.traverse_complete = False
self.distance_checked = 0.
- axes_d = [self.next_pos[i] - self.prev_pos[i] for i in range(4)]
+ axes_d = [np - pp for np, pp in zip(self.next_pos, self.prev_pos)]
self.total_move_length = math.sqrt(sum([d*d for d in axes_d[:3]]))
self.axis_move = [not isclose(d, 0., abs_tol=1e-10) for d in axes_d]
def _calc_z_offset(self, pos):
@@ -1286,7 +1287,7 @@ class MoveSplitter:
raise self.gcode.error(
"bed_mesh: Slice distance is negative "
"or greater than entire move length")
- for i in range(4):
+ for i in range(len(self.next_pos)):
if self.axis_move[i]:
self.current_pos[i] = lerp(
t, self.prev_pos[i], self.next_pos[i])
@@ -1301,9 +1302,9 @@ class MoveSplitter:
next_z = self._calc_z_offset(self.current_pos)
if abs(next_z - self.z_offset) >= self.split_delta_z:
self.z_offset = next_z
- return self.current_pos[0], self.current_pos[1], \
- self.current_pos[2] + self.z_offset, \
- self.current_pos[3]
+ newpos = list(self.current_pos)
+ newpos[2] += self.z_offset
+ return newpos
# end of move reached
self.current_pos[:] = self.next_pos
self.z_offset = self._calc_z_offset(self.current_pos)