Misleading Symbol Attribute ‘Exclude from BOM’
Description
In the symbol properties there’s a checkbox saying “Exclude from bill of materials”. I initially thought that I was supposed to enable this checkbox when I for example didn’t want a particular resistor to be mounted on my board. A so called Do Not Populate/Place/Mount/Assemble feature. It took quite some time in different discussions before I learned that this is not the intention of this checkbox.
Since it’s not just me but several people who misunderstood this feature, I’d like to suggest a change of name for this checkbox. Maybe something like: “Virtual (exclude from BOM)”?
If I understand correctly, this checkbox has the exact same purpose as the ‘Virtual’ attribute in Pcbnew footprints?
I guess that it could still be used as a DNP feature if someone really wants, but it doesn't really make sense to have a DNP attribute which is not visible in the schematic. Therefor one must always add a DNP field manually to these components and then there's hardly any point in using this checkbox. It makes much more sense to have a dedicated 'Virtual' attribute than a multi-purpose 'Exclude from BOM' attribute.
When #2131 is implemented there may be even more confusion if this checkbox still exists, and if it changes name when people have started using it there will also be a lot of confusion.
Quote from @charrasjp in this issue thread.
There is here a misunderstanding about the "Exclude from BOM" (i.e exclude from XML netlist) checkbox purpose.
It is not intended to be used for a "Do Not Place" info.
Its purpose is to exclude virtual components from the XML netlist, because these components (edge card connectors, some microwave components like an antenna, logos, holes...) are just drawings on the board, and do not need a "physical" component.
KiCad Version
Application: KiCad Schematic Editor (64-bit)
Version: (5.99.0-11586-gbaf6798695), release build
Libraries:
wxWidgets 3.1.5
libcurl/7.74.0-DEV Schannel zlib/1.2.11
Platform: Windows 10 (build 19042), 64-bit edition, 64 bit, Little endian, wxMSW
Build Info:
Date: Jul 30 2021 08:59:19
wxWidgets: 3.1.5 (wchar_t,STL containers)
Boost: 1.75.0
OCC: 7.5.0
Curl: 7.74.0-DEV
ngspice: 34
Compiler: Visual C++ 1928 without C++ ABI
Build settings:
KICAD_USE_OCC=ON
KICAD_SPICE=ON