Interactive Html Bom Plugin for KiCad

Ok, I understand now what you are saying. But we are getting into “specific manufacturing” territory here and I don’t think too many people will find that particular setup useful.
I already suggested a more or less efficient way to handle such things, just include the coordinates of the component cell and box id if needed in the bom as extra field, that will make it easy to quickly find necessary storage cell.

no problem, pcb designers itself better deal with a component value rather than box coordinates or stock numbers. I never saw a hardware designer who arranges the drawer of resistors in other way than ascending values. Contract manufacturers have always chaotic stock using stock numbers and no values. Additionally users are allowed to arrange their containes in same sequence the values appear in BOM anyway if they have more than one copy to assemble

Some cool new features are in the works for next update.
You can include track and net information in the bom to view and highlight nets by cliking on pads/tracks. See demo from first post for example.

2 Likes

Nice new features. I add one small issue about on GitHub.

It would be nice to have the headings and filters frozen when scrolling. Also to filter THT and SMD components.

Headings are frozen but not filters. It’s intentional to not waste too much vertical space, which is important for smaller screens. And when using filters your bom will not be scrollable most of the time anyway.
If you see it differently I’d like to see screen capture to understand your issue better.

(Still) loving your plugin :slight_smile:

Just quickly dumping a bug and two wishlist items here, in case I forget ;).

  • [Bug] When having additional Extra Fields, and re-sorting them from their default sort order - the Save Current Settings button does not save the new sort order.

  • [Wishlist] Please consider adding a way to order columns (e.g. Value, Footprint, Extra Fields) and save this configuration.

  • Please consider adding a default sort order to a column (e.g. ascending / descending) and save this configuration.

Thanks for feedback. I pushed a fix for first item.
Rest will go on github wishlist.

Is there any way to sort components by reference? Like 1 component per row. I need to see highlighted component one by one, not in groups by value.

I have 2 similar plugins in my installation.

bom2grouped_csv creates a list grouped by value
bom_csv_grouped_by_value creates 2 lists: single component list and grouped by value list.

I have the same, but its just for creation bom files, and Interactive Html Bom Plugin makes html file where you can see all placement of component, by picking it in the list ( you can see it in demo)

1 Like

Ah, I see. You don’t need the bom list, you need this function inside the interactive bom plugin…
Sorry, I’m not familiar with the interactive html bom plugin.

are you lost?

and more makes 20

I don’t think this is supported currently, but you can hack it in by adding this statement at line 138 in /InteractiveHtmlBom/core/ibom.py:

extras.append(id(m))

This will prevent componets from being grouped.

Am I put it to right place? Or need to delete something? Coz now its not work, nothing changes.

group part refs by value and footprint

    norm_value = units.componentValue(m.val)

    extras = []
    if config.extra_fields:
        if m.ref in extra_data:
            extras = [extra_data[m.ref].get(f, '')
                      for f in config.extra_fields]
        else:
            # Some components are on pcb but not in schematic data.
            # Show a warning about possibly outdated netlist/xml file.
            log.warn(
                    'Component %s is missing from schematic data.' % m.ref)
            warning_shown = True
            extras = [''] * len(config.extra_fields)
	        extras.append(id(m))

    group_key = (norm_value, tuple(extras), m.footprint, m.attr)
    valrefs = part_groups.setdefault(group_key, [m.val, []])
    valrefs[1].append((m.ref, i))

like this:

norm_value = units.componentValue(m.val)

extras = []
if config.extra_fields:
    if m.ref in extra_data:
        extras = [extra_data[m.ref].get(f, '')
                  for f in config.extra_fields]
    else:
        # Some components are on pcb but not in schematic data.
        # Show a warning about possibly outdated netlist/xml file.
        log.warn(
                'Component %s is missing from schematic data.' % m.ref)
        warning_shown = True
        extras = [''] * len(config.extra_fields)

extras.append(id(m))

group_key = (norm_value, tuple(extras), m.footprint, m.attr)
valrefs = part_groups.setdefault(group_key, [m.val, []])
valrefs[1].append((m.ref, i))

Still nothing changes

Make sure you’ve restarted kicad after editing.

My bad, Im restarting just PCBNew, now its working. Thank you!

Also, there are option to view front, back and front&back layout. Is it possible to view front&front and back&back but with different zoom?
Like above - zoom further, below - zoom closer
.