Pcbnew, plot drill marks: fix incorrect plot drill mark in some cases.
If a non copper layers is added to a copper layer for plot with drill marks, the drill mark was not visible (covered by shapes plotted from non copper layer). Now copper layers are plotted after the non copper layers.
This commit is contained in:
parent
b88d3b13ac
commit
68fa45dea0
|
@ -58,10 +58,32 @@ void PlotBoardLayers( BOARD* aBoard, PLOTTER* aPlotter, const LSEQ& aLayers,
|
|||
{
|
||||
wxCHECK( aBoard && aPlotter && aLayers.size(), /* void */ );
|
||||
|
||||
// if a drill mark must be plotted, the copper layer needs to be plotted
|
||||
// after other layers because the drill mark must be plotted as a filled
|
||||
// white shape *after* all other shapes are plotted
|
||||
bool plot_mark = aPlotOptions.GetDrillMarksType() != DRILL_MARKS::NO_DRILL_SHAPE;
|
||||
|
||||
for( LSEQ seq = aLayers; seq; ++seq )
|
||||
{
|
||||
// copper layers with drill marks will be plotted after all other layers
|
||||
if( *seq <= B_Cu && plot_mark )
|
||||
continue;
|
||||
|
||||
PlotOneBoardLayer( aBoard, aPlotter, *seq, aPlotOptions );
|
||||
}
|
||||
|
||||
if( !plot_mark )
|
||||
return;
|
||||
|
||||
for( LSEQ seq = aLayers; seq; ++seq )
|
||||
{
|
||||
if( *seq > B_Cu ) // already plotted
|
||||
continue;
|
||||
|
||||
PlotOneBoardLayer( aBoard, aPlotter, *seq, aPlotOptions );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void PlotInteractiveLayer( BOARD* aBoard, PLOTTER* aPlotter, const PCB_PLOT_PARAMS& aPlotOpt )
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue