From cf118f142cc7b5230bc8e8abe61631bd3e16fb5e Mon Sep 17 00:00:00 2001 From: jean-pierre charras Date: Fri, 14 Mar 2025 15:17:04 +0100 Subject: [PATCH] plot mask layers: do not skip mask on track when solder mask min web is not 0 When solder mask min web is not 0, PlotSolderMaskLayer() uses GenerateLayerPoly(), that skipped tracks (not updated since tracks can be on a mask layer) (cherry picked from commit 7f1b412203e73a4275c8aa9a389926451e1e2171) --- pcbnew/plot_board_layers.cpp | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/pcbnew/plot_board_layers.cpp b/pcbnew/plot_board_layers.cpp index 4f934677fb..da7836c48f 100644 --- a/pcbnew/plot_board_layers.cpp +++ b/pcbnew/plot_board_layers.cpp @@ -1014,24 +1014,19 @@ void GenerateLayerPoly( SHAPE_POLY_SET* aResult, BOARD *aBoard, PCB_LAYER_ID aLa } } - // Plot (untented) vias + // Plot untented vias and tracks for( const PCB_TRACK* track : aBoard->Tracks() ) { - if( track->Type() != PCB_VIA_T ) + // Note: IsOnLayer() checks relevant mask layers of untented vias and tracks + if( !track->IsOnLayer( aLayer ) ) continue; - const PCB_VIA* via = static_cast( track ); - - // Note: IsOnLayer() checks relevant mask layers of untented vias - if( !via->IsOnLayer( aLayer ) ) - continue; - - int clearance = via->GetSolderMaskExpansion(); + int clearance = track->GetSolderMaskExpansion(); if( inflate != 0 ) - via->TransformShapeToPolygon( exactPolys, aLayer, clearance, ERROR ); + track->TransformShapeToPolygon( exactPolys, aLayer, clearance, ERROR ); - via->TransformShapeToPolygon( *aResult, aLayer, clearance + inflate, ERROR ); + track->TransformShapeToPolygon( *aResult, aLayer, clearance + inflate, ERROR ); } for( const BOARD_ITEM* item : aBoard->Drawings() )