smt pads can be on ALL layers

This commit is contained in:
dickelbeck 2008-11-10 20:54:26 +00:00
parent ae3c3b6c99
commit 1c75434438
1 changed files with 21 additions and 47 deletions

View File

@ -287,37 +287,12 @@ PADSTACK* SPECCTRA_DB::makePADSTACK( BOARD* aBoard, D_PAD* aPad )
int reportedLayers = 0; // how many in reported padstack
const char* layerName[NB_COPPER_LAYERS];
if( aPad->m_Attribut==PAD_SMD || aPad->m_Attribut==PAD_CONN )
{
// PAD_SMD and PAD_CONN are reported on each layer for which
// they are present.
uniqifier = '[';
if( aPad->IsOnLayer( LAYER_CMP_N ) )
{
layerName[reportedLayers++] = layerIds[0].c_str();
uniqifier += 'T'; // T for top, could have used a layer index here alternatively
}
if( aPad->IsOnLayer( COPPER_LAYER_N ) )
{
int pcbLayerNdx = kicadLayer2pcb[COPPER_LAYER_N];
layerName[reportedLayers++] = layerIds[ pcbLayerNdx ].c_str();
uniqifier += 'B'; // B for bottom
}
bool onAllCopperLayers = ( (aPad->m_Masque_Layer & ALL_CU_LAYERS) == ALL_CU_LAYERS );
uniqifier += ']';
}
else // through hole pad
{
uniqifier = '[';
bool onAllCopperLayers = false;
if( (aPad->m_Masque_Layer & ALL_CU_LAYERS) == ALL_CU_LAYERS )
{
onAllCopperLayers = true;
if( onAllCopperLayers )
uniqifier += 'A'; // A for all layers
}
const int copperCount = aBoard->GetCopperLayerCount();
for( int layer=0; layer<copperCount; ++layer )
@ -341,7 +316,6 @@ PADSTACK* SPECCTRA_DB::makePADSTACK( BOARD* aBoard, D_PAD* aPad )
}
uniqifier += ']';
}
POINT dsnOffset;