1 - Full documentation:

The Eeschema documentation, chapter 14 describes this intermediate netlist and gives examples
See also
https://answers.launchpad.net/kicad/+faq/2265

2 - The intermediate Netlist File

BOM files (and netlist files) can be created from an Intermediate netlist file created by Eeschema.

This file uses XML syntax and is called the intermediate netlist. The intermediate netlist includes a large amount of data about your board and because of this, it can be used with post-processing to create a BOM or other reports.

Depending on the output (BOM or netlist), different subsets of the complete Intermediate Netlist file will be used in the post-processing.

3 - Conversion to a new format

By applying a post-processing filter to the Intermediate netlist file you can generate foreign netlist files as well as BOM files. Because this conversion is a text to text transformation.

this post-processing filter can be written using Python, XSLT, or any other tool capable of taking XML as input.

XSLT itself is a XML language very suitable for XML transformations. There is a free program called xsltproc that you can download and install. The xsltproc program can be used to read the Intermediate XML netlist input file, apply a style-sheet to transform the input, and save the results in an output file. Use of xsltproc requires a style-sheet file using XSLT conventions. The full conversion process is handled by Eeschema, after it is configured once to run xsltproc in a specific way.

4 - Initialization of the dialog window

You should add a new pluging (a script) in plugin list by clicking on the Add Plugin button.

4.1 - Plugin Configuration Parameters

The Eeschema plug-in configuration dialog requires the following information:

Once you click on the generate button the following will happen:

  1. Eeschema creates an intermediate netlist file *.xml, for instance test.xml.

  2. Eeschema runs the script from the command line to create the final output file.

4.2 - Generate netlist files with the command line

Assuming we are using the program xsltproc.exe to apply the sheet style to the intermediate file, xsltproc.exe is executed with the following command.

xsltproc.exe -o < output filename > < style-sheet filename > < input XML file to convert >

On Windows the command line is the following.
f:/kicad/bin/xsltproc.exe -o “%O” f:/kicad/bin/plugins/myconverter.xsl “%I”

On Linux the command becomes as following.
xsltproc -o “%O” /usr/local/kicad/bin/plugins/myconverter .xsl “%I”

Where myconverter.xsl is the style-sheet that you are applying. Do not forget the double quotes around the file names, this allows them to have spaces after the substitution by Eeschema.

The command line format accepts parameters for filenames:

The supported formatting parameters are.

%I will be replaced by the actual intermediate file name
%O will be replaced by the actual output file name.

4.3 - Command line format: example for xsltproc

4.3.1 - Command line

The command line format for xsltproc is the following:
< path of
xsltproc > xsltproc < xsltproc parameters >

On Windows:
f:/kicad/bin/xsltproc.exe -o “%O” f:/kicad/bin/plugins/netlist_form_pads-pcb.xsl “%I”

On Linux:
xsltproc -o “%O” /usr/local/kicad/bin/plugins/netlist_form_pads-pcb.xsl “%I”

The above examples assume xsltproc is installed on your PC under Windows and all files located in kicad/bin.

4.3.2 - Remark:

Most of time, the created file must have an extension, depending on its type.
Therefore you have to add to the option %O the right file extension.

For instance %O.csv to create a .csv file (comma separated value file).


4.4 - Command line format: example for python scripts

4.4.1 - Command line

The command line format for python is something like:
python < script file name > < input filename > < output filename >

On Windows:
python.exe f:/kicad/python/my_python_script.py%I” “%O”

On Linux:
python /usr/local/kicad/python/my_python_script.py%I” “%O”

Assuming python is installed on your PC.


4.4.2 - Remark:

Most of time, the created file must have an extension, depending on its type.
Therefore you have to add to the option %O the right file extension.

For instance %O.html to create a .html file.