pcbview 1.19.0 - every major exchange format
pcbview 1.19.0 — every major exchange format
pcbview now opens boards in six formats: KiCad, Gerber/Excellon, and — all new in this release — ODB++, IPC-2581, Altium .PcbDoc, and IPC-D-356 netlists. Every new importer was cross-validated against independent references on real boards (copper areas within 0.5%, net tables matching exactly).
New importers
ODB++ (.tgz, .tar.gz, .zip, or job folder)
- Full product-model import: matrix, features (all standard pad symbols plus user-defined symbols), profile, drills with plating, and real per-feature nets from eda/data — net highlighting and routed lengths work immediately.
- Member files compressed as
.gzor.Z(Unix compress) are handled transparently. - Negative layers render as what they are: a plane sheet over the profile with the layer's features as clearances.
- Panel jobs: step-repeat blocks expand into the full panelization. The board step opens by default; set
PCBVIEW_ODB_STEP=<step>to view the panel.
IPC-2581 (.xml, .cvg)
- Dictionary primitives, per-Set nets, contour planes, span-referenced drill holes — and the real stackup: IPC-2581 is the only format pcbview reads that ships actual layer thicknesses, so the board build-up is exact instead of derived.
Altium Designer (.PcbDoc)
- Reads the native binary format directly (record layouts adapted from KiCad's GPL importer; the OLE container via Microsoft's compoundfilereader). Tracks, arcs, vias, pads (all shapes incl. roundrect), regions, polygon pours, blind/buried vias, real stackup thicknesses, and nets.
- Internal plane layers render as true negative layers — a net-tied copper sheet with pullback and via clearances (KiCad's own import draws plane primitives as positive copper; pcbview shows the plane itself).
- Soldermask is derived from pads and vias with tenting flags honoured.
- Validated against KiCad's importer on real boards: identical net tables, track counts, and routed lengths to three decimal places.
IPC-D-356 netlists (.ipc, .356, .d356)
- A netlist riding with a netless Gerber package supplies real net names as test points; Infer nets then binds those names to the copper — and reports opens (one net across unconnected copper, the pieces named
NET#2,NET#3) and shorts (two nets in one copper group) as findings.
Text
- Boards imported from Altium and ODB++ now keep their silkscreen lettering: designators, labels, and titles render through the Newstroke engine. Altium designator/comment visibility flags are honoured, so hidden part numbers stay hidden.
Fixed / improved
- Gerber X2: plane-connectivity readout now distinguishes "joined through pour/plane copper" from "no track route".
- Primitives on unmapped Altium layers are reported (one summary line) instead of silently dropped.
- The CI test suite grew from 6 to 14 test groups and now imports real KiCad demo boards in gerber, ODB++, and IPC-2581 form on every push.
Full commit log: v1.18.1...v1.19.0