gerber plotter
Work in progress.
A printed circuit board Gerber and drill file plotter. Implemented as a Node transform stream that plotter command objects (for example, those output by mcous/gerber-parser) and output PCB image objects.
how to
$ npm install gerber-plotter
var fs = require('fs')
var gerberParser = require('gerber-parser')
var gerberPlotter = require('gerber-plotter')
var parser = gerberParser()
var plotter = gerberPlotter()
plotter.on('warning', function(w) {
console.warn(`plotter warning at line ${w.line}: ${w.message}`)
})
fs.createReadStream('/path/to/gerber/file.gbr', {encoding: 'utf8'})
.pipe(parser)
.pipe(plotter)
.on('data', function(obj) {
console.log(obj)
})
To run in this module in the browser, it should be bundled with a tool like browserify or webpack.
api
See API.md
developing and contributing
Tests are written in Mocha and run in Node, PhantomJS, and a variety of browsers with Zuul and Open Sauce. All PRs should be accompanied by unit tests, with ideally one feature / bugfix per PR. Code linting happens with ESLint automatically post-test and pre-commit.
Code is deployed on tags via TravisCI and code coverage is tracked with Coveralls.
build scripts
$ npm run lint
- lints code$ npm run test
- runs Node unit tests$ npm run test-watch
- runs unit tests and re-runs on changes$ npm run browser-test
- runs tests in a local browser$ npm run browser-test-phantom
- runs tests in PhantomJS$ npm run browser-test-sauce
- runs tests in Sauce Labs on multiple browsers
- Sauce Labs account required
$ npm run ci
- Script for CI server to run
- Runs
npm test
and sends coverage report to Coveralls - If you want to run this locally, you'll need to set some environment variables