diff --git a/src/octoprint/static/gcodeviewer/js/Worker.js b/src/octoprint/static/gcodeviewer/js/Worker.js index f96fa706..6afb77d7 100644 --- a/src/octoprint/static/gcodeviewer/js/Worker.js +++ b/src/octoprint/static/gcodeviewer/js/Worker.js @@ -325,6 +325,11 @@ var doParse = function () { extrude = false; line = line.split(/[\(;]/)[0]; + if (!line || line.trim() === "") { + // empty line, skip entirely + continue; + } + var addToModel = false; var move = false; diff --git a/src/octoprint/static/gcodeviewer/js/gCodeReader.js b/src/octoprint/static/gcodeviewer/js/gCodeReader.js index abc56727..6f8a9e49 100644 --- a/src/octoprint/static/gcodeviewer/js/gCodeReader.js +++ b/src/octoprint/static/gcodeviewer/js/gCodeReader.js @@ -44,15 +44,12 @@ GCODE.gCodeReader = (function(){ var prepareGCode = function(totalSize){ if(!lines)return; gcode = []; - var i, tmp, byteCount; + var i, byteCount; byteCount = 0; for(i=0;i 1 || tmp === -1) { - gcode.push({line: lines[i], percentage: byteCount * 100 / totalSize}); - } + byteCount += lines[i].length + 1; // line length + line ending + gcode.push({line: lines[i], percentage: byteCount * 100 / totalSize}); } lines = []; }; @@ -146,7 +143,7 @@ GCODE.gCodeReader = (function(){ this.clear(); var totalSize = reader.target.result.length; - lines = reader.target.result.split(/[\r\n]+/g); + lines = reader.target.result.split(/[\r\n]/g); reader.target.result = null; prepareGCode(totalSize);