From 6dbce826bec19d6b260caea6a5e8ac78dd97b4ae Mon Sep 17 00:00:00 2001 From: Oliver Date: Tue, 14 Jun 2016 20:19:47 +1000 Subject: [PATCH] Improved documentation --- README.md | 15 ++++++++++++--- example/help.png | Bin 11638 -> 0 bytes example/usage.png | Bin 0 -> 12081 bytes 3 files changed, 12 insertions(+), 3 deletions(-) delete mode 100644 example/help.png create mode 100644 example/usage.png diff --git a/README.md b/README.md index 2db7e51c..27bd0210 100644 --- a/README.md +++ b/README.md @@ -15,15 +15,24 @@ The *KiBOM_CLI* script can be run directly from KiCad or from the command line. python KiBOM_CLI.py -h -![alt tag](example/help.png?raw=True "Command Line") +![alt tag](example/usage.png?raw=True "Command Line") **netlist** The netlist must be provided to the script. When running from KiCAD use "%I" -**--output / -o** If provided, this is the path to the BoM output. If not provided, the script will use the same name as the input file, with the suffix "_bom.csv" +**output** This is the path to the BoM output. When running from KiCad, usage "%O" for the default option + +* If a suffix is not specified, CSV output format will be used +* HTML output can be specified within KiCad as: "%O.html" or "%O_BOM.html" (etc) +* XML output can be specified within KiCad as: "%O.xml" (etc) + +**-b --boards** Specify number of boards for calculating part quantities + +**-v --verbose** Enable extra debugging information + +**-n --noheader** Do not generate extra header information within the file. (HTML and CSV output only) **--cfg** If provided, this is the BOM config file that will be used. If not provided, options will be loaded from "bom.ini" -**--verbose / -v** Enable extra debugging information To run from KiCad, simply add the same command line in the *Bill of Materials* script window. e.g. to generate a HTML output: diff --git a/example/help.png b/example/help.png deleted file mode 100644 index 8dbb526feff2f4b2b8dda1ac411398e2853cc8a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11638 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 o0NV;0}{@$Ry4UdGHdFyEg^81u8-mMk2I~Vb$ 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 b3%&?9|E1(;_Cqk{E^y*ki(`4lE|LESjDVja literal 0 HcmV?d00001