npm install --save gcode-parser
var fs = require('fs'); var parser = require('gcode-parser'); // parseLine parser.parseLine('G0 X0 Y0'); // => { line: 'G0 X0 Y0', words: [ [ 'G', 0 ], [ 'X', 0 ], [ 'Y', 0 ] ] } // parseLine (flatten mode) parser.parseLine('G0 X0 Y0', { flatten: true }); // => { line: 'G0 X0 Y0', words: [ 'G0', 'X0', 'Y0' ] } // parseFile var file = 'example.nc'; parser.parseFile(file, function(err, results) { console.log(results); }); // Synchronous version of parseFile. results = parser.parseFileSync(file); // parseStream var stream = fs.createReadStream(file, { encoding: 'utf8' }); parser.parseStream(stream, function(err, results) { console.log(results); }); // parseString var str = fs.readFileSync(file, 'utf8'); parser.parseString(str, function(err, results) { console.log(results); }); // Synchronous version of parseString. results = parser.parseStringSync(file);var _ = require('lodash'); var parser = require('gcode-parser'); parser.parseFile('example.nc', function(err, results) { if (err) { console.error(err); return; } // Compose G-code var list = _(results) .map('words') .map(function(words) { return _.map(words, function(word) { return word[0] + word[1]; }).join(' '); }) .value(); console.log(list); }) .on('data', function(data) { console.log(data); }) .on('end', function(results) { console.log(results); })Type: Number Default: 1000
The batch size.
Type: Boolean Default: false
True to flatten the array, false otherwise.
parser.parseLine('G0 X0 Y0', { flatten: true });Type: Boolean Default: false
True to not parse line, false otherwise.
parser.parseFile('/path/to/file', { noParseLine: true }, function(err, results) { });https://github.com/cncjs/gcode-interpreter
https://github.com/cncjs/gcode-toolpath
Check out the source code at https://github.com/cncjs/cncjs/blob/master/src/web/widgets/Visualizer/GCodeVisualizer.js
