Skip to content

cncjs/gcode-parser

Repository files navigation

gcode-parser codecov

NPM

Install

npm install --save gcode-parser

Usage

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);

Advanced Usage

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); })

Options

batchSize

Type: Number Default: 1000

The batch size.

flatten

Type: Boolean Default: false

True to flatten the array, false otherwise.

parser.parseLine('G0 X0 Y0'); // => { line: 'G0 X0 Y0', words: [ [ 'G', 0 ], [ 'X', 0 ], [ 'Y', 0 ] ] } parser.parseLine('G0 X0 Y0', { flatten: true }); // => { line: 'G0 X0 Y0', words: [ 'G0', 'X0', 'Y0' ] }

lineMode

Type: String
Default: 'original'

The lineMode option specifies how the parsed line should be formatted. The following values are supported:

  • 'original': Retains the line exactly as is, including comments and whitespace. (This is the default when lineMode is not specified.)
  • 'stripped': Removes comments, trims leading and trailing whitespace (spaces and tabs), but keeps the inner whitespace between code elements.
  • 'compact': Removes both comments and all whitespace characters.

Example usage:

parser.parseLine('G0 X0 Y0 ; comment', { lineMode: 'original' }); // => { line: 'G0 X0 Y0 ; comment', words: [ [ 'G', 0 ], [ 'X', 0 ], [ 'Y', 0 ] ] } parser.parseLine('G0 X0 Y0 ; comment', { lineMode: 'stripped' }); // => { line: 'G0 X0 Y0', words: [ [ 'G', 0 ], [ 'X', 0 ], [ 'Y', 0 ] ] } parser.parseLine('G0 X0 Y0 ; comment', { lineMode: 'compact' }); // => { line: 'G0X0Y0', words: [ [ 'G', 0 ], [ 'X', 0 ], [ 'Y', 0 ] ] }

G-code Interpreter

https://github.com/cncjs/gcode-interpreter

G-code Toolpath

https://github.com/cncjs/gcode-toolpath

G-code Toolpath Visualizer

Check out the source code at https://github.com/cncjs/cncjs/blob/master/src/web/widgets/Visualizer/GCodeVisualizer.js

License

MIT

About

G-code Parser

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published