via and double-sided pad

This commit is contained in:
Bane Stojkovic
2026-11-12 10:48:19 +01:00
parent d166c58161
commit 3049d4910c
11 changed files with 465 additions and 16 deletions
@@ -57,6 +57,8 @@ projects; the open questions below remain.
| Bottom-side text is mirrored centrally in the Gerber output | Parts draw their labels readable from the top, which is backwards on the bottom silkscreen once the board is turned over. While `GerberExporter.drawComponent` draws a bottom-side part, `GerberG2DWrapper.setMirrorText` mirrors each string about the centre of its layout box, so no component changes and the canvas keeps readable labels. |
| A part without a side placed in the mirror is placed unchanged | A jumper, eyelet or wire has no side to set, so it is placed at the reflected point like any other part rather than refused. |
| A `SolderPad` opens the solder mask on its own side | It used to write `SolderMaskBot` whatever its layer, which was wrong for top-layer pads. It now writes `SolderMaskTop` for a pad on `_2`. |
| A `SolderPad` with a plated through hole is on both layers, and its Layer is ignored | A plated hole has a copper ring on each side joined by the barrel. The pad reports layer id `0`, which connects to copper on every layer, draws as both sides, and writes both copper and both mask layers. Projects where such a pad overlaps a trace on its other side now net differently; PTH is not the default and arrived with Gerber export, so few projects are affected. |
| `Via` is its own component, not a `SolderPad` option | It takes no lead and no node name, is tented (no mask opening), and has its own Gerber functions, `ViaPad` and `ViaDrill`. Like the PTH pad it reports layer id `0`. It has no Board Side, like `DrillHole`. |
## 3. Design