+++
title = "File Formats"
summary = "List of file formats used by KiCad"
aliases = [ "/display/KICAD/File+Formats" ]
[menu.main]
    parent = "Help"
    name   = "File Formats"
    weight = 50
+++


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.

== Native file formats

The `.sch`, `.lib`, `.brd`, `.kicad_pcb` and `.kicad_wks` file formats
are
link:/help/legacy_file_format_documentation.pdf[specified in this legacy PDF documentation] . Newer file format documentation is a _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`: legacy schematic file.

* `.kicad_sch`: the new schematic layout 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 `.dcm` file.

* `.net`: ^*^: netlist in "Pcbnew"; format ... can be regenerated by viewing the schematic file and clicking the "Netlist generation" button.

* `fp-info-cache`: ^*^: Footprint info cache: cache of information (description, datasheet URL, etc.) for all footprints used by the board.

* `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.

* `drc-rules`: S-expression file containing design rule checking constraints. Introduced in v6.

* `.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.

* `.step` or `.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.

== Dedicated file formats

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 link:http://www.wings3d.com/[Wings3D], used to generate the `.wrl` files.

* `.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.

* `.dsn`: SPECCTRA DSN file for autorouters (like link:http://sourceforge.net/projects/qautorouter/develop[QAutorouter],
link:http://www.freerouting.net/[FreeRouting]).

* `.ses`: SPECCTRA session files from autorouters (like link:http://sourceforge.net/projects/qautorouter/develop[QAutorouter],
link:http://www.freerouting.net/[FreeRouting]).

* `.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 `File` > `Fabrication Outputs` > `IPC-D-356`

== Other formats used by the KiCad project

* `.pdf`: All the help documentation intended to be read by KiCad users is in `.pdf` format.

* EDIF (_Electronic Design Interchange Format_) netlist format.
link:https://en.wikipedia.org/wiki/EDIF[Wikipedia]

* `.png`: The link:http://www.w3.org/Graphics/PNG/[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 `.pdf` files and `.html` files are automatically generated from source files in link:http://en.wikipedia.org/wiki/AsciiDoc[AsciiDoc format].
The link:http://github.com/KiCad/kicad-doc/blob/master/doc_alternatives/README.adoc["KiCad Documentation Status Report"]
persuaded us to switch from `.odt` format to `.adoc` on 2015-02-09.
A link:http://en.wikipedia.org/wiki/Lightweight_markup_language[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.
