Browse Source
Eeschema: replace dialog_bom_help.html by dialog_bom_help.md The .md files are smaller and translatable.
merge-requests/36/head
Eeschema: replace dialog_bom_help.html by dialog_bom_help.md The .md files are smaller and translatable.
merge-requests/36/head
5 changed files with 160 additions and 300 deletions
-
2.gitignore
-
19eeschema/CMakeLists.txt
-
10eeschema/dialogs/dialog_bom.cpp
-
286eeschema/dialogs/dialog_bom_help.html
-
143eeschema/dialogs/dialog_bom_help.md
@ -1,286 +0,0 @@ |
|||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> |
|
||||
<html> |
|
||||
<head> |
|
||||
<meta http-equiv="content-type" content="text/html; charset=windows-1252"/> |
|
||||
<title>kicad help</title> |
|
||||
<meta name="generator" content="LibreOffice 4.3.5.2 (Windows)"/> |
|
||||
<meta name="created" content="00:00:00"/> |
|
||||
<meta name="changed" content="2015-05-27T11:29:49.733000000"/> |
|
||||
<meta name="created" content="00:00:00"> |
|
||||
<meta name="changed" content="2015-05-27T10:36:10.287000000"> |
|
||||
<meta name="created" content="00:00:00"> |
|
||||
<meta name="changed" content="2015-05-27T09:45:48.809000000"> |
|
||||
<meta name="created" content="00:00:00"> |
|
||||
<meta name="changed" content="2015-05-27T09:29:26.026000000"> |
|
||||
<meta name="created" content="00:00:00"> |
|
||||
<meta name="changed" content="2014-12-03T20:04:24.723000000"> |
|
||||
<meta name="created" content="00:00:00"> |
|
||||
<meta name="changed" content="2014-12-03T20:04:06.003000000"> |
|
||||
<meta name="created" content="00:00:00"> |
|
||||
<meta name="changed" content="2014-12-03T19:59:24.882000000"> |
|
||||
<style type="text/css"> |
|
||||
@page { margin: 2cm } |
|
||||
p { margin-bottom: 0.21cm; color: #000000; widows: 0; orphans: 0; page-break-before: auto; page-break-after: auto } |
|
||||
p.western { font-family: "Arial", sans-serif; font-size: 10pt; so-language: en-US } |
|
||||
h1 { color: #000000 } |
|
||||
h1.western { font-family: "Times New Roman", serif } |
|
||||
h2 { color: #000000 } |
|
||||
h2.western { font-family: "Times New Roman", serif; font-size: 20pt } |
|
||||
h2.cjk { font-family: "SimSun"; font-size: 14pt } |
|
||||
h2.ctl { font-family: "Mangal"; font-size: 14pt } |
|
||||
h3 { background: transparent; color: #000000 } |
|
||||
h3.western { font-family: "Times New Roman", serif; font-size: 16pt; font-style: italic } |
|
||||
h3.cjk { font-family: "SimSun" } |
|
||||
h3.ctl { font-family: "Mangal" } |
|
||||
a:link { color: #004586; text-decoration: none } |
|
||||
a.western:link { font-family: "Liberation Sans", sans-serif; so-language: zxx; font-style: italic } |
|
||||
a.sdfootnotesym-western { font-family: "DejaVu Serif", serif } |
|
||||
</style> |
|
||||
</head> |
|
||||
<body lang="en-AU" text="#000000" link="#004586" dir="ltr"> |
|
||||
<h1 class="western"><a name="__RefHeading__2925_482973253"></a>1 - |
|
||||
Full documentation:</h1> |
|
||||
<p lang="en-US" class="western" style="margin-bottom: 0cm; widows: 0; orphans: 0"> |
|
||||
<font face="Times New Roman, serif"><font size="3" style="font-size: 12pt"><span style="font-weight: normal">The |
|
||||
</span><i><b>Eeschema documentation</b></i> <span style="font-weight: normal">describes |
|
||||
this </span><b>intermediate netlist and gives examples<br></b><span style="font-weight: normal">See </span> |
|
||||
<i><b>http://docs.kicad-pcb.org/stable/en/eeschema.html#creating-customized-netlists-and-bom-files</b></i></font></font></p> |
|
||||
<h1 class="western"><i>2 - </i>The intermediate Netlist File</h1> |
|
||||
<p lang="en-US" class="western" style="margin-bottom: 0cm; widows: 0; orphans: 0; page-break-before: auto; page-break-after: auto"> |
|
||||
<font face="Times New Roman, serif"><font size="3" style="font-size: 12pt">BOM |
|
||||
files (and netlist files) can be created from an Intermediate netlist |
|
||||
file created by Eeschema.</font></font></p> |
|
||||
<p lang="en-US" class="western" style="margin-bottom: 0cm; widows: 0; orphans: 0; page-break-before: auto; page-break-after: auto"> |
|
||||
<font face="Times New Roman, serif"><font size="3" style="font-size: 12pt">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.</font></font></p> |
|
||||
<p lang="en-US" class="western" style="margin-bottom: 0cm; widows: 0; orphans: 0; page-break-before: auto; page-break-after: auto"> |
|
||||
<font face="Times New Roman, serif"><font size="3" style="font-size: 12pt">Depending |
|
||||
on the output (BOM or netlist), different subsets of the complete |
|
||||
Intermediate Netlist file will be used in the post-processing.</font></font></p> |
|
||||
<h1 class="western">3 - Conversion to a new format</h1> |
|
||||
<p lang="en-US" class="western" style="margin-bottom: 0cm; widows: 0; orphans: 0; page-break-before: auto; page-break-after: auto"> |
|
||||
<font face="Times New Roman, serif"><font size="3" style="font-size: 12pt">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.</font></font></p> |
|
||||
<p lang="en-US" class="western" style="margin-bottom: 0cm; widows: 0; orphans: 0; page-break-before: auto; page-break-after: auto"> |
|
||||
<font face="Times New Roman, serif"><font size="3" style="font-size: 12pt">this |
|
||||
post-processing filter can be written using <b>Python</b>, <b>XSLT</b>, |
|
||||
or any other tool capable of taking XML as input.</font></font></p> |
|
||||
<p lang="en-US" class="western" style="margin-bottom: 0cm; widows: 0; orphans: 0; page-break-before: auto; page-break-after: auto"> |
|
||||
<font face="Times New Roman, serif"><font size="3" style="font-size: 12pt"><span style="font-variant: normal"><span style="font-style: normal"><span style="font-weight: normal">XSLT |
|
||||
itself is a XML language very suitable for XML transformations. There |
|
||||
is a free program called </span></span></span><i><span style="font-weight: normal">xsltproc</span></i><span style="font-variant: normal"> |
|
||||
</span><span style="font-variant: normal"><span style="font-style: normal"><span style="font-weight: normal">that |
|
||||
you can download and install. The</span></span></span><span style="font-variant: normal"> |
|
||||
</span><span style="font-variant: normal"><span style="font-style: normal"><span style="font-weight: normal">xsltproc |
|
||||
program can be used to read the Intermediate XML netlist input file, |
|
||||
apply</span></span></span><span style="font-variant: normal"> </span><span style="font-variant: normal"><span style="font-style: normal"><span style="font-weight: normal">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</span></span></span><span style="font-variant: normal"> |
|
||||
</span><span style="font-variant: normal"><span style="font-style: normal"><span style="font-weight: normal">by |
|
||||
Eeschema, after it is configured once to run xsltproc in a specific |
|
||||
way.</span></span></span></font></font></p> |
|
||||
<p lang="en-US" class="western" style="margin-bottom: 0cm; font-variant: normal; font-style: normal; font-weight: normal; widows: 0; orphans: 0"> |
|
||||
<font face="Times New Roman, serif"><font size="3" style="font-size: 12pt">A |
|
||||
Python script is somewhat more easy to create.</font></font></p> |
|
||||
<h1 class="western">4 - Initialization of the dialog window</h1> |
|
||||
<p lang="en-US" class="western" style="margin-bottom: 0cm; widows: 0; orphans: 0; page-break-before: auto; page-break-after: auto"> |
|
||||
<font face="Times New Roman, serif"><font size="3" style="font-size: 12pt">You |
|
||||
should add a new pluging (a script) in plugin list by clicking on the |
|
||||
Add Plugin button.</font></font></p> |
|
||||
<h2 class="western">4.1 - Plugin Configuration Parameters</h2> |
|
||||
<p lang="en-US" class="western" style="margin-bottom: 0cm; widows: 0; orphans: 0; page-break-before: auto; page-break-after: auto"> |
|
||||
<font face="Times New Roman, serif"><font size="3" style="font-size: 12pt">The |
|
||||
Eeschema plug-in configuration dialog requires the following |
|
||||
information:</font></font></p> |
|
||||
<ul> |
|
||||
<li/> |
|
||||
<p lang="en-US" class="western" style="margin-bottom: 0cm; widows: 0; orphans: 0; page-break-before: auto; page-break-after: auto"> |
|
||||
<font face="Times New Roman, serif"><font size="3" style="font-size: 12pt">The |
|
||||
title: for instance, the name of the netlist format.</font></font></p> |
|
||||
<li/> |
|
||||
<p lang="en-US" class="western" style="margin-bottom: 0cm; widows: 0; orphans: 0; page-break-before: auto; page-break-after: auto"> |
|
||||
<font face="Times New Roman, serif"><font size="3" style="font-size: 12pt">The |
|
||||
command line to launch the converter (usually a script).</font></font></p> |
|
||||
</ul> |
|
||||
<p lang="en-US" class="western" style="margin-bottom: 0cm; widows: 0; orphans: 0; page-break-before: auto; page-break-after: auto"> |
|
||||
<font face="Times New Roman, serif"><font size="3" style="font-size: 12pt"><b><i>Note (Windows only):</i></b></font></font></p> |
|
||||
<p lang="en-US" class="western" style="margin-bottom: 0cm; margin-top: 0cm; margin-left: 1cm; widows: 0; orphans: 0; page-break-before: auto; page-break-after: auto"> |
|
||||
<font face="Times New Roman, serif"><font size="3" style="font-size: 12pt"><i>By default, command line runs with hidden console window and output is redirected to "Plugin info" field. To show the window of the running command, set the checkbox "Show console window".</i></font></font></p> |
|
||||
<p lang="en-US" class="western" style="margin-bottom: 0cm; widows: 0; orphans: 0; page-break-before: auto; page-break-after: auto"> |
|
||||
<font face="Times New Roman, serif"><font size="3" style="font-size: 12pt">Once |
|
||||
you click on the generate button the following will happen:</font></font></p> |
|
||||
<ol> |
|
||||
<li/> |
|
||||
<p lang="en-US" class="western" style="margin-bottom: 0cm; widows: 0; orphans: 0; page-break-before: auto; page-break-after: auto"> |
|
||||
<font face="Times New Roman, serif"><font size="3" style="font-size: 12pt">Eeschema |
|
||||
creates an intermediate netlist file *.xml, for instance <i>test.xml.</i></font></font></p> |
|
||||
<li/> |
|
||||
<p lang="en-US" class="western" style="margin-bottom: 0cm; widows: 0; orphans: 0; page-break-before: auto; page-break-after: auto"> |
|
||||
<font face="Times New Roman, serif"><font size="3" style="font-size: 12pt">Eeschema |
|
||||
runs the script from the command line to create the final output |
|
||||
file.</font></font></p> |
|
||||
</ol> |
|
||||
<h2 class="western">4.2 - Generate netlist files with the command |
|
||||
line</h2> |
|
||||
<p lang="en-US" class="western" style="margin-bottom: 0cm; widows: 0; orphans: 0; page-break-before: auto; page-break-after: auto"> |
|
||||
<font face="Times New Roman, serif"><font size="3" style="font-size: 12pt">Assuming |
|
||||
we are using the program <i>xsltproc.exe</i><span style="font-variant: normal"> |
|
||||
</span><span style="font-variant: normal"><span style="font-style: normal">to |
|
||||
apply the sheet style to the intermediate file, </span></span><i>xsltproc.exe</i><span style="font-variant: normal"> |
|
||||
</span><span style="font-variant: normal"><span style="font-style: normal">is |
|
||||
executed with the following command.</span></span></font></font></p> |
|
||||
<p lang="en-US" class="western" style="margin-bottom: 0cm; widows: 0; orphans: 0; page-break-before: auto; page-break-after: auto"> |
|
||||
<font face="Times New Roman, serif"><font size="3" style="font-size: 12pt">xsltproc.exe |
|
||||
-o < output filename > < style-sheet filename > < |
|
||||
input XML file to convert ></font></font></p> |
|
||||
<p lang="en-US" class="western" style="margin-bottom: 0cm; widows: 0; orphans: 0; page-break-before: auto; page-break-after: auto"> |
|
||||
<font face="Times New Roman, serif"><font size="3" style="font-size: 12pt">On |
|
||||
Windows the command line is the following.<br><i>f:/kicad/bin/xsltproc.exe |
|
||||
-o “%O” f:/kicad/bin/plugins/myconverter.xsl “%I”</i></font></font></p> |
|
||||
<p lang="en-US" class="western" style="margin-bottom: 0cm; widows: 0; orphans: 0; page-break-before: auto; page-break-after: auto"> |
|
||||
<font face="Times New Roman, serif"><font size="3" style="font-size: 12pt">On |
|
||||
Linux the command becomes as following.<br><i>xsltproc -o “%O” |
|
||||
/usr/local/kicad/bin/plugins/myconverter .xsl “%I”<br>w</i><span style="font-variant: normal"><span style="font-style: normal"><span style="font-weight: normal">here |
|
||||
</span></span></span><span style="font-variant: normal"><i><span style="font-weight: normal">myconverter</span></i></span><i><span style="font-weight: normal">.xsl</span></i><span style="font-variant: normal"> |
|
||||
</span><span style="font-variant: normal"><span style="font-style: normal"><span style="font-weight: normal">is |
|
||||
the style-sheet that you are applying.</span></span></span></font></font></p> |
|
||||
<p lang="en-US" class="western" style="margin-bottom: 0cm; widows: 0; orphans: 0"> |
|
||||
<font face="Times New Roman, serif"><font size="3" style="font-size: 12pt"><span style="font-variant: normal"><span style="font-style: normal"><span style="font-weight: normal">Do |
|
||||
not forget the double quotes</span></span></span><span style="font-variant: normal"> |
|
||||
</span><span style="font-variant: normal"><span style="font-style: normal"><span style="font-weight: normal">around |
|
||||
the file names, this allows them to have spaces after the |
|
||||
substitution by Eeschema.</span></span></span></font></font></p> |
|
||||
<p lang="en-US" class="western" style="margin-bottom: 0cm; font-variant: normal; font-style: normal; font-weight: normal; widows: 0; orphans: 0"> |
|
||||
<font face="Times New Roman, serif"><font size="3" style="font-size: 12pt">If |
|
||||
a Python script is used, the command line is something like |
|
||||
(depending on the Python script):</font></font></p> |
|
||||
<p lang="en-US" class="western" style="margin-bottom: 0cm; widows: 0; orphans: 0; page-break-before: auto; page-break-after: auto"> |
|
||||
<font face="Times New Roman, serif"><font size="3" style="font-size: 12pt"><i>python</i> |
|
||||
<i>f:/kicad/bin/plugins/bom-in-python/myconverter.py</i> |
|
||||
“<i>%I”“%O”<br>or<br>python</i> |
|
||||
<i>/usr/local/kicad/bin/plugins/bom-in-python/myconverter .xsl “%I” |
|
||||
“%O” </i></font></font> |
|
||||
</p> |
|
||||
<p lang="en-US" class="western" style="margin-bottom: 0cm; widows: 0; orphans: 0; page-break-before: auto; page-break-after: auto"> |
|
||||
<font face="Times New Roman, serif"><font size="3" style="font-size: 12pt">The |
|
||||
command line format accepts parameters for filenames:</font></font></p> |
|
||||
<p lang="en-US" class="western" style="margin-bottom: 0cm; widows: 0; orphans: 0; page-break-before: auto; page-break-after: auto"> |
|
||||
<font face="Times New Roman, serif"><font size="3" style="font-size: 12pt">The |
|
||||
supported formatting parameters are.</font></font></p> |
|
||||
<ul> |
|
||||
<li/> |
|
||||
<p lang="en-US" class="western" style="margin-bottom: 0cm; widows: 0; orphans: 0; page-break-before: auto; page-break-after: auto"> |
|
||||
<font face="Times New Roman, serif"><font size="3" style="font-size: 12pt"><b>%B</b> |
|
||||
=> base filename of selected output file, minus path and extension.</font></font></p> |
|
||||
<li/> |
|
||||
<p lang="en-US" class="western" style="margin-bottom: 0cm; widows: 0; orphans: 0"> |
|
||||
<font face="Times New Roman, serif"><font size="3" style="font-size: 12pt"><b>%P</b> |
|
||||
=> project directory, without name and without trailing '/'.</font></font></p> |
|
||||
<li/> |
|
||||
<p lang="en-US" class="western" style="margin-bottom: 0cm; widows: 0; orphans: 0; page-break-before: auto; page-break-after: auto"> |
|
||||
<font face="Times New Roman, serif"><font size="3" style="font-size: 12pt"><b>%I |
|
||||
</b>=> complete filename and path of the temporary input file |
|
||||
(the intermediate net file).</font></font></p> |
|
||||
<li/> |
|
||||
<p lang="en-US" class="western" style="margin-bottom: 0cm; widows: 0; orphans: 0; page-break-before: auto; page-break-after: auto"> |
|
||||
<font face="Times New Roman, serif"><font size="3" style="font-size: 12pt"><b>%O</b> |
|
||||
=> complete filename and path (but without extension) of the user |
|
||||
chosen output file.</font></font></p> |
|
||||
</ul> |
|
||||
<p lang="en-US" class="western" style="margin-bottom: 0cm; widows: 0; orphans: 0; page-break-before: auto; page-break-after: auto"> |
|
||||
<font face="Times New Roman, serif"><font size="3" style="font-size: 12pt"><b>%I</b> |
|
||||
will be replaced by the actual intermediate file name<span style="font-variant: normal"><span style="font-style: normal"><span style="font-weight: normal">(usually |
|
||||
the full root sheet filename with extension “.xml”)</span></span></span><br><span style="font-variant: normal"><span style="font-style: normal"><b>%O</b></span></span><span style="font-variant: normal"> |
|
||||
</span><span style="font-variant: normal"><span style="font-style: normal"><span style="font-weight: normal">will |
|
||||
be replaced by the actual output file name (the full root sheet |
|
||||
filename minus extension).<br></span></span></span><span style="font-variant: normal"><span style="font-style: normal"><b>%B</b></span></span><span style="font-variant: normal"> |
|
||||
</span><span style="font-variant: normal"><span style="font-style: normal"><span style="font-weight: normal">will |
|
||||
be replaced by the actual output short file name</span></span></span><span style="font-variant: normal"> |
|
||||
</span><span style="font-variant: normal"><span style="font-style: normal"><span style="font-weight: normal">(the |
|
||||
short root sheet filename minus extension).<br></span></span></span><span style="font-variant: normal"><span style="font-style: normal"><b>%P</b></span></span><span style="font-variant: normal"> |
|
||||
</span><span style="font-variant: normal"><span style="font-style: normal"><span style="font-weight: normal">will |
|
||||
be replaced by the actual current project path.</span></span></span></font></font></p> |
|
||||
<h2 class="western">4.3 - Command line format:</h2> |
|
||||
<h3 class="western">4.3.1 - Remark:</h3> |
|
||||
<p lang="en-US" class="western" style="margin-bottom: 0cm; widows: 0; orphans: 0"> |
|
||||
<font face="Times New Roman, serif"><font size="3" style="font-size: 12pt">Most |
|
||||
of time, the created file must have an extension, depending on its |
|
||||
type.<br>Therefore you have to add to the option <i><b>%O</b></i> the |
|
||||
right file extension.</font></font></p> |
|
||||
<p lang="en-US" class="western" style="margin-bottom: 0cm; widows: 0; orphans: 0"> |
|
||||
<font face="Times New Roman, serif"><font size="3" style="font-size: 12pt">For |
|
||||
instance:</font></font></p> |
|
||||
<ul> |
|
||||
<li/> |
|
||||
<p lang="en-US" class="western" style="margin-bottom: 0cm; widows: 0; orphans: 0"> |
|
||||
<font face="Times New Roman, serif"><font size="3" style="font-size: 12pt"><i><b>%O.csv</b></i> |
|
||||
to create a .csv file (comma separated value file).</font></font></p> |
|
||||
<li/> |
|
||||
<p lang="en-US" class="western" style="margin-bottom: 0cm; widows: 0; orphans: 0"> |
|
||||
<font face="Times New Roman, serif"><font size="3" style="font-size: 12pt"><i><b>%O.html</b></i> |
|
||||
to create a .html file.</font></font></p> |
|
||||
<li/> |
|
||||
<p lang="en-US" class="western" style="margin-bottom: 0cm; widows: 0; orphans: 0"> |
|
||||
<font face="Times New Roman, serif"><font size="3" style="font-size: 12pt"><i><b>%O.bom</b></i> |
|
||||
to create a .bom file.</font></font></p> |
|
||||
</ul> |
|
||||
<h3 class="western">4.3.2 Example for<i> </i><span style="font-variant: normal"><i>xsltproc:</i></span></h3> |
|
||||
<p lang="en-US" class="western" style="margin-bottom: 0cm; widows: 0; orphans: 0; page-break-before: auto; page-break-after: auto"> |
|
||||
<font face="Times New Roman, serif"><font size="3" style="font-size: 12pt"><span style="font-variant: normal"><span style="font-style: normal">The |
|
||||
command line format for xsltproc is the following:<br>< path of |
|
||||
</span></span>xsltproc > <span style="font-variant: normal"><span style="font-style: normal">xsltproc |
|
||||
< </span></span>xsltproc parameters ></font></font></p> |
|
||||
<p lang="en-US" class="western" style="margin-bottom: 0cm; widows: 0; orphans: 0; page-break-before: auto; page-break-after: auto"> |
|
||||
<font face="Times New Roman, serif"><font size="3" style="font-size: 12pt">On |
|
||||
Windows:<br><i><b>f:/kicad/bin/xsltproc.exe -o “%O.bom</b></i>” |
|
||||
<i><b>f:/kicad/bin/plugins/netlist_form_pads-pcb.xsl “%I”</b></i></font></font></p> |
|
||||
<p lang="en-US" class="western" style="margin-bottom: 0cm; widows: 0; orphans: 0; page-break-before: auto; page-break-after: auto"> |
|
||||
<font face="Times New Roman, serif"><font size="3" style="font-size: 12pt">On |
|
||||
Linux:<br><i><b>xsltproc -o “%O.bom</b></i>” |
|
||||
<i><b>/usr/local/kicad/bin/plugins/netlist_form_pads-pcb.xsl “%I”</b></i></font></font></p> |
|
||||
<p lang="en-US" class="western" style="margin-bottom: 0cm; widows: 0; orphans: 0; page-break-before: auto; page-break-after: auto"> |
|
||||
<font face="Times New Roman, serif"><font size="3" style="font-size: 12pt"><span style="font-variant: normal"><span style="font-style: normal"><span style="font-weight: normal">The |
|
||||
above examples assume</span></span></span><span style="font-variant: normal"> |
|
||||
</span><span style="font-variant: normal"><span style="font-style: normal"><span style="font-weight: normal">xsltproc |
|
||||
is installed on your PC under Windows xsl</span></span></span><span style="font-variant: normal"> |
|
||||
</span><span style="font-variant: normal"><span style="font-style: normal"><span style="font-weight: normal">exe</span></span></span><span style="font-variant: normal"> |
|
||||
</span><span style="font-variant: normal"><span style="font-style: normal"><span style="font-weight: normal">files |
|
||||
located in kicad/bin</span></span></span><span style="font-variant: normal"><i><b>plugins/</b></i></span><span style="font-variant: normal"><span style="font-style: normal"><span style="font-weight: normal">.</span></span></span></font></font></p> |
|
||||
<p lang="en-US" class="western" style="margin-bottom: 0cm; widows: 0; orphans: 0"> |
|
||||
<br/> |
|
||||
|
|
||||
</p> |
|
||||
<h3 class="western">4.3.3 <i>Example fo</i><span style="font-variant: normal"><i>r |
|
||||
python scripts:</i></span></h3> |
|
||||
<p lang="en-US" class="western" style="margin-bottom: 0cm; widows: 0; orphans: 0; page-break-before: auto; page-break-after: auto"> |
|
||||
<font face="Times New Roman, serif"><font size="3" style="font-size: 12pt">The |
|
||||
command line format for python is something like:<br><span style="font-variant: normal"><span style="font-style: normal">python</span></span><span style="font-variant: normal"> |
|
||||
</span><span style="font-variant: normal"><span style="font-style: normal">< |
|
||||
script file name </span></span>> < input filename > < |
|
||||
output filename ></font></font></p> |
|
||||
<p lang="en-US" class="western" style="margin-bottom: 0cm; widows: 0; orphans: 0; page-break-before: auto; page-break-after: auto"> |
|
||||
<font face="Times New Roman, serif"><font size="3" style="font-size: 12pt">On |
|
||||
Windows:<br><i><b>python.exe f:/kicad/bin/plugins |
|
||||
/bom-in-python/my_python_script.py</b></i> “<i><b>%I” |
|
||||
“%O.html</b></i>”</font></font></p> |
|
||||
<p lang="en-US" class="western" style="margin-bottom: 0cm; widows: 0; orphans: 0; page-break-before: auto; page-break-after: auto"> |
|
||||
<font face="Times New Roman, serif"><font size="3" style="font-size: 12pt">On |
|
||||
Linux:<br><i><b>python</b></i> <i><b>/usr/local/kicad/bin/plugins |
|
||||
/bom-in-python/my_python_script.py</b></i> “<i><b>%I” |
|
||||
“%O.csv</b></i>”</font></font></p> |
|
||||
<p lang="en-US" class="western" style="margin-bottom: 0cm; widows: 0; orphans: 0; page-break-before: auto; page-break-after: auto"> |
|
||||
<font face="Times New Roman, serif"><font size="3" style="font-size: 12pt">Assuming |
|
||||
python is installed on your PC, and python scripts are located in |
|
||||
<i><b>kicad/bin/plugins /bom-in-python/</b></i>.</font></font></p> |
|
||||
<p lang="en-US" class="western" style="margin-bottom: 0cm; widows: 0; orphans: 0; page-break-before: auto; page-break-after: auto"> |
|
||||
<br/> |
|
||||
|
|
||||
</p> |
|
||||
</body> |
|
||||
</html> |
|
||||
@ -0,0 +1,143 @@ |
|||||
|
# 1 - Full documentation |
||||
|
|
||||
|
The Eeschema documentation (*eeschema.html*) describes this intermediate netlist and gives examples(chapter ***creating customized netlists and bom files***). |
||||
|
|
||||
|
# 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 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. |
||||
|
|
||||
|
A Python script is somewhat more easy to create. |
||||
|
|
||||
|
# 4 - Initialization of the dialog window |
||||
|
|
||||
|
You should add a new plugin (a script) in the plugin list by clicking on the Add Plugin button. |
||||
|
|
||||
|
## 4.1 - Plugin Configuration Parameters |
||||
|
|
||||
|
The Eeschema plug-in configuration dialog requires the following information: |
||||
|
|
||||
|
* The title: for instance, the name of the netlist format. |
||||
|
* The command line to launch the converter (usually a script). |
||||
|
|
||||
|
***Note (Windows only):*** |
||||
|
*By default, the command line runs with hidden console window and output is redirected to "Plugin info" field. To show the window of the running command, set the checkbox "Show console window".* |
||||
|
|
||||
|
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. |
||||
|
|
||||
|
If a Python script is used, the command line is something like (depending on the Python script): |
||||
|
|
||||
|
``` |
||||
|
python f:/kicad/bin/plugins/bom-in-python/myconverter.py "%I" "%O" |
||||
|
``` |
||||
|
|
||||
|
or |
||||
|
|
||||
|
``` |
||||
|
python /usr/local/kicad/bin/plugins/bom-in-python/myconverter .xsl "%I" "%O" |
||||
|
``` |
||||
|
|
||||
|
The command line format accepts parameters for filenames. The supported formatting parameters are: |
||||
|
|
||||
|
* `%B`: base filename of selected output file, minus path and extension. |
||||
|
* `%P`: project directory, without name and without trailing '/'. |
||||
|
* `%I`: complete filename and path of the temporary input file |
||||
|
(the intermediate net file). |
||||
|
* `%O`: complete filename and path (but without extension) of the user |
||||
|
chosen output file. |
||||
|
|
||||
|
`%I` will be replaced by the actual intermediate file name (usually the full root sheet filename with extension ".xml"). |
||||
|
`%O` will be replaced by the actual output file name (the full root sheet filename minus extension). |
||||
|
`%B` will be replaced by the actual output short file name (the short root sheet filename minus extension). |
||||
|
`%P` will be replaced by the actual current project path. |
||||
|
|
||||
|
## 4.3 - Command line format: |
||||
|
|
||||
|
### 4.3.1 - 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). |
||||
|
* **%O.htm** to create a .html file. |
||||
|
* **%O.bom** to create a .bom file. |
||||
|
|
||||
|
### 4.3.2 Example for xsltproc: |
||||
|
|
||||
|
The command line format for xsltproc is the following: |
||||
|
|
||||
|
``` |
||||
|
<path of xsltproc> xsltproc <xsltproc parameters> |
||||
|
``` |
||||
|
|
||||
|
On Windows: |
||||
|
``` |
||||
|
f:/kicad/bin/xsltproc.exe -o "%O.bom" f:/kicad/bin/plugins/netlist_form_pads-pcb.xsl "%I" |
||||
|
``` |
||||
|
|
||||
|
On Linux: |
||||
|
``` |
||||
|
xsltproc -o "%O.bom" /usr/local/kicad/bin/plugins/netlist_form_pads-pcb.xsl "%I" |
||||
|
``` |
||||
|
|
||||
|
The above examples assume `xsltproc` is installed on your PC under Windows and xsl files located in `<path_to_kicad>/kicad/bin/plugins/`. |
||||
|
|
||||
|
|
||||
|
### 4.3.3 Example for Python scripts: |
||||
|
|
||||
|
Assuming python is installed on your PC, and python scripts are located in |
||||
|
|
||||
|
`<path_to_kicad>/kicad/bin/plugins/bom-in-python/`, |
||||
|
|
||||
|
the command line format for python is something like: |
||||
|
|
||||
|
``` |
||||
|
python <script file name> <input filename> <output filename> |
||||
|
``` |
||||
|
|
||||
|
On Windows: |
||||
|
``` |
||||
|
python.exe f:/kicad/bin/plugins/bom-in-python/my_python_script.py "%I" "%O.html" |
||||
|
``` |
||||
|
|
||||
|
On Linux: |
||||
|
``` |
||||
|
python /usr/local/kicad/bin/plugins/bom-in-python/my_python_script.py "%I" "%O.csv" |
||||
|
``` |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue