[feature request] DNP support on sheet level
Description
Right now KiCad supports do not populate (DNP)
on a component level as property which is saved in the sheetfile where the component is located. This makes it only partially useful, as in cases where the same sheetfile is used multiple times the DNP
part will be present either for each of them or for none. So for example a design with multiple identical transceiver circuits which will be (or not) populated depending on the board revision would need two copies of the same sheetfile for the transceiver circuit, one with all components set to DNP
and one normal. The user then would have to switch between the two variants depending on what setup the board is intended to fulfill.
There is already a workaround right now which works with custom bill of material scripts: creating a DNP
field in the hierarchical sheets properties will add this as a property to each of the sheets components and to no other sheet which uses the sheetfile for the xml file which is used for most of the BOM generators.
Proposed Changes
I would propose to changes to the DNP handling:
- storing the DNP attribute similar to the reference designator so that changes to one sheet do not automatically affect all other sheets as well.
- add an new
do not populate
attribute/checkbox to thesheet properties
dialog which sets the attribute for all components inside this sheet
KiCad Version
Application: KiCad x86_64 on x86_64
Version: 7.0.1-3b83917a11~172~ubuntu20.04.1, release build
Libraries:
wxWidgets 3.2.1
FreeType 2.10.1
HarfBuzz 6.0.0
FontConfig 2.13.1
libcurl/7.68.0 OpenSSL/1.1.1f zlib/1.2.11 brotli/1.0.7 libidn2/2.2.0 libpsl/0.21.0 (+libidn2/2.2.0) libssh/0.9.3/openssl/zlib nghttp2/1.40.0 librtmp/2.3
Platform: Ubuntu 20.04.6 LTS, 64 bit, Little endian, wxGTK, ubuntu, x11
Build Info:
Date: Mar 15 2023 03:29:26
wxWidgets: 3.2.1 (wchar_t,wx containers) GTK+ 3.24
Boost: 1.71.0
OCC: 7.5.2
Curl: 7.87.0
ngspice: 38
Compiler: GCC 9.4.0 with C++ ABI 1013
Build settings:
KICAD_SPICE=ON