KiCad writes all files in human readable ASCII. This makes manipulation by hand and scripting very easy. The following is a listing on what the different files are used for.
.kicad_wks file formats
specified in this PDF (click on "download file"). The other file format documentation is Work In Progress.
.pro: project file. Holds parameters that apply to the entire project (schematic and PCB layout).
-save.pro: … backup of the project file.
.sch: schematic file.
.lib: schematic symbols library file.
-cache.lib: … a local copy of all the symbols used in the corresponding schematic, so that when the folder containing a KiCad project is copied to a different PC, the schematic can still be opened and printed and will still look the same as the original draughtsperson intended - even if that other PC does not have those symbols in its main libraries (or has symbols that coincidentally have the same name but are completely different).
-rescue.lib: … copies of conflicting/missing schematic symbols.
.mod: legacy footprint module file (Obsolete, can only be read).
.pretty: footprint library folders. The folder itself is the library.
.kicad_mod: footprint files, containing one footprint description each.
.000: * temporary file.
.bak: backup of schematic file.
.brd: legacy PCB layout file.
.kicad_pcb: the new PCB layout file.
-save.kicad_pcb: … backup of the PCB Layout file.
.cmp: deprecated parts-to-module assignments file. Footprint informations are now saved in the .sch files.
.csv: commonly used when exporting BOM file.
.dcm: holds descriptions, aliases and keywords for library symbols.
.bck: backup file for the symbol editor of the
.net: *: netlist in "Pcbnew"; format … can be regenerated by viewing the schematic file and clicking the "Netlist generation" button.
fp-lib-table: Footprint library list (footprint libraries table): list of footprint libraries (various formats) which are loaded by the board or the footprint editor or CvPcb.
sym-lib-table: Symbol library list (symbol libraries table): list of symbol libraries which are loaded by the schematic editor.
.kicad_wks: The page layout description files, for people who want a worksheet with a custom look.
.rpt: report file, for documentation.
.gbr: Gerber output files for manufacturing.
.drl: Gerber drill file for manufacturing.
.pos: position files (ASCII format), for automatic insertion machines.
.wrl: VRML 3D model used in the 3D viewer to represent parts.
.stp: STEP 3D model used for integration with MCAD software packages. KiCad supports STEP file integration and can export board and component models into an integrated STEP file.
KiCad uses a few temporary file formats internally. The files it creates with these extensions (marked above with "*" ) can be excluded from version control software since they can be automatically regenerated from the source files when necessary.
KiCad writes and reads some file formats dedicated to certain operation in collaboration with tools external to KiCad.
.idf: IDFv3 files used to generate lightweight 3D model exports for the mechanical CAD designer of the board and parts.
.wings: 3D model editable by Wings3D, used to generate the
.svg: plot files (svg format), for documentation.
.ps: plot files (postscript), for documentation.
.dxf: plot files (dxf format), for documentation.
.plt: plot files (HPGL format), for documentation.
.cad: GenCAD used for circuit testing by the assembly house.
.d356: IPC-D-356 netlist that provides information about test points and connections. Generated in Pcbnew from
Fabrication Outputs >
EDIF (Electronic Design Interchange Format) netlist format. Wikipedia
.png: The W3C recommended portable network graphics format is a
good format for posting a section of a schematic (or a section of a PCB layout) to a web page, so people can see it immediately
in a web browser without manually "downloading" or "installing" anything.
.adoc: All those
.html files are automatically generated from source files in AsciiDoc format.
The "KiCad Documentation Status Report"
persuaded us to switch from
.odt format to
.adoc on 2015-02-09.
A lightweight markup language is easy to update with a wider variety of editing tools, and then much easier for our translators to see what changed and make corresponding improvements in other languages.