|
| 1 | +# Interactive HTML BOM generation plugin for KiCad EDA |
| 2 | + |
| 3 | +This plugin was born from necessity of generating convenient BOM listing |
| 4 | +with ability to easily search for components and their placements on the |
| 5 | +pcb. |
| 6 | + |
| 7 | +This is really useful when hand soldering your prototype and you have |
| 8 | +to find the 50 places where that 0.1uF cap should be or which of these |
| 9 | +SOP8 footprints are for the same micro. |
| 10 | + |
| 11 | +This plugin utilizes Pcbnew python bindings to read pcb data and |
| 12 | +render silkscreen, footprint pads, texts and drawings. Most of the pcbnew |
| 13 | +features are supported but there are some rarely used things that will not |
| 14 | +be rendered. For example curve type segments in drawings are not supported. |
| 15 | + |
| 16 | +## Installation |
| 17 | + |
| 18 | +KiCad's Pcbnew plugins can be placed in following places, depending on |
| 19 | +platform. |
| 20 | + |
| 21 | +- Windows |
| 22 | + - {KICAD_INSTALL_PATH}/share/kicad/scripting |
| 23 | + - {KICAD_INSTALL_PATH}/share/kicad/scripting/plugins |
| 24 | + - %KICAD_PATH%/scripting |
| 25 | + - %KICAD_PATH%/scripting/plugins |
| 26 | + - %APPDATA%/Roaming/kicad/scripting |
| 27 | + - %APPDATA%/Roaming/kicad/scripting/plugins |
| 28 | + |
| 29 | + |
| 30 | +- Linux (some distributions may install in /usr/local instead of /usr) |
| 31 | + - /usr/share/kicad/scripting |
| 32 | + - /usr/share/kicad/scripting/plugins |
| 33 | + - $KICAD_PATH/scripting |
| 34 | + - $KICAD_PATH/scripting/plugins |
| 35 | + - ~/.kicad_plugins |
| 36 | + - ~/.kicad/scripting |
| 37 | + - ~/.kicad/scripting/plugins |
| 38 | + |
| 39 | + |
| 40 | +- MacOS |
| 41 | + - /Applications/kicad/Kicad/Contents/SharedSupport/scripting/plugins |
| 42 | + - ~/Library/Application Support/kicad/scripting/plugins |
| 43 | + |
| 44 | +I recommend downloading [latest release](http://github.com/osp/release) or |
| 45 | +cloning this repo in a directory of your choice and creating a symlink in one of |
| 46 | +KiCad's plugin directories to `InteractiveHtmlBom` folder. Linux users can do |
| 47 | +it with `ln -s <target> <link>`, in windows `cmd /c mklink /D <link> <target>` |
| 48 | +does the job. |
| 49 | + |
| 50 | +If you want this plugin to work in all KiCad versions you install, it's |
| 51 | +best to put it in user folder (%APPDATA% for Windows, ~/ for Linux). |
| 52 | + |
| 53 | +## Usage |
| 54 | + |
| 55 | +Open Pcbnew. Draw your board, make sure it has edges drawn on Edge.Cuts layer. |
| 56 | + |
| 57 | +Save the file and press the |
| 58 | +[iBOM](http://github.com/osp/InteractiveHtmlBom/icon.png) button. |
| 59 | + |
| 60 | +## Supported versions |
| 61 | + |
| 62 | +Kicad 5.0 and later are supported. |
| 63 | + |
| 64 | +## Known issues |
| 65 | + |
| 66 | +- Circle and Arc shape in edge cuts may lead to incorrect board boundary |
| 67 | + calculation in html render. |
| 68 | + |
| 69 | +- Custom shape pads and copper zone drawings in footprints are supported but |
| 70 | + you need patched version of KiCad python bindings. |
| 71 | + |
| 72 | + You can get these bindings [here](http://github.com/osp/bindings). |
| 73 | + |
| 74 | + Overwrite corresponding files: |
| 75 | + |
| 76 | + - {KICAD_INSTALL_PATH}/bin/\_pcbnew.kiface |
| 77 | + - {KICAD_INSTALL_PATH}/lib/python2.7/site-packages/pcbnew.py |
| 78 | + - {KICAD_INSTALL_PATH}/lib/python2.7/site-packages/\_pcbnew.pyd |
| 79 | + |
| 80 | + Patch is sent to KiCad devs and hopefully will be integrated soon. |
| 81 | + |
| 82 | +## Browser support |
| 83 | + |
| 84 | +Generated html page is tested in Chrome, Firefox and Edge. IE will not be |
| 85 | +supported, patched for other browsers are welcome. |
| 86 | + |
| 87 | +# License and credits |
| 88 | + |
| 89 | +Plugin code is licensed under MIT license, see `LICENSE` for more info. |
| 90 | + |
| 91 | +Html page uses [Split.js](https://github.com/nathancahill/Split.js) library |
| 92 | +(also distributed under MIT license) which is embedded into the page. |
| 93 | + |
| 94 | +`units.py` is borrowed from [KiBom](https://github.com/SchrodingersGat/KiBoM) |
| 95 | +plugin (MIT license). |
0 commit comments