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