npe_gerber/index.js
2021-01-26 23:51:43 +00:00

43 lines
982 B
JavaScript

const fs = require('fs');
const pcbStackup = require('pcb-stackup');
const sharp = require('sharp');
// Configuration
const resizeWidth = 600;
const density = 1000;
const compLevel = 1;
const destfile = './gerber/pcb3.png';
//Sample gerber
const fileNames = [
'./gerber/default/copper_top.gbr',
'./gerber/default/drill_1_16.xln',
'./gerber/default/silkscreen_top.gbr',
'./gerber/default/soldermask_top.gbr',
'./gerber/default/solderpaste_top.gbr',
'./gerber/default/profile.gbr',
]
const layers = fileNames.map(filename => ({
filename,
gerber: fs.createReadStream(filename),
}));
pcbStackup(layers).then(stackup => {
// Create buffer from SVG string
sharp(Buffer.from(stackup.top.svg), { density: density })
.resize({ width: resizeWidth })
.png({
compressionLevel: compLevel })
.toFile(destfile)
.then((info) => {
console.log(info)
})
.catch((e) => {
console.error(e);
})
})
.catch((e) => {
console.error(e);
});