--- jupyter: description: 'Printed circuit boards in planex2d: px.FromKiCad reads KiCad boards, and boards from Altium, Eagle, Cadence Allegro, PADS, EasyEDA, CADSTAR, Fabmaster, P-CAD, gEDA and SolidWorks PCB through KiCad 10''s kicad-cli, as one shape per layer with the copper named by net, or as the whole board in 3D.' --- # KiCad, Altium, Eagle and more
A KiCad board read with its copper layersKiCad An Altium board read with its copper layersAltium An EasyEDA board read with its copper layersEasyEDA
`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

- [KiCad](kicad.md) - [Altium](altium.md) - [Eagle](eagle.md) - [EasyEDA](easyeda.md) - [PADS](pads.md) - [Other formats](other-formats.md)
KiCad
KiCadA KiCad demo board read layer by layer, its copper by net, a clearance check, the board in 3D and written back.
Altium
AltiumA four-layer Altium Designer board with a ground plane and a split power plane, and the gaps of the split.
Eagle
EagleSparkFun's Pro Micro from its Eagle files, its pours filled by KiCad, its pins checked against the DIP grid.
EasyEDA
EasyEDAThe control board of an open-source scanning tunneling microscope from an EasyEDA Professional project.
PADS
PADSA PADS ASCII board converted by KiCad, its copper by net, and its pin grid checked against the Raspberry Pi Pico W.
Other formats
Other formatsBoards from SolidWorks PCB, Cadence Allegro, CADSTAR, Fabmaster, P-CAD, gEDA and Lepton EDA, and what KiCad takes over from each.