1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
|
<!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
also </span><i><b>https://answers.launchpad.net/kicad/+faq/2265</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">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>
|