Browse Source

Ignore g-code lines with syntax errors

Discovered while working on CURA-7145.
Ghostkeeper 5 years ago
parent
commit
341e149d0e
1 changed files with 14 additions and 11 deletions
  1. 14 11
      plugins/GCodeReader/FlavorParser.py

+ 14 - 11
plugins/GCodeReader/FlavorParser.py

@@ -1,4 +1,4 @@
-# Copyright (c) 2018 Ultimaker B.V.
+# Copyright (c) 2020 Ultimaker B.V.
 # Cura is released under the terms of the LGPLv3 or higher.
 
 import math
@@ -258,16 +258,19 @@ class FlavorParser:
                     continue
                 if item.startswith(";"):
                     continue
-                if item[0] == "X":
-                    x = float(item[1:])
-                if item[0] == "Y":
-                    y = float(item[1:])
-                if item[0] == "Z":
-                    z = float(item[1:])
-                if item[0] == "F":
-                    f = float(item[1:]) / 60
-                if item[0] == "E":
-                    e = float(item[1:])
+                try:
+                    if item[0] == "X":
+                        x = float(item[1:])
+                    if item[0] == "Y":
+                        y = float(item[1:])
+                    if item[0] == "Z":
+                        z = float(item[1:])
+                    if item[0] == "F":
+                        f = float(item[1:]) / 60
+                    if item[0] == "E":
+                        e = float(item[1:])
+                except ValueError:  # Improperly formatted g-code: Coordinates are not floats.
+                    continue  # Skip the command then.
             params = PositionOptional(x, y, z, f, e)
             return func(position, params, path)
         return position