npe_gerber/index.js
2021-01-26 21:47:10 +00:00

32 lines
882 B
JavaScript

const fs = require('fs');
const pcbStackup = require('pcb-stackup');
async function writeSVG(filepath, data) {
try {
await fs.promises.writeFile(filepath, data, { flag: 'w' });
} catch (e) {
console.error(`Error writing file: ${e.message}`);
}
}
const fileNames = [
'./gerber/default/copper_bottom.gbr',
'./gerber/default/copper_top.gbr',
'./gerber/default/drill_1_16.xln',
'./gerber/default/silkscreen_bottom.gbr',
'./gerber/default/silkscreen_top.gbr',
'./gerber/default/soldermask_bottom.gbr',
'./gerber/default/soldermask_top.gbr',
'./gerber/default/solderpaste_top.gbr',
'./gerber/default/solderpaste_bottom.gbr',
'./gerber/default/profile.gbr',
]
const layers = fileNames.map(filename => ({
filename,
gerber: fs.createReadStream(filename),
}));
pcbStackup(layers).then(stackup => {
writeSVG('./gerber/pcb.svg', stackup.top.svg);
});