IPC-2581 export places copper-only SMD pads on solder paste layers
Description
The IPC-2581 exporter can emit solder paste LayerFeature pads for SMD copper pads that are not on a KiCad solder paste layer.
This produces incorrect IPC-2581 artwork for footprints that intentionally model solder paste separately from copper, such as exposed-pad QFN/QFP footprints. A common pattern is:
- one large copper/mask thermal pad, with no paste layer
- several smaller anonymous paste-only pads that define the stencil apertures
In the board, the center pad looks like this:
(pad "33" smd rect
(at 0 0 180)
(size 3.45 3.45)
(property pad_prop_heatsink)
(layers "F.Cu" "F.Mask")
(net "GND")
(zone_connect 2))and the paste apertures are separate pads like:
(pad "" smd roundrect
(at -1.15 -1.15 180)
(size 0.93 0.93)
(layers "F.Paste")
(roundrect_rratio 0.25))The exported IPC-2581 file includes the center pad on F.Paste anyway:
<LayerFeature layerRef="F.Paste">
...
<Pad padstackDefRef="PADSTACK_6">
<Location x="142.0" y="-108.550"/>
<StandardPrimitiveRef id="RECT_6"/>
<PinRef componentRef="U2" pin="33"/>
</Pad>
...
</LayerFeature>This looks related to the earlier fix for #16658 (closed) / commit 37b23ef8, which fixed missing solder mask openings for SMD pads. That fix also added missing paste layers. The mask part makes sense, but I think paste is different: if a KiCad pad is not on F.Paste, that usually means “do not put paste here”.
Steps to reproduce
- Open a board with an exposed-pad SMD footprint where the center pad is only on F.Cu/F.Mask.
- Make sure paste is defined with separate F.Paste pads.
- Export IPC-2581.
- Inspect LayerFeature layerRef="F.Paste".
KiCad Version
> kicad-cli version --format about
Application: kicad-cli arm64 on arm64
Version: 10.0.2-15-gdce8610261, release build
Libraries:
wxWidgets 3.2.8
FreeType 2.14.3
HarfBuzz 14.2.0
FontConfig 2.17.1
libcurl/8.7.1 (SecureTransport) LibreSSL/3.3.6 zlib/1.2.12 nghttp2/1.68.0
Platform: macOS Version 26.4.1 (Build 25E253), 64 bit, Little endian, wxBase
Build Info:
Date: May 9 2026 14:30:42
wxWidgets: 3.2.8 (wchar_t,wx containers)
Boost: 1.90.0
OCC: 7.9.3
Curl: 8.7.1
ngspice: 46
Compiler: Clang 21.0.0 with C++ ABI 1002
KICAD_IPC_API=ON
KICAD_USE_PCH=OFF