From 5653c8c9ae5b2bf7e763cea9ae589f222b9b04e6 Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Mon, 24 Feb 2020 14:51:23 +0100 Subject: [PATCH 1/3] Avoid showing infinitely wide lines in gcode lines less than zero wide are displayed as very wide; prevent negative extrusion lines from being generated in the first place CURA-7066 --- plugins/GCodeReader/FlavorParser.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/plugins/GCodeReader/FlavorParser.py b/plugins/GCodeReader/FlavorParser.py index 7bb9ad0e4a..2a61859b4e 100644 --- a/plugins/GCodeReader/FlavorParser.py +++ b/plugins/GCodeReader/FlavorParser.py @@ -169,6 +169,9 @@ class FlavorParser: # A threshold is set to avoid weird paths in the GCode if line_width > 1.2: return 0.35 + # Prevent showing infinitely wide lines + if line_width < 0.0: + return 0.0 return line_width def _gCode0(self, position: Position, params: PositionOptional, path: List[List[Union[float, int]]]) -> Position: From efafc37e4905eacb78c1caad95e0a283754f0635 Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Mon, 24 Feb 2020 14:52:03 +0100 Subject: [PATCH 2/3] fix E-values after G92 when parsing gcode CURA-7066 --- 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 2a61859b4e..fce92a14b1 100644 --- a/plugins/GCodeReader/FlavorParser.py +++ b/plugins/GCodeReader/FlavorParser.py @@ -238,7 +238,7 @@ class FlavorParser: def _gCode92(self, position: Position, params: PositionOptional, path: List[List[Union[float, int]]]) -> Position: if params.e is not None: # Sometimes a G92 E0 is introduced in the middle of the GCode so we need to keep those offsets for calculate the line_width - self._extrusion_length_offset[self._extruder_number] += position.e[self._extruder_number] - params.e + self._extrusion_length_offset[self._extruder_number] = position.e[self._extruder_number] - params.e position.e[self._extruder_number] = params.e self._previous_extrusion_value = params.e else: From 9bcae15d3935e513ab4d99fcabb45a3836420971 Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Mon, 24 Feb 2020 14:52:43 +0100 Subject: [PATCH 3/3] lil: optimize parsing gcode arg letter CURA-7066 --- plugins/GCodeReader/FlavorParser.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/GCodeReader/FlavorParser.py b/plugins/GCodeReader/FlavorParser.py index fce92a14b1..7b19fdb160 100644 --- a/plugins/GCodeReader/FlavorParser.py +++ b/plugins/GCodeReader/FlavorParser.py @@ -264,13 +264,13 @@ class FlavorParser: try: if item[0] == "X": x = float(item[1:]) - if item[0] == "Y": + elif item[0] == "Y": y = float(item[1:]) - if item[0] == "Z": + elif item[0] == "Z": z = float(item[1:]) - if item[0] == "F": + elif item[0] == "F": f = float(item[1:]) / 60 - if item[0] == "E": + elif item[0] == "E": e = float(item[1:]) except ValueError: # Improperly formatted g-code: Coordinates are not floats. continue # Skip the command then.