kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #36544
Re: Translation of dialog_bom_help.html
I noticed that the environment variables config dialog also has html-based
help message. So I changed eeschema/dialogs/dialog_bom.cpp in the same
manear as it done in common/dialogs/dialog_env_var_config.cpp.
сб, 14 июл. 2018 г. в 10:01, jp charras <jp.charras@xxxxxxxxxx>:
> Le 12/07/2018 à 14:59, Simon Richter a écrit :
> > Hi,
> >
> > On 11.07.2018 21:51, Wayne Stambaugh wrote:
> >
> >> This probably should have been done as a cpp string wrapped with the
> >> translation macro _(). I'm not sure there is anything we can do to make
> >> this translatable. Anyone else have any ideas?
> >
> > We could move the entire text to the user documentation, and make the
> > dialog point at it.
> >
> > If the dialog is unusable without the documentation, then that is a
> > separate problem, but I doubt it's that bad.
> >
> > Simon
>
> It is already in doc:
>
> http://docs.kicad-pcb.org/stable/en/eeschema.html#creating-customized-netlists-and-bom-files
> Of course, this doc could be enhanced (if there is a volunteer to do that)
>
> I am thinking this kind of doc must be in the dialog, because the command
> line needs explanations.
> The user cannot know without help how to create/modify this command line.
>
> In dialog, it can be a basic ASCII text (or using very basic html
> controls) (like in some other
> dialogs).
>
> --
> Jean-Pierre CHARRAS
>
> _______________________________________________
> Mailing list: https://launchpad.net/~kicad-developers
> Post to : kicad-developers@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help : https://help.launchpad.net/ListHelp
>
From dd900dfc3f1081048d544a5cf8997785858f999a Mon Sep 17 00:00:00 2001
From: Baranovskiy Konstantin <baranovskiykonstantin@xxxxxxxxx>
Date: Mon, 16 Jul 2018 12:58:49 +0300
Subject: [PATCH] Help message of BOM dialog is translatable now.
---
eeschema/CMakeLists.txt | 17 --
eeschema/dialogs/dialog_bom.cpp | 214 ++++++++++++++++++-
eeschema/dialogs/dialog_bom_help.html | 286 --------------------------
3 files changed, 208 insertions(+), 309 deletions(-)
delete mode 100644 eeschema/dialogs/dialog_bom_help.html
diff --git a/eeschema/CMakeLists.txt b/eeschema/CMakeLists.txt
index 819812d07..e1e86ccb5 100644
--- a/eeschema/CMakeLists.txt
+++ b/eeschema/CMakeLists.txt
@@ -253,23 +253,6 @@ else()
set( EESCHEMA_RESOURCES eeschema.rc )
endif()
-# Create a C++ compilable string initializer containing html text into a *.h file:
-add_custom_command(
- OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/dialogs/dialog_bom_help_html.h
- COMMAND ${CMAKE_COMMAND}
- -DinputFile=${CMAKE_CURRENT_SOURCE_DIR}/dialogs/dialog_bom_help.html
- -DoutputFile=${CMAKE_CURRENT_SOURCE_DIR}/dialogs/dialog_bom_help_html.h
- -P ${CMAKE_MODULE_PATH}/Html2C.cmake
- DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/dialogs/dialog_bom_help.html
- COMMENT "creating ${CMAKE_CURRENT_SOURCE_DIR}/dialogs/dialog_bom_help_html.h
- from ${CMAKE_CURRENT_SOURCE_DIR}/dialogs/dialog_bom_help.html"
- )
-
-set_source_files_properties( dialogs/dialog_bom.cpp
- PROPERTIES
- OBJECT_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/dialogs/dialog_bom_help_html.h
- )
-
if( APPLE )
# setup bundle
set( EESCHEMA_RESOURCES eeschema.icns eeschema_doc.icns )
diff --git a/eeschema/dialogs/dialog_bom.cpp b/eeschema/dialogs/dialog_bom.cpp
index 106f4751b..4855ec940 100644
--- a/eeschema/dialogs/dialog_bom.cpp
+++ b/eeschema/dialogs/dialog_bom.cpp
@@ -48,10 +48,6 @@
#define BOM_PLUGINS_KEY wxT("bom_plugins")
#define BOM_PLUGIN_SELECTED_KEY wxT("bom_plugin_selected")
-const char * s_bomHelpInfo =
-#include <dialog_bom_help_html.h>
-;
-
#include <dialog_bom_cfg_lexer.h>
using namespace T_BOMCFG_T;
@@ -658,11 +654,217 @@ void DIALOG_BOM::OnEditPlugin( wxCommandEvent& event )
void DIALOG_BOM::OnHelp( wxCommandEvent& event )
{
+ wxString msg = _( "<h1>1 - Full documentation:</h1>" );
+ msg << wxT( "<p>" );
+ msg << _( "The <i><b>Eeschema documentation</b></i> describes this "
+ "<b>intermediate netlist and gives examples.</b>" );
+ msg << wxT( "<br>" );
+ msg << _( "See also " );
+ msg << wxT( "<i>https://answers.launchpad.net/kicad/+faq/2265</i>" );
+ msg << wxT( "</p>" );
+
+ msg << _( "<h1>2 - The intermediate Netlist File</h1>" );
+ msg << wxT( "<p>" );
+ msg << _( "BOM files (and netlist files) can be created from an "
+ "Intermediate netlist file created by Eeschema." );
+ msg << wxT( "<br><br>" );
+ msg << _( "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." );
+ msg << wxT( "<br><br>" );
+ msg << _( "Depending on the output (BOM or netlist), different subsets of "
+ "the complete Intermediate Netlist file will be used in the "
+ "post-processing." );
+ msg << wxT( "</p>" );
+
+ msg << _( "<h1>3 - Conversion to a new format</h1>" );
+ msg << wxT( "<p>" );
+ msg << _( "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." );
+ msg << wxT( "<br><br>" );
+ msg << _( "This post-processing filter can be written using "
+ "<b>Python</b>, <b>XSLT</b>, or any other tool capable of "
+ "taking XML as input." );
+ msg << wxT( "<br><br>" );
+ msg << _( "XSLT itself is a XML language very suitable for XML "
+ "transformations. There is a free program called "
+ "<i>xsltproc</i> 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." );
+ msg << wxT( "<br><br>" );
+ msg << _( "A Python script is somewhat more easy to create." );
+ msg << wxT( "</p>" );
+
+ msg << _( "<h1>4 - Initialization of the dialog window</h1>" );
+ msg << wxT( "<p>" );
+ msg << _( "You should add a new pluging (a script) in plugin list by "
+ "clicking on the Add Plugin button." );
+ msg << wxT( "</p>" );
+
+ msg << _( "<h2>4.1 - Plugin Configuration Parameters</h2>" );
+ msg << wxT( "<p>" );
+ msg << _( "The Eeschema plug-in configuration dialog requires the "
+ "following information:" );
+ msg << wxT( "<ul><li>" );
+ msg << _( "The title: for instance, the name of the netlist format." );
+ msg << wxT( "</li><li>" );
+ msg << _( "The command line to launch the converter (usually a script)." );
+ msg << wxT( "</li></ul>" );
+ msg << wxT( "<br><br>" );
+ msg << wxT( "<b><i>" );
+ msg << _( "Note (Windows only):" );
+ msg << wxT( "</i></b>" );
+ msg << wxT( "<br>" );
+ msg << wxT( "<i>" );
+ msg << _( "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\"." );
+ msg << wxT( "</i>" );
+ msg << wxT( "<br><br>" );
+ msg << _( "Once you click on the generate button the following will happen:" );
+ msg << wxT( "<ol><li>" );
+ msg << _( "Eeschema creates an intermediate netlist file *.xml, for "
+ "instance <i>test.xml.</i>" );
+ msg << wxT( "</li><li>" );
+ msg << _( "Eeschema runs the script from the command line to create the "
+ "final output file." );
+ msg << wxT( "</li></ol>" );
+ msg << wxT( "</p>" );
+
+ msg << _( "<h2>4.2 - Generate netlist files with the command line</h2>" );
+ msg << wxT( "<p>" );
+ msg << _( "Assuming we are using the program <i>xsltproc.exe</i> to apply "
+ "the sheet style to the intermediate file, <i>xsltproc.exe</i> "
+ "is executed with the following command." );
+ msg << wxT( "<br><br><samp>" );
+ msg << _( "xsltproc.exe -o < output filename > < style-sheet "
+ "filename > < input XML file to convert >" );
+ msg << wxT( "</samp><br><br>" );
+ msg << _( "On Windows the command line is the following." );
+ msg << wxT( "<br><br><samp> f:\\kicad\\bin\\xsltproc.exe -o “"
+ "%O” f:\\kicad\\bin\\plugins\\"
+ "myconverter.xsl “%I” </samp><br><br>" );
+ msg << _( "On Linux the command becomes as following." );
+ msg << wxT( "<br><br><samp> xsltproc -o “%O” /usr/local/kicad/"
+ "bin/plugins/myconverter.xsl “%I” </samp><br><br>" );
+ msg << _( "where <i>myconverter.xsl</i> is the style-sheet that you are "
+ "applying." );
+ msg << wxT( "<br><br>" );
+ msg << _( "Do not forget the double quotes around the file names, this "
+ "allows them to have spaces after the substitution by Eeschema." );
+ msg << wxT( "<br><br>" );
+ msg << _( "If a Python script is used, the command line is something like "
+ "(depending on the Python script):" );
+ msg << wxT( "<br><br><samp> python f:\\kicad\\bin\\plugins\\"
+ "bom-in-python\\myconverter.py “%I”“"
+ "%O” </samp><br><br>" );
+ msg << _( "or" );
+ msg << wxT( "<br><br><samp> python /usr/local/kicad/bin/plugins/"
+ "bom-in-python/myconverter.py “%I” “"
+ "%O” </samp><br><br>" );
+ msg << _( "The command line format accepts parameters for filenames:" );
+ msg << wxT( "<br><br>" );
+ msg << _( "The supported formatting parameters are." );
+ msg << wxT( "<br>" );
+ msg << wxT( "<ul><li>" );
+ msg << _( "<b>%B</b> => base filename of selected output file, minus "
+ "path and extension." );
+ msg << wxT( "</li><li>" );
+ msg << _( "<b>%P</b> => project directory, without name and without "
+ "trailing '/'." );
+ msg << wxT( "</li><li>" );
+ msg << _( "<b>%I</b> => complete filename and path of the temporary "
+ "input file (the intermediate net file)." );
+ msg << wxT( "</li><li>" );
+ msg << _( "<b>%O</b> => complete filename and path (but without "
+ "extension) of the user chosen output file." );
+ msg << wxT( "</li></ul>" );
+ msg << wxT( "<br><br>" );
+ msg << _( "<b>%I</b> will be replaced by the actual intermediate file "
+ "name (usually the full root sheet filename with extension "
+ "“.xml”)" );
+ msg << wxT( "<br>" );
+ msg << _( "<b>%O</b> will be replaced by the actual output file name "
+ "(the full root sheet filename minus extension)." );
+ msg << wxT( "<br>" );
+ msg << _( "<b>%B</b> will be replaced by the actual output short file "
+ "name (the short root sheet filename minus extension)." );
+ msg << wxT( "<br>" );
+ msg << _( "<b>%P</b> will be replaced by the actual current project path." );
+
+ msg << _( "<h2>4.3 - Command line format:</h2>" );
+ msg << _( "<h3>4.3.1 - Remark:</h3>" );
+ msg << _( "Most of time, the created file must have an extension, "
+ "depending on its type." );
+ msg << wxT( "<br><br>" );
+ msg << _( "Therefore you have to add to the option <i><b>%O</b></i> the "
+ "right file extension." );
+ msg << wxT( "<br><br>" );
+ msg << _( "For instance:" );
+ msg << wxT( "<ul><li>" );
+ msg << _( "<i><b>%O.csv</b></i> to create a .csv file (comma separated "
+ "value file)." );
+ msg << wxT( "</li><li>" );
+ msg << _( "<i><b>%O.html</b></i> to create a .html file." );
+ msg << wxT( "</li><li>" );
+ msg << _( "<i><b>%O.bom</b></i> to create a .bom file." );
+ msg << wxT( "</li></ul>" );
+ msg << wxT( "</p>" );
+
+ msg << _( "<h3>4.3.2 - Example for <i>xsltproc:</i></h3>" );
+ msg << wxT( "<p>" );
+ msg << _( "The command line format for xsltproc is the following:" );
+ msg << wxT( "<br><br><samp>" );
+ msg << _( " < path of xsltproc > xsltproc < xsltproc "
+ "parameters >" );
+ msg << wxT( "</samp><br><br>" );
+ msg << _( "On Windows:" );
+ msg << wxT( "<br><br><samp> f:\\kicad\\bin\\xsltproc.exe -o "
+ "“%O.bom” f:\\kicad\\bin\\"
+ "plugins\\netlist_form_pads-pcb.xsl “%I” "
+ "</samp><br><br>" );
+ msg << _( "On Linux:" );
+ msg << wxT( "<br><br><samp> xsltproc -o “%O.bom” /usr/local/"
+ "kicad/bin/plugins/netlist_form_pads-pcb.xsl “%I” "
+ "</samp><br><br>" );
+ msg << _( "The above examples assume xsltproc is installed on your PC "
+ "under Windows xsl exe files located in " );
+ msg << wxT( "kicad\\bin\\<b>plugins\\</b>." );
+ msg << wxT( "</p>" );
+
+ msg << _( "<h3>4.3.3 - Example for <i>python</i> scripts:</h3>" );
+ msg << wxT( "<p>" );
+ msg << _( "The command line format for python is something like:" );
+ msg << wxT( "<br><br><samp>" );
+ msg << _( "python < script file name > < input filename > "
+ "< output filename >" );
+ msg << wxT( "</samp><br><br>" );
+ msg << _( "On Windows:" );
+ msg << wxT( "<br><br><samp> python.exe f:\\kicad\\bin/plugins\\"
+ "bom-in-python\\my_python_script.py “%I” "
+ "“%O.html” </samp><br><br>" );
+ msg << _( "On Linux:" );
+ msg << wxT( "<br><br><samp> python /usr/local/kicad/bin/plugins/"
+ "bom-in-python/my_python_script.py “%I” "
+ "“%O.csv” </samp><br><br>" );
+ msg << _( "Assuming python is installed on your PC, and python scripts "
+ "are located in " );
+ msg << wxT( "<i><b>kicad\\bin\\plugins\\bom-in-python\\</b></i>." );
+ msg << wxT( "</p>" );
+
+
HTML_MESSAGE_BOX help_Dlg( this, _("Bom Generation Help") );
help_Dlg.SetDialogSizeInDU( 500, 350 );
- wxString msg = FROM_UTF8(s_bomHelpInfo);
- help_Dlg.m_htmlWindow->AppendToPage( msg );
+ help_Dlg.AddHTML_Text( msg );
help_Dlg.ShowModal();
}
diff --git a/eeschema/dialogs/dialog_bom_help.html b/eeschema/dialogs/dialog_bom_help.html
deleted file mode 100644
index cd6169a2c..000000000
--- a/eeschema/dialogs/dialog_bom_help.html
+++ /dev/null
@@ -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
-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"><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>
--
2.18.0
Follow ups
References