diff --git a/pcbnew/dialogs/dialog_plot_base.cpp b/pcbnew/dialogs/dialog_plot_base.cpp index cee55b3d71..4efe51b9d9 100644 --- a/pcbnew/dialogs/dialog_plot_base.cpp +++ b/pcbnew/dialogs/dialog_plot_base.cpp @@ -98,7 +98,7 @@ DIALOG_PLOT_BASE::DIALOG_PLOT_BASE( wxWindow* parent, wxWindowID id, const wxStr gbSizer1->Add( m_excludeEdgeLayerOpt, wxGBPosition( 4, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 ); m_sketchPadsOnFabLayers = new wxCheckBox( sbOptionsSizer->GetStaticBox(), ID_ALLOW_PRINT_PAD_ON_SILKSCREEN, _("Sketch pads on fab layers"), wxDefaultPosition, wxDefaultSize, 0 ); - m_sketchPadsOnFabLayers->SetToolTip( _("Do not plot pads on silkscreen layers, even when they are assigned to them.\nUncheck this if you wish to create assembly drawings from silkscreen layers.") ); + m_sketchPadsOnFabLayers->SetToolTip( _("Include pad outlines on F.Fab and B.Fab layers when plotting") ); gbSizer1->Add( m_sketchPadsOnFabLayers, wxGBPosition( 5, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 5 ); diff --git a/pcbnew/dialogs/dialog_plot_base.fbp b/pcbnew/dialogs/dialog_plot_base.fbp index 7c2492bfdf..7c7c0a32e6 100644 --- a/pcbnew/dialogs/dialog_plot_base.fbp +++ b/pcbnew/dialogs/dialog_plot_base.fbp @@ -920,7 +920,7 @@ 0 - Do not plot pads on silkscreen layers, even when they are assigned to them. Uncheck this if you wish to create assembly drawings from silkscreen layers. + Include pad outlines on F.Fab and B.Fab layers when plotting wxFILTER_NONE wxDefaultValidator diff --git a/pcbnew/plot_board_layers.cpp b/pcbnew/plot_board_layers.cpp index 9cb2593954..e28a235be1 100644 --- a/pcbnew/plot_board_layers.cpp +++ b/pcbnew/plot_board_layers.cpp @@ -215,8 +215,9 @@ void PlotStandardLayer( BOARD *aBoard, PLOTTER* aPlotter, bool onCopperLayer = ( LSET::AllCuMask() & aLayerMask ).any(); bool onSolderMaskLayer = ( LSET( 2, F_Mask, B_Mask ) & aLayerMask ).any(); bool onSolderPasteLayer = ( LSET( 2, F_Paste, B_Paste ) & aLayerMask ).any(); - bool onFabLayer = ( LSET( 2, F_Fab, B_Fab ) & aLayerMask ).any(); - bool sketchPads = onFabLayer && aPlotOpt.GetSketchPadsOnFabLayers(); + bool onFrontFab = ( LSET( F_Fab ) & aLayerMask ).any(); + bool onBackFab = ( LSET( B_Fab ) & aLayerMask ).any(); + bool sketchPads = ( onFrontFab || onBackFab ) && aPlotOpt.GetSketchPadsOnFabLayers(); // Plot edge layer and graphic items itemplotter.PlotBoardGraphicItems(); @@ -240,7 +241,9 @@ void PlotStandardLayer( BOARD *aBoard, PLOTTER* aPlotter, if( !( pad->GetLayerSet() & aLayerMask ).any() ) { - if( sketchPads ) + if( sketchPads && + ( ( onFrontFab && pad->GetLayerSet().Contains( F_Cu ) ) || + ( onBackFab && pad->GetLayerSet().Contains( B_Cu ) ) ) ) padPlotMode = SKETCH; else continue;