mirror of
https://gitlab.com/kicad/code/kicad.git
synced 2025-09-14 02:03:12 +02:00
Account for aperture & track masks in plated copper calculations.
This commit is contained in:
parent
6873a75313
commit
c2be7fa3e6
@ -307,11 +307,8 @@ void BOARD_ADAPTER::createLayers( REPORTER* aStatusReporter )
|
||||
continue;
|
||||
|
||||
// Skip vias annulus when not flashed on this layer
|
||||
if( track->Type() == PCB_VIA_T
|
||||
&& !static_cast<const PCB_VIA*>( track )->FlashLayer( layer ) )
|
||||
{
|
||||
if( track->Type() == PCB_VIA_T && !static_cast<const PCB_VIA*>( track )->FlashLayer( layer ) )
|
||||
continue;
|
||||
}
|
||||
|
||||
// Add object item to layer container
|
||||
createTrackWithMargin( track, layerContainer, layer );
|
||||
@ -367,8 +364,7 @@ void BOARD_ADAPTER::createLayers( REPORTER* aStatusReporter )
|
||||
}
|
||||
|
||||
// Add a hole for this layer
|
||||
layerHoleContainer->Add( new FILLED_CIRCLE_2D( via_center,
|
||||
hole_inner_radius + thickness,
|
||||
layerHoleContainer->Add( new FILLED_CIRCLE_2D( via_center, hole_inner_radius + thickness,
|
||||
*track ) );
|
||||
}
|
||||
else if( layer == layer_ids[0] ) // it only adds once the THT holes
|
||||
@ -1078,11 +1074,23 @@ void BOARD_ADAPTER::createLayers( REPORTER* aStatusReporter )
|
||||
|
||||
for( PCB_TRACK* track : m_board->Tracks() )
|
||||
{
|
||||
if( track->Type() == PCB_VIA_T
|
||||
&& static_cast<const PCB_VIA*>( track )->FlashLayer( layer )
|
||||
&& !static_cast<const PCB_VIA*>( track )->IsTented( layer ) )
|
||||
if( track->Type() == PCB_VIA_T )
|
||||
{
|
||||
track->TransformShapeToPolygon( *layerPoly, layer, maskExpansion, maxError, ERROR_INSIDE );
|
||||
const PCB_VIA* via = static_cast<const PCB_VIA*>( track );
|
||||
|
||||
if( via->FlashLayer( layer ) && !via->IsTented( layer ) )
|
||||
{
|
||||
track->TransformShapeToPolygon( *layerPoly, layer, maskExpansion, maxError,
|
||||
ERROR_INSIDE );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if( track->HasSolderMask() )
|
||||
{
|
||||
track->TransformShapeToPolySet( *layerPoly, layer, maskExpansion, maxError,
|
||||
ERROR_INSIDE );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1159,9 +1159,8 @@ bool PCB_TRACK::IsOnLayer( PCB_LAYER_ID aLayer ) const
|
||||
return true;
|
||||
}
|
||||
|
||||
if( m_hasSolderMask
|
||||
&& ( ( aLayer == F_Mask && m_layer == F_Cu )
|
||||
|| ( aLayer == B_Mask && m_layer == B_Cu ) ) )
|
||||
if( m_hasSolderMask && ( ( aLayer == F_Mask && m_layer == F_Cu )
|
||||
|| ( aLayer == B_Mask && m_layer == B_Cu ) ) )
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user