Don't assume that a SMD pad has copper layers.
This commit is contained in:
parent
1280b3d379
commit
9a6efd43e1
|
@ -811,26 +811,33 @@ void PAD::SetAttribute( PAD_ATTRIB aAttribute )
|
||||||
switch( aAttribute )
|
switch( aAttribute )
|
||||||
{
|
{
|
||||||
case PAD_ATTRIB::PTH:
|
case PAD_ATTRIB::PTH:
|
||||||
|
// Plump up to all copper layers
|
||||||
m_layerMask |= LSET::AllCuMask();
|
m_layerMask |= LSET::AllCuMask();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PAD_ATTRIB::SMD:
|
case PAD_ATTRIB::SMD:
|
||||||
case PAD_ATTRIB::CONN:
|
case PAD_ATTRIB::CONN:
|
||||||
if( m_layerMask.test( F_Cu ) )
|
{
|
||||||
|
// Trim down to no more than one copper layer
|
||||||
|
LSET copperLayers = m_layerMask & LSET::AllCuMask();
|
||||||
|
|
||||||
|
if( copperLayers.count() > 1 )
|
||||||
{
|
{
|
||||||
m_layerMask &= ~LSET::AllCuMask();
|
m_layerMask &= ~LSET::AllCuMask();
|
||||||
m_layerMask.set( F_Cu );
|
|
||||||
}
|
if( copperLayers.test( B_Cu ) )
|
||||||
else
|
m_layerMask.set( B_Cu );
|
||||||
{
|
else
|
||||||
m_layerMask &= ~LSET::AllCuMask();
|
m_layerMask.set( copperLayers.Seq().front() );
|
||||||
m_layerMask.set( B_Cu );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// No hole
|
||||||
m_drill = VECTOR2I( 0, 0 );
|
m_drill = VECTOR2I( 0, 0 );
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
case PAD_ATTRIB::NPTH:
|
case PAD_ATTRIB::NPTH:
|
||||||
|
// No number; no net
|
||||||
m_number = wxEmptyString;
|
m_number = wxEmptyString;
|
||||||
SetNetCode( NETINFO_LIST::UNCONNECTED );
|
SetNetCode( NETINFO_LIST::UNCONNECTED );
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -816,8 +816,8 @@ private:
|
||||||
// one end and half expands the other. It is only valid
|
// one end and half expands the other. It is only valid
|
||||||
// to have a single axis be non-0.
|
// to have a single axis be non-0.
|
||||||
|
|
||||||
PAD_ATTRIB m_attribute; // PAD_ATTRIB_NORMAL, PAD_ATTRIB::SMD, PAD_ATTRIB::CONN,
|
PAD_ATTRIB m_attribute = PAD_ATTRIB::PTH;
|
||||||
// PAD_ATTRIB::NPTH
|
|
||||||
PAD_PROP m_property; // Property in fab files (BGA, FIDUCIAL, TESTPOINT, etc.)
|
PAD_PROP m_property; // Property in fab files (BGA, FIDUCIAL, TESTPOINT, etc.)
|
||||||
|
|
||||||
EDA_ANGLE m_orient;
|
EDA_ANGLE m_orient;
|
||||||
|
|
Loading…
Reference in New Issue