From fd5b2482967686d29dce783df9814b5979c572d0 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 5 Nov 2021 21:04:37 +0100 Subject: [PATCH] Don't register a new layer if not extruding a line We do retracts/unretracts on different heights sometimes, for instance after a pause. This would get seen as a new layer. It's quite safe to say that purely retracts and unretracts on a different height do not constitute a layer in a normal g-code file. There would be nothing to draw anyway. Contributes to issue CURA-8522. Fixes #10282. --- plugins/GCodeReader/FlavorParser.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/GCodeReader/FlavorParser.py b/plugins/GCodeReader/FlavorParser.py index 48a81324f62..bb99aa59ecd 100644 --- a/plugins/GCodeReader/FlavorParser.py +++ b/plugins/GCodeReader/FlavorParser.py @@ -198,7 +198,7 @@ def _gCode0(self, position: Position, params: PositionOptional, path: List[List[ # Only when extruding we can determine the latest known "layer height" which is the difference in height between extrusions # Also, 1.5 is a heuristic for any priming or whatsoever, we skip those. - if z > self._previous_z and (z - self._previous_z < 1.5): + if z > self._previous_z and (z - self._previous_z < 1.5) and (params.x is not None or params.y is not None): self._current_layer_thickness = z - self._previous_z # allow a tiny overlap self._previous_z = z elif self._previous_extrusion_value > e[self._extruder_number]: