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;