Draw pads on internal layers if they're not on F.Cu or B.Cu.

Python footprint generators are generating them, the Altium board
importer needs them, and we'll need them for pad stacks.

Fixes https://gitlab.com/kicad/code/kicad/issues/2385

Fixes https://gitlab.com/kicad/code/kicad/issues/4228
This commit is contained in:
Jeff Young 2020-05-02 18:10:22 +01:00
parent 73eda91ec7
commit 67f2d454e9
1 changed files with 10 additions and 0 deletions

View File

@ -1567,6 +1567,16 @@ void D_PAD::ViewGetLayers( int aLayers[], int& aCount ) const
else else
aLayers[aCount++] = LAYER_PAD_BK_NETNAMES; aLayers[aCount++] = LAYER_PAD_BK_NETNAMES;
} }
else
{
// Internal layers only. (Not yet supported in GUI, but is being used by Python
// footprint generators and will be needed anyway once pad stacks are supported.)
for ( int internal = In1_Cu; internal < In30_Cu; ++internal )
{
if( IsOnLayer( (PCB_LAYER_ID) internal ) )
aLayers[aCount++] = internal;
}
}
// Check non-copper layers. This list should include all the layers that the // Check non-copper layers. This list should include all the layers that the
// footprint editor allows a pad to be placed on. // footprint editor allows a pad to be placed on.