node-gerber-parser
Version:
Streaming Gerber/drill file parser
66 lines (47 loc) • 2 kB
Markdown
file parser
[![latest][gerber-parser-latest-badge]][npm]
[![next][gerber-parser-next-badge]][npm-next]
[![david][gerber-parser-david-badge]][david]
A printed circuit board Gerber and drill file parser. Implemented as a Node transform stream that takes a Gerber text stream and emits objects to be consumed by some sort of PCB plotter.
Part of the [tracespace][] collection of PCB visualization tools.
[ ]: https://github.com/tracespace/tracespace
[ ]: https://www.npmjs.com/package/gerber-parser
[ ]: https://www.npmjs.com/package/gerber-parser/v/next
[ ]: https://david-dm.org/tracespace/tracespace?path=packages/gerber-parser
[ ]: https://flat.badgen.net/npm/v/gerber-parser
[ ]: https://flat.badgen.net/npm/v/gerber-parser/next
[ ]: https://flat.badgen.net/david/dep/tracespace/tracespace/packages/gerber-parser
```shell
npm install --save gerber-parser
yarn add gerber-parser
```
Or, use a script tag:
```html
<script src="https://unpkg.com/gerber-parser@^4.0.0/dist/gerber-parser.min.js"></script>
<script>
// global variable gerberParser now available
var parser = gerberParser()
</script>
```
```js
var fs = require('fs')
var gerberParser = require('node-gerber-parser')
var parser = gerberParser()
parser.on('warning', function(w) {
console.warn('warning at line ' + w.line + ': ' + w.message)
})
fs.createReadStream('/path/to/gerber/file.gbr')
.pipe(parser)
.on('data', function(obj) {
console.log(JSON.stringify(obj))
})
```
To run this module in a browser, it should be bundled with a tool like [browserify][] or [webpack][]. If you are using the script tag installation method instead, there will be a global variable `gerberParser` available after you have included `gerber-parser.min.js`.
[ ]: http://browserify.org/
[ ]: https://webpack.js.org/
See [API.md](./API.md)
> Streaming Gerber/drill