Le 16/04/2017 à 15:12, Oliver Walters a écrit :
> It's not KiCad that "knows" to exclude testing points, etc - my Python BOM script has a series of
> regex filters that remove a whole swathe of virtual components.
>
> Sometimes you actually want test points to be in the BoM e.g. for loading probe hooks onto the board.
>
> Eventually I want to add such filtering to this tool but I'd rather have the first round merged
> first before the feature set becomes too complicated.
>
> Can someone with intimate knowledge provide some info on how components in sheets that are
> referenced multiple times should be annotated in the BOM? I feel that sending a BOM with duplicate
> references is wrong...
>
See const wxString GetRef( const SCH_SHEET_PATH* sheet ) in sch_component.h
The field F0 is not really the reference. It is the reference current displayed on the screen.
It is the reference only for simple hierarchies, because there is only one reference by symbol.
Complex hierarchies (i.e. having more than one instance of a given sheet) are always tricky to handle.
Especially, because the same component is shared by all instances, only the reference is specific to
each instance.
By definition, all other fields are shared.
Therefore you cannot set for instance the value field (or the footprint name field) of shared
components with different texts.
If a field is modified, it must be also modified in all rows linked to this shared component in your
Component table viewer, which shows components as a flattened schematic (like in a netlist).
(Perhaps all references of this shared component should be displayed in the same row)
Components with multiple unites by package are also a bit tricky to manage.
Complex hierarchies having components with multiple unites by package are *especially* tricky.
--
Jean-Pierre CHARRAS