32 lines
882 B
JavaScript
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);
|
|
}); |