@nplayfair/npe_gerber
v0.2.0
Published
Create a PCB image from gerber files
Downloads
3
Readme
npe_gerber
This is still being developed and isn't ready for production! Only tested with gerbers generated by EAGLE.
Requires node version 10 or higher.
Usage
Save a PNG file
const { ImageGenerator } = require('@nplayfair/npe_gerber');
const folderConfig = {
tmpDir: path.join(__dirname, 'tmp'),
imgDir: path.join(__dirname, 'img')
}
const imageConfig = {
resizeWidth: 600,
density: 1000,
compLevel: 1
}
const layerNames = [
'CAMOutputs/DrillFiles/drills.xln',
'CAMOutputs/GerberFiles/copper_top.gbr',
'CAMOutputs/GerberFiles/silkscreen_top.gbr',
'CAMOutputs/GerberFiles/soldermask_top.gbr',
'CAMOutputs/GerberFiles/solderpaste_top.gbr',
'CAMOutputs/GerberFiles/profile.gbr',
];
const gerberArchive = '/path/to/gerber.zip';
const fileProc = new ImageGenerator(folderConfig, imageConfig, layerNames);
fileProc.gerberToImage(gerberArchive)
.then(filename => {
console.log(`Generated image ${filename}`);
})
Return a PNG stream
const { ImageGenerator } = require('@nplayfair/npe_gerber');
const folderConfig = {
tmpDir: path.join(__dirname, 'tmp'),
imgDir: path.join(__dirname, 'img')
}
const imageConfig = {
resizeWidth: 600,
density: 1000,
compLevel: 1
}
const layerNames = [
'CAMOutputs/DrillFiles/drills.xln',
'CAMOutputs/GerberFiles/copper_top.gbr',
'CAMOutputs/GerberFiles/silkscreen_top.gbr',
'CAMOutputs/GerberFiles/soldermask_top.gbr',
'CAMOutputs/GerberFiles/solderpaste_top.gbr',
'CAMOutputs/GerberFiles/profile.gbr',
];
const gerberArchive = '/path/to/gerber.zip';
const fileProc = new ImageGenerator(folderConfig, imageConfig, layerNames);
fileProc.gerberToStream(gerberArchive)
.then(stream => {
// Do something with the stream
})
Layer Names
The constructor must be passed an array of filenames that correspond to the layers in the gerber archives you expect to be uploaded. The example above shows which names are used by EAGLE but other applications may use different filenames.
Image Processing Configuratation
Several values need to be set in the image configuration object. An SVG vector is first created as an intermediate step before being converted to a PNG. These correspond to the parameters passed to sharp for resizing the intermediary SVG and output PNG file. These settings are:
resizeWidth
: Width in pixels of the output image.density
: DPI to create the SVG with. Low values will result in a poor quality output image.compLevel
: PNG compression level.
More information about these settings can be found in the sharp documentation.