- Python 79.2%
- JavaScript 15.2%
- CSS 2.9%
- HTML 2.2%
- Batchfile 0.5%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
* Add ini file parsing * Fix ini option types and add missing options - highlight_pin1 is a string choice, not a bool; migrate legacy 0/1 values same as load_from_ini - blacklist_empty_val is a bool in the ini file - board_rotation is stored as int in 5-degree units; convert the CLI fallback value the same way set_from_args does - read offset_back_rotation and mark_when_checked, which are written to the ini file but were not read back - exit with ERROR_FILE_NOT_FOUND instead of 0 when no ini file exists Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * Fix ini/CLI precedence so command line options override ini Explicitly-provided command line options now take precedence over values loaded from the ini file. * Reduce duplicated ini parsing logic in set_from_args_with_ini Replace the repeated per-option ini lookups with a single declarative table of (section, key, attribute, kind, cli_dest) tuples processed by a common loop. Behaviour is unchanged; special cases (highlight_pin1 migration and show_fields/group_fields with --extra-fields) are kept explicit. * Refactor argument parsing to use ini file as argparse defaults --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com> |
||
| .github/workflows | ||
| icons | ||
| InteractiveHtmlBom | ||
| tests | ||
| .gitignore | ||
| .jsbeautifyrc | ||
| __init__.py | ||
| DATAFORMAT.md | ||
| LICENSE | ||
| make_release.py | ||
| pyproject.toml | ||
| README.md | ||
| settings_dialog.fbp | ||
Interactive HTML BOM plugin for KiCad
Supports EasyEDA, Eagle, Fusion360 and Allegro PCB designer
This plugin generates a convenient Bill of Materials (BOM) listing with the ability to visually correlate and easily search for components and their placements on the PCB. It is particularly useful when hand-soldering a prototype, as it allows users to quickly find locations of components groups on the board. It is also possible to reverse lookup the component group by clicking on a footprint on the board drawing.
The plugin utilizes Pcbnew python API to read PCB data and render silkscreen, fab layer, footprint pads, text, and drawings. BOM table fields and grouping is fully configurable, additional columns, such as a manufacturer ID, can be added in Schematic editor and imported either through the netlist file, XML file generated by Eeschema's internal BOM tool, or from board file itself.
There is an option to include tracks/zones data as well as netlist information allowing dynamic highlight of nets on the board.
For full description of functionality see wiki.
Generated html page is fully self contained, doesn't need internet connection to work and can be packaged with documentation of your project or hosted anywhere on the web.
A demo is worth a thousand words.
Installation and Usage
See project wiki for instructions.
License and credits
Plugin code is licensed under MIT license, see LICENSE for more info.
Html page uses Split.js, PEP.js and (stripped down) lz-string.js libraries that get embedded into generated bom page.
units.py is borrowed from KiBom
plugin (MIT license).
svgpath.py is heavily based on
svgpathtools module (MIT license).
