KiCad, Altium, Eagle and more

px.FromKiCad reads a printed circuit board as planex2d shapes, one per layer. The copper layers come with their faces named by net and their drill holes cut out, the board outline becomes a face, and every other layer holds what KiCad prints there. Given a stackup, FromKiCad builds the whole board in 3D instead. The faces can then be measured, combined with other geometry, meshed by netgen or exported like any other planex2d shape.

planex2d reads KiCad’s own format, .kicad_pcb, itself. A board from another program is first converted by kicad-cli pcb import, the command line tool of KiCad 10 or later, and then read in the same way, so every board goes through the same call and comes back in the same form. FromKiCad finds the tool through the environment variable PLANEX_KICAD_CLI, on the PATH, or where KiCad installs it on macOS and Windows. Without it, a board from another program raises an error that names the missing tool. Reading KiCad boards needs no KiCad installation. kicad-cli pcb import has no option for mapping layers, so each importer assigns the layers of the other program to KiCad’s layers by itself.

KiCad’s importers write the copper zones of a converted board without their fill. FromKiCad therefore fills every zone of the converted copy with kicad-cli pcb drc --refill-zones before reading it, with the zone settings and clearances as KiCad imported them. The copper pours of a converted board are KiCad’s fills, which can differ slightly from those the other program computed, for example where its clearance rules have no exact equivalent in KiCad. Items on layers that KiCad could not map are taken out of the copy first, since KiCad does not load a board with them, and the board file itself is never changed. If the fill fails, FromKiCad warns with kicad-cli’s message. A KiCad board is read as it was saved, and zones left unfilled there produce a warning.

Program

Board file

KiCad 9 and later

.kicad_pcb

Altium Designer, Altium CircuitStudio, Altium CircuitMaker

.PcbDoc, .CSPcbDoc, .CMPcbDoc

SolidWorks PCB

.SWPcbDoc

Eagle 6 and later

.brd (XML)

Cadence Allegro

.brd (binary)

PADS

.asc

EasyEDA Standard

.json, .zip

EasyEDA Professional

.epro, .zip

CADSTAR

.cpa

Fabmaster

.txt, .fab

P-CAD 200x

.pcb (ASCII)

gEDA PCB, Lepton EDA

.pcb

In this section