Commit 1c754344 authored by dickelbeck's avatar dickelbeck

smt pads can be on ALL layers

parent ae3c3b6c
......@@ -287,62 +287,36 @@ 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 = '[';
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 += ']';
}
if( onAllCopperLayers )
uniqifier += 'A'; // A for all layers
else // through hole pad
const int copperCount = aBoard->GetCopperLayerCount();
for( int layer=0; layer<copperCount; ++layer )
{
uniqifier = '[';
int kilayer = pcbLayer2kicad[layer];
bool onAllCopperLayers = false;
if( (aPad->m_Masque_Layer & ALL_CU_LAYERS) == ALL_CU_LAYERS )
if( onAllCopperLayers || aPad->IsOnLayer( kilayer ) )
{
onAllCopperLayers = true;
uniqifier += 'A'; // A for all layers
}
layerName[reportedLayers++] = layerIds[layer].c_str();
const int copperCount = aBoard->GetCopperLayerCount();
for( int layer=0; layer<copperCount; ++layer )
{
int kilayer = pcbLayer2kicad[layer];
if( onAllCopperLayers || aPad->IsOnLayer( kilayer ) )
if( !onAllCopperLayers )
{
layerName[reportedLayers++] = layerIds[layer].c_str();
if( !onAllCopperLayers )
{
if( layer == 0 )
uniqifier += 'T';
else if( layer == copperCount-1 )
uniqifier += 'B';
else
uniqifier += char('0' + layer); // layer index char
}
if( layer == 0 )
uniqifier += 'T';
else if( layer == copperCount-1 )
uniqifier += 'B';
else
uniqifier += char('0' + layer); // layer index char
}
}
uniqifier += ']';
}
uniqifier += ']';
POINT dsnOffset;
if( aPad->m_Offset.x || aPad->m_Offset.y )
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment