diff --git a/octoprint/printer.py b/octoprint/printer.py index 6f18cad..5cee964 100644 --- a/octoprint/printer.py +++ b/octoprint/printer.py @@ -59,7 +59,6 @@ class Printer(): self._currentZ = None - self._peakZ = -1 self._progress = None self._printTime = None self._printTimeLeft = None @@ -184,7 +183,6 @@ class Printer(): return self._setCurrentZ(None) - self._peakZ = -1 self._comm.startPrint() def togglePausePrint(self): @@ -385,12 +383,11 @@ class Printer(): Callback method for the comm object, called upon change of the z-layer. """ oldZ = self._currentZ - # only do this if we hit a new Z peak level. Some slicers do a Z-lift when retracting / moving without printing - # and some do anti-backlash up-then-down movement when advancing layers - if newZ > self._peakZ: - self._peakZ = newZ + if newZ != oldZ: + # we have to react to all z-changes, even those that might "go backward" due to a slicer's retraction or + # anti-backlash-routines. Event subscribes should individually take care to filter out "wrong" z-changes eventManager().fire("ZChange", newZ) - + self._setCurrentZ(newZ) def mcSdStateChange(self, sdReady):