Hi,
while this pluging wonderfully worked for KiCAD versions up to 8. In the latest version (I am currently running 8.0.2 on Linux), we encountered cases of parts that are treated as excluded from BOM while they are not excluded at all - they are drawn correctly but they are missing on the BOM list. I was not able to exactly reproduce this yet - the parts that are missing on one board are OK on another and vice versa. Did the rules for the part exclusion changed?
Nothing changed except for support of new in kicad 8 DNP attribute.
I would suggest checking attributes of symbols/footprints that you find are missing in the bom and checking the settings that you generate the bom with.
I finally had some time and analyzed the parts what are excluded - the culprit is really the DNP field (the one selected as a DNP name in the config) - in the excluded part, this field was not really empty but it contained a single space (" "), so the code that checked them for presence found them present. I fixed it by removing the offending space (replacing " " for “” in board file). I am not sure how the space got there, maybe its some relic from older versions of our libraries. But I think that checking the DNP field not just for presence but also for non-whitespace contents would be nice.
Hi,
@qu1ck and the other developers, your plugin is really great! Easy to configure and results are really nice and practical.
I’m trying to automate my process using CLI.
That is handy but I didn’t find how to use the ibom.config.ini
file as input. I found a workaround by using the --show-dialog
option and press “generate” but it is not ideal.
Is there a better way?
Thanks.
AdriZ
There is a related feature request Using local config file with CLI mode · Issue #368 · openscopeproject/InteractiveHtmlBom · GitHub
Current workaround is to write a shell script that captures the configs you want as flags for the CLI (every option has corresponding cli flag).
Something along the lines of
#!/bin/bash
/path/to/generate_interactive_bom.py --your-flags-here "$@"
Pass file name to it like my_ibom_wrapper.sh /path/to/board.kicad_pcb
and it will automatically pass the flags along with the file to ibom.
OK. Thank you.
I was actually thinking of the script to convert the .ini file in a list of flags for the CLI.
You could write a little program for that but you shouldn’t have to unless you have lots of options that are not default. You only have to specify flags that you changed.
Indeed, thanks a lot.
Is it possible to use IBOM (or the data in the html file) to create a placement (CPL) file? I have an IBOM and I’d like to generate files for JLPCB assembly.
Yes, but with a bunch of caveats. There is layer, position, angle info in the data, look at the format. You could extract it from the html file directly and decompress the pcbdata struct or you can manually copy from browser dev tools (pcbdata variable in global namespace will be already unpacked).
But you need to take care about what you include in your cpl file (most manufacturers want smt footpritns only or at least separate, ibom does not care about smt/smd distinction) what coordinates offset should you use.
And most importantly you need to make sure it was generated from kicad project, not from something else because I can only guarantee that bounding box center and angle is correct in case of kicad, not other tools. Even then, rotation angle of the footprint is not always the same as rotation from the reel that cpl files are expected to have but that is not specific to kicad or ibom.
I thought this was a built in feature, but apparently not.
This script is good. How can I add columns, my version has only basics, and not for instance Manufacturer, Manufacturers code and so on.
I have not read all 387 messages, and I probably wont.
Add your fields in eeschema and update pcb. Then those fields will appear in extra fields list in ibom config window.
I think I said this already, but this script is good. Thank you. Too bad my libraries are messy.
Version 2.10.0 is released and available in the KiCad’s plugin manager and from pypi.
This release contains many general fixes, compatibility fixes for KiCad 9 and a couple new features:
- Padstack support for KiCad 9
- Via support for EasyEDA
- Html setting to highlight rows on mouse click instead of hover
I just try to run the generate_interactive_bom.py
from iBOM 2.10.0 as in Jobsets: Execute Command (iBom?) - #6 by hildogjr but I getting the bellow error on KiCad 9.0.0-rc3-5ca7abf2c1~182~ubuntu24.04.1
version
...
eractiveHtmlBom/ecad/kicad.py", line 4, in <module>
import pcbnew
ModuleNotFoundError: No module named 'pcbnew'
Maybe the pcbnew
was already removed from KiCad distribution? Someone having the same behavior?
It is not removed, old python api is still there.
You probably have some other python on system path and kicad is picking that. Try giving full path to kicad’s own python. I’m assuming you are on windows here.
It is true! You are right.
pcbnew
package is not visible on system Python but is on Pcbnew console. So it is under some environment.
Tracking my debugging step: on Linux, the launch file (“shortcut”) have the content like
#!/bin/sh
. /usr/share/kicad-nightly/kicad-nightly.env
/usr/lib/kicad-nightly/bin/kicad "$@"
The `` file
export LD_LIBRARY_PATH=/usr/lib/kicad-nightly/lib/x86_64-linux-gnu/:/usr/lib/kicad-nightly/lib/
export KICAD_PATH=/usr/share/kicad-nightly
And inside ${LD_LIBRARY_PATH}/python3/dist-packages
there are the pcbnew.py
and _pcbnew.so
(compiled) files.
Just checking how to create a “clean command” do include such information on “Execute Command Job Settings” for Jobsets: Execute Command (iBom?) - #6 by hildogjr.