diff --git a/common/common_plotGERBER_functions.cpp b/common/common_plotGERBER_functions.cpp
index 1c1a4fedce..3e1f8b4378 100644
--- a/common/common_plotGERBER_functions.cpp
+++ b/common/common_plotGERBER_functions.cpp
@@ -504,3 +504,11 @@ void GERBER_PLOTTER::flash_pad_rect( wxPoint pos, wxSize size,
set_current_line_width( -1 );
poly( 5, &polygon[0].x, aTrace_Mode==FILLED ? FILLED_SHAPE : NO_FILL );
}
+
+void GERBER_PLOTTER::SetLayerPolarity( bool aPositive )
+{
+ if( aPositive )
+ fprintf( output_file, "%%LPD*%%\n" );
+ else
+ fprintf( output_file, "%%LPC*%%\n" );
+}
diff --git a/include/plot_common.h b/include/plot_common.h
index 1b7920b7de..3e60912d74 100644
--- a/include/plot_common.h
+++ b/include/plot_common.h
@@ -169,6 +169,13 @@ public:
bool aBold );
void marker( const wxPoint& position, int diametre, int aShapeId );
+ /** Function SetLayerPolarity
+ * sets current Gerber layer polarity to positive or negative
+ * by writing \%LPD*\% or \%LPC*\% to the Gerber file, respectively.
+ * param @aPositive = layer polarity, true for positive
+ */
+ virtual void SetLayerPolarity( bool aPositive ) = 0;
+
protected:
/* These are marker subcomponents */
void center_square( const wxPoint& position, int diametre, FILL_T fill );
@@ -272,6 +279,8 @@ public:
virtual void flash_pad_trapez( wxPoint aPadPos, wxPoint aCorners[4],
int aPadOrient, GRTraceMode aTrace_Mode );
+ virtual void SetLayerPolarity( bool aPositive ) {};
+
protected:
void pen_control( int plume );
@@ -321,6 +330,8 @@ public:
virtual void flash_pad_trapez( wxPoint aPadPos, wxPoint aCorners[4],
int aPadOrient, GRTraceMode aTrace_Mode );
+ virtual void SetLayerPolarity( bool aPositive ) {};
+
protected:
double plot_scale_adjX, plot_scale_adjY;
};
@@ -379,6 +390,8 @@ public:
virtual void flash_pad_trapez( wxPoint aPadPos, wxPoint aCorners[4],
int aPadOrient, GRTraceMode aTrace_Mode );
+ virtual void SetLayerPolarity( bool aPositive );
+
protected:
void select_aperture( const wxSize& size,
APERTURE::Aperture_Type type );
@@ -439,6 +452,8 @@ public:
virtual void flash_pad_trapez( wxPoint aPadPos, wxPoint aCorners[4],
int aPadOrient, GRTraceMode aTrace_Mode );
+ virtual void SetLayerPolarity( bool aPositive ) {};
+
protected:
int current_color;
};
diff --git a/pcbnew/dialogs/dialog_plot_base.cpp b/pcbnew/dialogs/dialog_plot_base.cpp
index f66721ee05..321862a5f1 100644
--- a/pcbnew/dialogs/dialog_plot_base.cpp
+++ b/pcbnew/dialogs/dialog_plot_base.cpp
@@ -1,257 +1,262 @@
-///////////////////////////////////////////////////////////////////////////
-// C++ code generated with wxFormBuilder (version Sep 8 2010)
-// http://www.wxformbuilder.org/
-//
-// PLEASE DO "NOT" EDIT THIS FILE!
-///////////////////////////////////////////////////////////////////////////
-
-#include "dialog_plot_base.h"
-
-///////////////////////////////////////////////////////////////////////////
-
-DIALOG_PLOT_BASE::DIALOG_PLOT_BASE( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
-{
- this->SetSizeHints( wxSize( -1,350 ), wxDefaultSize );
-
- wxBoxSizer* bMainSizer;
- bMainSizer = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bUpperSizer;
- bUpperSizer = new wxBoxSizer( wxHORIZONTAL );
-
- wxBoxSizer* bLeftSizer;
- bLeftSizer = new wxBoxSizer( wxVERTICAL );
-
- wxStaticBoxSizer* sbLayersSizer;
- sbLayersSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Layers:") ), wxHORIZONTAL );
-
- m_CopperLayersBoxSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Copper Layers:") ), wxVERTICAL );
-
- sbLayersSizer->Add( m_CopperLayersBoxSizer, 1, wxALL, 5 );
-
- m_TechnicalLayersBoxSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Technical Layers:") ), wxVERTICAL );
-
- sbLayersSizer->Add( m_TechnicalLayersBoxSizer, 1, wxALL, 5 );
-
- bLeftSizer->Add( sbLayersSizer, 1, wxEXPAND, 5 );
-
- m_Use_Gerber_Extensions = new wxCheckBox( this, ID_USE_GERBER_EXTENSIONS, _("Use Proper Gerber Extensions"), wxDefaultPosition, wxDefaultSize, 0 );
- m_Use_Gerber_Extensions->SetToolTip( _("Use Proper Gerber Extensions - .GBL, .GTL, etc...") );
-
- bLeftSizer->Add( m_Use_Gerber_Extensions, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
-
- m_Exclude_Edges_Pcb = new wxCheckBox( this, wxID_ANY, _("Exclude pcb edge layer"), wxDefaultPosition, wxDefaultSize, 0 );
- m_Exclude_Edges_Pcb->SetToolTip( _("Exclude contents of the pcb edge layer from all other layers") );
-
- bLeftSizer->Add( m_Exclude_Edges_Pcb, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
-
- m_Plot_Sheet_Ref = new wxCheckBox( this, wxID_ANY, _("Print sheet reference"), wxDefaultPosition, wxDefaultSize, 0 );
- bLeftSizer->Add( m_Plot_Sheet_Ref, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
-
- m_Plot_Pads_on_Silkscreen = new wxCheckBox( this, ID_ALLOW_PRINT_PAD_ON_SILKSCREEN, _("Print pads on silkscreen"), wxDefaultPosition, wxDefaultSize, 0 );
- m_Plot_Pads_on_Silkscreen->SetToolTip( _("Enable/disable print/plot pads on silkscreen layers\nWhen disable, pads are never potted on silkscreen layers\nWhen enable, pads are potted only if they appear on silkscreen layers") );
-
- bLeftSizer->Add( m_Plot_Pads_on_Silkscreen, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
-
- m_Plot_Text_Value = new wxCheckBox( this, ID_PRINT_VALUE, _("Print module value"), wxDefaultPosition, wxDefaultSize, 0 );
- bLeftSizer->Add( m_Plot_Text_Value, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
-
- m_Plot_Text_Ref = new wxCheckBox( this, ID_PRINT_REF, _("Print module reference"), wxDefaultPosition, wxDefaultSize, 0 );
- bLeftSizer->Add( m_Plot_Text_Ref, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
-
- m_Plot_Text_Div = new wxCheckBox( this, ID_PRINT_MODULE_TEXTS, _("Print other module texts"), wxDefaultPosition, wxDefaultSize, 0 );
- m_Plot_Text_Div->SetToolTip( _("Enable/disable print/plot module field texts on silkscreen layers") );
-
- bLeftSizer->Add( m_Plot_Text_Div, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
-
- m_Plot_Invisible_Text = new wxCheckBox( this, ID_FORCE_PRINT_INVISIBLE_TEXT, _("Force print invisible texts"), wxDefaultPosition, wxDefaultSize, 0 );
- m_Plot_Invisible_Text->SetToolTip( _("Force print/plot module invisible texts on silkscreen layers") );
-
- bLeftSizer->Add( m_Plot_Invisible_Text, 0, wxALL, 5 );
-
- bUpperSizer->Add( bLeftSizer, 1, wxEXPAND, 5 );
-
- wxBoxSizer* bPlotOptionsSizer;
- bPlotOptionsSizer = new wxBoxSizer( wxVERTICAL );
-
- wxString m_Drill_Shape_OptChoices[] = { _("No drill mark"), _("Small mark"), _("Real drill") };
- int m_Drill_Shape_OptNChoices = sizeof( m_Drill_Shape_OptChoices ) / sizeof( wxString );
- m_Drill_Shape_Opt = new wxRadioBox( this, ID_DRILL_SHAPE_OPT, _("Pads Drill Opt"), wxDefaultPosition, wxDefaultSize, m_Drill_Shape_OptNChoices, m_Drill_Shape_OptChoices, 1, wxRA_SPECIFY_COLS );
- m_Drill_Shape_Opt->SetSelection( 1 );
- bPlotOptionsSizer->Add( m_Drill_Shape_Opt, 0, wxALL|wxEXPAND, 5 );
-
- wxString m_Scale_OptChoices[] = { _("Auto scale"), _("Scale 1"), _("Scale 1.5"), _("Scale 2"), _("Scale 3") };
- int m_Scale_OptNChoices = sizeof( m_Scale_OptChoices ) / sizeof( wxString );
- m_Scale_Opt = new wxRadioBox( this, wxID_ANY, _("Scale Opt"), wxDefaultPosition, wxDefaultSize, m_Scale_OptNChoices, m_Scale_OptChoices, 1, wxRA_SPECIFY_COLS );
- m_Scale_Opt->SetSelection( 0 );
- bPlotOptionsSizer->Add( m_Scale_Opt, 0, wxALL|wxEXPAND, 5 );
-
- wxString m_PlotModeOptChoices[] = { _("Line"), _("Filled"), _("Sketch") };
- int m_PlotModeOptNChoices = sizeof( m_PlotModeOptChoices ) / sizeof( wxString );
- m_PlotModeOpt = new wxRadioBox( this, wxID_ANY, _("Plot Mode"), wxDefaultPosition, wxDefaultSize, m_PlotModeOptNChoices, m_PlotModeOptChoices, 1, wxRA_SPECIFY_COLS );
- m_PlotModeOpt->SetSelection( 0 );
- bPlotOptionsSizer->Add( m_PlotModeOpt, 0, wxALL|wxEXPAND, 5 );
-
- wxString m_Choice_Plot_OffsetChoices[] = { _("Absolute"), _("Auxiliary axis") };
- int m_Choice_Plot_OffsetNChoices = sizeof( m_Choice_Plot_OffsetChoices ) / sizeof( wxString );
- m_Choice_Plot_Offset = new wxRadioBox( this, wxID_ANY, _("Plot Origin"), wxDefaultPosition, wxDefaultSize, m_Choice_Plot_OffsetNChoices, m_Choice_Plot_OffsetChoices, 1, wxRA_SPECIFY_COLS );
- m_Choice_Plot_Offset->SetSelection( 0 );
- bPlotOptionsSizer->Add( m_Choice_Plot_Offset, 0, wxALL|wxEXPAND, 5 );
-
- bUpperSizer->Add( bPlotOptionsSizer, 0, wxEXPAND, 5 );
-
- wxBoxSizer* bSizerFmtPlot;
- bSizerFmtPlot = new wxBoxSizer( wxVERTICAL );
-
- wxString m_PlotFormatOptChoices[] = { _("HPGL"), _("Gerber"), _("Postscript"), _("Postscript A4"), _("DXF Export") };
- int m_PlotFormatOptNChoices = sizeof( m_PlotFormatOptChoices ) / sizeof( wxString );
- m_PlotFormatOpt = new wxRadioBox( this, wxID_ANY, _("Plot Format"), wxDefaultPosition, wxDefaultSize, m_PlotFormatOptNChoices, m_PlotFormatOptChoices, 1, wxRA_SPECIFY_COLS );
- m_PlotFormatOpt->SetSelection( 1 );
- bSizerFmtPlot->Add( m_PlotFormatOpt, 0, wxALL|wxEXPAND, 5 );
-
- wxStaticBoxSizer* m_HPGL_OptionsBox;
- m_HPGL_OptionsBox = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("HPGL Options:") ), wxVERTICAL );
-
- m_textPenSize = new wxStaticText( this, wxID_ANY, _("Pen size"), wxDefaultPosition, wxDefaultSize, 0 );
- m_textPenSize->Wrap( -1 );
- m_HPGL_OptionsBox->Add( m_textPenSize, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
-
- m_HPGLPenSizeOpt = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
- m_HPGL_OptionsBox->Add( m_HPGLPenSizeOpt, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
- m_staticText3 = new wxStaticText( this, wxID_ANY, _("Pen Speed (cm/s)"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText3->Wrap( -1 );
- m_HPGL_OptionsBox->Add( m_staticText3, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
-
- m_HPGLPenSpeedOpt = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
- m_HPGLPenSpeedOpt->SetToolTip( _("Set pen speed in cm/s") );
-
- m_HPGL_OptionsBox->Add( m_HPGLPenSpeedOpt, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
-
- m_textPenOvr = new wxStaticText( this, wxID_ANY, _("Pen ovr"), wxDefaultPosition, wxDefaultSize, 0 );
- m_textPenOvr->Wrap( -1 );
- m_HPGL_OptionsBox->Add( m_textPenOvr, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
-
- m_HPGLPenOverlayOpt = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
- m_HPGLPenOverlayOpt->SetToolTip( _("Set plot overlay for filling") );
-
- m_HPGL_OptionsBox->Add( m_HPGLPenOverlayOpt, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
-
- bSizerFmtPlot->Add( m_HPGL_OptionsBox, 0, wxEXPAND, 5 );
-
- wxStaticBoxSizer* sbSizerPSOpt;
- sbSizerPSOpt = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("PS Options:") ), wxVERTICAL );
-
- m_Plot_PS_Negative = new wxCheckBox( this, wxID_ANY, _("Plot negative"), wxDefaultPosition, wxDefaultSize, 0 );
- sbSizerPSOpt->Add( m_Plot_PS_Negative, 0, wxALL, 5 );
-
- bSizerFmtPlot->Add( sbSizerPSOpt, 0, wxEXPAND, 5 );
-
- wxStaticBoxSizer* sbSizerOutputDir;
- sbSizerOutputDir = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Output Directory:") ), wxVERTICAL );
-
- m_OutputDirectory = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
- sbSizerOutputDir->Add( m_OutputDirectory, 0, wxALIGN_LEFT|wxEXPAND, 5 );
-
- m_BrowseButton = new wxButton( this, ID_BROWSE_OUTPUT_DIRECTORY, _("Browse..."), wxDefaultPosition, wxDefaultSize, 0 );
- sbSizerOutputDir->Add( m_BrowseButton, 0, wxALL, 5 );
-
- bSizerFmtPlot->Add( sbSizerOutputDir, 0, wxEXPAND, 5 );
-
- bUpperSizer->Add( bSizerFmtPlot, 0, wxEXPAND, 5 );
-
- wxBoxSizer* bButtonsSizer;
- bButtonsSizer = new wxBoxSizer( wxVERTICAL );
-
- m_PlotMirorOpt = new wxCheckBox( this, ID_MIROR_OPT, _("Plot mirror"), wxDefaultPosition, wxDefaultSize, 0 );
- bButtonsSizer->Add( m_PlotMirorOpt, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
-
- m_PlotNoViaOnMaskOpt = new wxCheckBox( this, ID_MASKVIA_OPT, _("Vias on mask"), wxDefaultPosition, wxDefaultSize, 0 );
- m_PlotNoViaOnMaskOpt->SetToolTip( _("Print/plot vias on mask layers. They are in this case not protected") );
-
- bButtonsSizer->Add( m_PlotNoViaOnMaskOpt, 0, wxALL, 5 );
-
- m_staticText6 = new wxStaticText( this, wxID_ANY, _("Default pen size"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText6->Wrap( -1 );
- m_staticText6->SetToolTip( _("Pen size used to draw items that have no pen size specified.\nUsed mainly to draw items in sketch mode.") );
-
- bButtonsSizer->Add( m_staticText6, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
-
- m_LinesWidth = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
- bButtonsSizer->Add( m_LinesWidth, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
-
- bButtonsSizer->Add( 0, 20, 1, wxEXPAND, 5 );
-
- m_staticText7 = new wxStaticText( this, wxID_ANY, _("X scale adjust"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText7->Wrap( -1 );
- bButtonsSizer->Add( m_staticText7, 0, wxRIGHT|wxLEFT, 5 );
-
- m_FineAdjustXscaleOpt = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
- m_FineAdjustXscaleOpt->SetToolTip( _("Set X scale adjust for exact scale plotting") );
-
- bButtonsSizer->Add( m_FineAdjustXscaleOpt, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
- m_staticText8 = new wxStaticText( this, wxID_ANY, _("Y scale adjust"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText8->Wrap( -1 );
- bButtonsSizer->Add( m_staticText8, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
-
- m_FineAdjustYscaleOpt = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
- bButtonsSizer->Add( m_FineAdjustYscaleOpt, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
-
- bButtonsSizer->Add( 0, 20, 1, wxEXPAND, 5 );
-
- m_PlotButton = new wxButton( this, ID_EXEC_PLOT, _("Plot"), wxDefaultPosition, wxDefaultSize, 0 );
- m_PlotButton->SetDefault();
- bButtonsSizer->Add( m_PlotButton, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
-
- m_buttonSaveOpt = new wxButton( this, ID_SAVE_OPT_PLOT, _("Save Options"), wxDefaultPosition, wxDefaultSize, 0 );
- bButtonsSizer->Add( m_buttonSaveOpt, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
-
- m_buttonDrill = new wxButton( this, ID_CREATE_DRILL_FILE, _("Generate drill file"), wxDefaultPosition, wxDefaultSize, 0 );
- bButtonsSizer->Add( m_buttonDrill, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
-
- m_buttonQuit = new wxButton( this, wxID_CANCEL, _("Quit"), wxDefaultPosition, wxDefaultSize, 0 );
- bButtonsSizer->Add( m_buttonQuit, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
-
- bUpperSizer->Add( bButtonsSizer, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
- bMainSizer->Add( bUpperSizer, 0, wxEXPAND, 5 );
-
- m_staticText2 = new wxStaticText( this, wxID_ANY, _("Messages:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText2->Wrap( -1 );
- bMainSizer->Add( m_staticText2, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
-
- m_MessagesBox = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE );
- m_MessagesBox->SetMinSize( wxSize( -1,120 ) );
-
- bMainSizer->Add( m_MessagesBox, 1, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
-
- this->SetSizer( bMainSizer );
- this->Layout();
-
- // Connect Events
- this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_PLOT_BASE::OnCloseWindow ) );
- this->Connect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DIALOG_PLOT_BASE::OnInitDialog ) );
- m_PlotFormatOpt->Connect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_PLOT_BASE::SetPlotFormat ), NULL, this );
- m_BrowseButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PLOT_BASE::OnOutputDirectoryBrowseClicked ), NULL, this );
- m_PlotButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PLOT_BASE::Plot ), NULL, this );
- m_buttonSaveOpt->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PLOT_BASE::SaveOptPlot ), NULL, this );
- m_buttonDrill->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PLOT_BASE::CreateDrillFile ), NULL, this );
- m_buttonQuit->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PLOT_BASE::OnQuit ), NULL, this );
-}
-
-DIALOG_PLOT_BASE::~DIALOG_PLOT_BASE()
-{
- // Disconnect Events
- this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_PLOT_BASE::OnCloseWindow ) );
- this->Disconnect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DIALOG_PLOT_BASE::OnInitDialog ) );
- m_PlotFormatOpt->Disconnect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_PLOT_BASE::SetPlotFormat ), NULL, this );
- m_BrowseButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PLOT_BASE::OnOutputDirectoryBrowseClicked ), NULL, this );
- m_PlotButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PLOT_BASE::Plot ), NULL, this );
- m_buttonSaveOpt->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PLOT_BASE::SaveOptPlot ), NULL, this );
- m_buttonDrill->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PLOT_BASE::CreateDrillFile ), NULL, this );
- m_buttonQuit->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PLOT_BASE::OnQuit ), NULL, this );
-
-}
+///////////////////////////////////////////////////////////////////////////
+// C++ code generated with wxFormBuilder (version Sep 8 2010)
+// http://www.wxformbuilder.org/
+//
+// PLEASE DO "NOT" EDIT THIS FILE!
+///////////////////////////////////////////////////////////////////////////
+
+#include "dialog_plot_base.h"
+
+///////////////////////////////////////////////////////////////////////////
+
+DIALOG_PLOT_BASE::DIALOG_PLOT_BASE( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
+{
+ this->SetSizeHints( wxSize( -1,350 ), wxDefaultSize );
+
+ wxBoxSizer* bMainSizer;
+ bMainSizer = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bUpperSizer;
+ bUpperSizer = new wxBoxSizer( wxHORIZONTAL );
+
+ wxBoxSizer* bLeftSizer;
+ bLeftSizer = new wxBoxSizer( wxVERTICAL );
+
+ wxStaticBoxSizer* sbLayersSizer;
+ sbLayersSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Layers:") ), wxHORIZONTAL );
+
+ m_CopperLayersBoxSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Copper Layers:") ), wxVERTICAL );
+
+ sbLayersSizer->Add( m_CopperLayersBoxSizer, 1, wxALL, 5 );
+
+ m_TechnicalLayersBoxSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Technical Layers:") ), wxVERTICAL );
+
+ sbLayersSizer->Add( m_TechnicalLayersBoxSizer, 1, wxALL, 5 );
+
+ bLeftSizer->Add( sbLayersSizer, 1, wxEXPAND, 5 );
+
+ m_Use_Gerber_Extensions = new wxCheckBox( this, ID_USE_GERBER_EXTENSIONS, _("Use Proper Gerber Extensions"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_Use_Gerber_Extensions->SetToolTip( _("Use Proper Gerber Extensions - .GBL, .GTL, etc...") );
+
+ bLeftSizer->Add( m_Use_Gerber_Extensions, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
+
+ m_Exclude_Edges_Pcb = new wxCheckBox( this, wxID_ANY, _("Exclude pcb edge layer"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_Exclude_Edges_Pcb->SetToolTip( _("Exclude contents of the pcb edge layer from all other layers") );
+
+ bLeftSizer->Add( m_Exclude_Edges_Pcb, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
+
+ m_SubtractMaskFromSilk = new wxCheckBox( this, wxID_ANY, _("Subtract Mask from Silk"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_SubtractMaskFromSilk->SetToolTip( _("Remove silkscreen from areas without soldermask") );
+
+ bLeftSizer->Add( m_SubtractMaskFromSilk, 0, wxALL, 5 );
+
+ m_Plot_Sheet_Ref = new wxCheckBox( this, wxID_ANY, _("Print sheet reference"), wxDefaultPosition, wxDefaultSize, 0 );
+ bLeftSizer->Add( m_Plot_Sheet_Ref, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
+
+ m_Plot_Pads_on_Silkscreen = new wxCheckBox( this, ID_ALLOW_PRINT_PAD_ON_SILKSCREEN, _("Print pads on silkscreen"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_Plot_Pads_on_Silkscreen->SetToolTip( _("Enable/disable print/plot pads on silkscreen layers\nWhen disable, pads are never potted on silkscreen layers\nWhen enable, pads are potted only if they appear on silkscreen layers") );
+
+ bLeftSizer->Add( m_Plot_Pads_on_Silkscreen, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
+
+ m_Plot_Text_Value = new wxCheckBox( this, ID_PRINT_VALUE, _("Print module value"), wxDefaultPosition, wxDefaultSize, 0 );
+ bLeftSizer->Add( m_Plot_Text_Value, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
+
+ m_Plot_Text_Ref = new wxCheckBox( this, ID_PRINT_REF, _("Print module reference"), wxDefaultPosition, wxDefaultSize, 0 );
+ bLeftSizer->Add( m_Plot_Text_Ref, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
+
+ m_Plot_Text_Div = new wxCheckBox( this, ID_PRINT_MODULE_TEXTS, _("Print other module texts"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_Plot_Text_Div->SetToolTip( _("Enable/disable print/plot module field texts on silkscreen layers") );
+
+ bLeftSizer->Add( m_Plot_Text_Div, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
+
+ m_Plot_Invisible_Text = new wxCheckBox( this, ID_FORCE_PRINT_INVISIBLE_TEXT, _("Force print invisible texts"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_Plot_Invisible_Text->SetToolTip( _("Force print/plot module invisible texts on silkscreen layers") );
+
+ bLeftSizer->Add( m_Plot_Invisible_Text, 0, wxALL, 5 );
+
+ bUpperSizer->Add( bLeftSizer, 1, wxEXPAND, 5 );
+
+ wxBoxSizer* bPlotOptionsSizer;
+ bPlotOptionsSizer = new wxBoxSizer( wxVERTICAL );
+
+ wxString m_Drill_Shape_OptChoices[] = { _("No drill mark"), _("Small mark"), _("Real drill") };
+ int m_Drill_Shape_OptNChoices = sizeof( m_Drill_Shape_OptChoices ) / sizeof( wxString );
+ m_Drill_Shape_Opt = new wxRadioBox( this, ID_DRILL_SHAPE_OPT, _("Pads Drill Opt"), wxDefaultPosition, wxDefaultSize, m_Drill_Shape_OptNChoices, m_Drill_Shape_OptChoices, 1, wxRA_SPECIFY_COLS );
+ m_Drill_Shape_Opt->SetSelection( 1 );
+ bPlotOptionsSizer->Add( m_Drill_Shape_Opt, 0, wxALL|wxEXPAND, 5 );
+
+ wxString m_Scale_OptChoices[] = { _("Auto scale"), _("Scale 1"), _("Scale 1.5"), _("Scale 2"), _("Scale 3") };
+ int m_Scale_OptNChoices = sizeof( m_Scale_OptChoices ) / sizeof( wxString );
+ m_Scale_Opt = new wxRadioBox( this, wxID_ANY, _("Scale Opt"), wxDefaultPosition, wxDefaultSize, m_Scale_OptNChoices, m_Scale_OptChoices, 1, wxRA_SPECIFY_COLS );
+ m_Scale_Opt->SetSelection( 0 );
+ bPlotOptionsSizer->Add( m_Scale_Opt, 0, wxALL|wxEXPAND, 5 );
+
+ wxString m_PlotModeOptChoices[] = { _("Line"), _("Filled"), _("Sketch") };
+ int m_PlotModeOptNChoices = sizeof( m_PlotModeOptChoices ) / sizeof( wxString );
+ m_PlotModeOpt = new wxRadioBox( this, wxID_ANY, _("Plot Mode"), wxDefaultPosition, wxDefaultSize, m_PlotModeOptNChoices, m_PlotModeOptChoices, 1, wxRA_SPECIFY_COLS );
+ m_PlotModeOpt->SetSelection( 0 );
+ bPlotOptionsSizer->Add( m_PlotModeOpt, 0, wxALL|wxEXPAND, 5 );
+
+ wxString m_Choice_Plot_OffsetChoices[] = { _("Absolute"), _("Auxiliary axis") };
+ int m_Choice_Plot_OffsetNChoices = sizeof( m_Choice_Plot_OffsetChoices ) / sizeof( wxString );
+ m_Choice_Plot_Offset = new wxRadioBox( this, wxID_ANY, _("Plot Origin"), wxDefaultPosition, wxDefaultSize, m_Choice_Plot_OffsetNChoices, m_Choice_Plot_OffsetChoices, 1, wxRA_SPECIFY_COLS );
+ m_Choice_Plot_Offset->SetSelection( 0 );
+ bPlotOptionsSizer->Add( m_Choice_Plot_Offset, 0, wxALL|wxEXPAND, 5 );
+
+ bUpperSizer->Add( bPlotOptionsSizer, 0, wxEXPAND, 5 );
+
+ wxBoxSizer* bSizerFmtPlot;
+ bSizerFmtPlot = new wxBoxSizer( wxVERTICAL );
+
+ wxString m_PlotFormatOptChoices[] = { _("HPGL"), _("Gerber"), _("Postscript"), _("Postscript A4"), _("DXF Export") };
+ int m_PlotFormatOptNChoices = sizeof( m_PlotFormatOptChoices ) / sizeof( wxString );
+ m_PlotFormatOpt = new wxRadioBox( this, wxID_ANY, _("Plot Format"), wxDefaultPosition, wxDefaultSize, m_PlotFormatOptNChoices, m_PlotFormatOptChoices, 1, wxRA_SPECIFY_COLS );
+ m_PlotFormatOpt->SetSelection( 1 );
+ bSizerFmtPlot->Add( m_PlotFormatOpt, 0, wxALL|wxEXPAND, 5 );
+
+ wxStaticBoxSizer* m_HPGL_OptionsBox;
+ m_HPGL_OptionsBox = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("HPGL Options:") ), wxVERTICAL );
+
+ m_textPenSize = new wxStaticText( this, wxID_ANY, _("Pen size"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_textPenSize->Wrap( -1 );
+ m_HPGL_OptionsBox->Add( m_textPenSize, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
+
+ m_HPGLPenSizeOpt = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
+ m_HPGL_OptionsBox->Add( m_HPGLPenSizeOpt, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+ m_staticText3 = new wxStaticText( this, wxID_ANY, _("Pen Speed (cm/s)"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText3->Wrap( -1 );
+ m_HPGL_OptionsBox->Add( m_staticText3, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
+
+ m_HPGLPenSpeedOpt = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
+ m_HPGLPenSpeedOpt->SetToolTip( _("Set pen speed in cm/s") );
+
+ m_HPGL_OptionsBox->Add( m_HPGLPenSpeedOpt, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
+
+ m_textPenOvr = new wxStaticText( this, wxID_ANY, _("Pen ovr"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_textPenOvr->Wrap( -1 );
+ m_HPGL_OptionsBox->Add( m_textPenOvr, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
+
+ m_HPGLPenOverlayOpt = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
+ m_HPGLPenOverlayOpt->SetToolTip( _("Set plot overlay for filling") );
+
+ m_HPGL_OptionsBox->Add( m_HPGLPenOverlayOpt, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
+
+ bSizerFmtPlot->Add( m_HPGL_OptionsBox, 0, wxEXPAND, 5 );
+
+ wxStaticBoxSizer* sbSizerPSOpt;
+ sbSizerPSOpt = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("PS Options:") ), wxVERTICAL );
+
+ m_Plot_PS_Negative = new wxCheckBox( this, wxID_ANY, _("Plot negative"), wxDefaultPosition, wxDefaultSize, 0 );
+ sbSizerPSOpt->Add( m_Plot_PS_Negative, 0, wxALL, 5 );
+
+ bSizerFmtPlot->Add( sbSizerPSOpt, 0, wxEXPAND, 5 );
+
+ wxStaticBoxSizer* sbSizerOutputDir;
+ sbSizerOutputDir = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Output Directory:") ), wxVERTICAL );
+
+ m_OutputDirectory = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
+ sbSizerOutputDir->Add( m_OutputDirectory, 0, wxALIGN_LEFT|wxEXPAND, 5 );
+
+ m_BrowseButton = new wxButton( this, ID_BROWSE_OUTPUT_DIRECTORY, _("Browse..."), wxDefaultPosition, wxDefaultSize, 0 );
+ sbSizerOutputDir->Add( m_BrowseButton, 0, wxALL, 5 );
+
+ bSizerFmtPlot->Add( sbSizerOutputDir, 0, wxEXPAND, 5 );
+
+ bUpperSizer->Add( bSizerFmtPlot, 0, wxEXPAND, 5 );
+
+ wxBoxSizer* bButtonsSizer;
+ bButtonsSizer = new wxBoxSizer( wxVERTICAL );
+
+ m_PlotMirorOpt = new wxCheckBox( this, ID_MIROR_OPT, _("Plot mirror"), wxDefaultPosition, wxDefaultSize, 0 );
+ bButtonsSizer->Add( m_PlotMirorOpt, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
+
+ m_PlotNoViaOnMaskOpt = new wxCheckBox( this, ID_MASKVIA_OPT, _("Vias on mask"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_PlotNoViaOnMaskOpt->SetToolTip( _("Print/plot vias on mask layers. They are in this case not protected") );
+
+ bButtonsSizer->Add( m_PlotNoViaOnMaskOpt, 0, wxALL, 5 );
+
+ m_staticText6 = new wxStaticText( this, wxID_ANY, _("Default pen size"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText6->Wrap( -1 );
+ m_staticText6->SetToolTip( _("Pen size used to draw items that have no pen size specified.\nUsed mainly to draw items in sketch mode.") );
+
+ bButtonsSizer->Add( m_staticText6, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
+
+ m_LinesWidth = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
+ bButtonsSizer->Add( m_LinesWidth, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+
+ bButtonsSizer->Add( 0, 20, 1, wxEXPAND, 5 );
+
+ m_staticText7 = new wxStaticText( this, wxID_ANY, _("X scale adjust"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText7->Wrap( -1 );
+ bButtonsSizer->Add( m_staticText7, 0, wxRIGHT|wxLEFT, 5 );
+
+ m_FineAdjustXscaleOpt = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
+ m_FineAdjustXscaleOpt->SetToolTip( _("Set X scale adjust for exact scale plotting") );
+
+ bButtonsSizer->Add( m_FineAdjustXscaleOpt, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+ m_staticText8 = new wxStaticText( this, wxID_ANY, _("Y scale adjust"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText8->Wrap( -1 );
+ bButtonsSizer->Add( m_staticText8, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
+
+ m_FineAdjustYscaleOpt = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
+ bButtonsSizer->Add( m_FineAdjustYscaleOpt, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+
+ bButtonsSizer->Add( 0, 20, 1, wxEXPAND, 5 );
+
+ m_PlotButton = new wxButton( this, ID_EXEC_PLOT, _("Plot"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_PlotButton->SetDefault();
+ bButtonsSizer->Add( m_PlotButton, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
+
+ m_buttonSaveOpt = new wxButton( this, ID_SAVE_OPT_PLOT, _("Save Options"), wxDefaultPosition, wxDefaultSize, 0 );
+ bButtonsSizer->Add( m_buttonSaveOpt, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
+
+ m_buttonDrill = new wxButton( this, ID_CREATE_DRILL_FILE, _("Generate drill file"), wxDefaultPosition, wxDefaultSize, 0 );
+ bButtonsSizer->Add( m_buttonDrill, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
+
+ m_buttonQuit = new wxButton( this, wxID_CANCEL, _("Quit"), wxDefaultPosition, wxDefaultSize, 0 );
+ bButtonsSizer->Add( m_buttonQuit, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
+
+ bUpperSizer->Add( bButtonsSizer, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+ bMainSizer->Add( bUpperSizer, 0, wxEXPAND, 5 );
+
+ m_staticText2 = new wxStaticText( this, wxID_ANY, _("Messages:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText2->Wrap( -1 );
+ bMainSizer->Add( m_staticText2, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
+
+ m_MessagesBox = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE );
+ m_MessagesBox->SetMinSize( wxSize( -1,120 ) );
+
+ bMainSizer->Add( m_MessagesBox, 1, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
+
+ this->SetSizer( bMainSizer );
+ this->Layout();
+
+ // Connect Events
+ this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_PLOT_BASE::OnCloseWindow ) );
+ this->Connect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DIALOG_PLOT_BASE::OnInitDialog ) );
+ m_PlotFormatOpt->Connect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_PLOT_BASE::SetPlotFormat ), NULL, this );
+ m_BrowseButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PLOT_BASE::OnOutputDirectoryBrowseClicked ), NULL, this );
+ m_PlotButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PLOT_BASE::Plot ), NULL, this );
+ m_buttonSaveOpt->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PLOT_BASE::SaveOptPlot ), NULL, this );
+ m_buttonDrill->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PLOT_BASE::CreateDrillFile ), NULL, this );
+ m_buttonQuit->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PLOT_BASE::OnQuit ), NULL, this );
+}
+
+DIALOG_PLOT_BASE::~DIALOG_PLOT_BASE()
+{
+ // Disconnect Events
+ this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_PLOT_BASE::OnCloseWindow ) );
+ this->Disconnect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DIALOG_PLOT_BASE::OnInitDialog ) );
+ m_PlotFormatOpt->Disconnect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_PLOT_BASE::SetPlotFormat ), NULL, this );
+ m_BrowseButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PLOT_BASE::OnOutputDirectoryBrowseClicked ), NULL, this );
+ m_PlotButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PLOT_BASE::Plot ), NULL, this );
+ m_buttonSaveOpt->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PLOT_BASE::SaveOptPlot ), NULL, this );
+ m_buttonDrill->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PLOT_BASE::CreateDrillFile ), NULL, this );
+ m_buttonQuit->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PLOT_BASE::OnQuit ), NULL, this );
+
+}
diff --git a/pcbnew/dialogs/dialog_plot_base.fbp b/pcbnew/dialogs/dialog_plot_base.fbp
index 7e5336395a..f1afb6a783 100644
--- a/pcbnew/dialogs/dialog_plot_base.fbp
+++ b/pcbnew/dialogs/dialog_plot_base.fbp
@@ -1,2328 +1,2385 @@
-
-
-
-
-
+
+
+
+
+
+ C++
+ 1
+ source_name
+ 0
+ UTF-8
+ connect
+ dialog_plot_base
+ 1000
+ none
+ 1
+ Dialog_Plot_base
+
+ .
+
+ 1
+ 1
+ 1
+ 0
+
+
+
+
+ 1
+ 1
+ impl_virtual
+
+
+
+ 0
+ wxID_ANY
+
+ -1,350
+ DIALOG_PLOT_BASE
+
+ 575,590
+ wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER
+
+ Plot
+
+
+ wxFILTER_NONE
+ wxDefaultValidator
+
+
+
+
+
+
+
+ OnCloseWindow
+
+
+
+
+
+ OnInitDialog
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ bMainSizer
+ wxVERTICAL
+ none
+
+ 5
+ wxEXPAND
+ 0
+
+
+ bUpperSizer
+ wxHORIZONTAL
+ none
+
+ 5
+ wxEXPAND
+ 1
+
+
+ bLeftSizer
+ wxVERTICAL
+ none
+
+ 5
+ wxEXPAND
+ 1
+
+ wxID_ANY
+ Layers:
+
+ sbLayersSizer
+ wxHORIZONTAL
+ none
+
+
+ 5
+ wxALL
+ 1
+
+ wxID_ANY
+ Copper Layers:
+
+ m_CopperLayersBoxSizer
+ wxVERTICAL
+ protected
+
+
+
+
+ 5
+ wxALL
+ 1
+
+ wxID_ANY
+ Technical Layers:
+
+ m_TechnicalLayersBoxSizer
+ wxVERTICAL
+ protected
+
+
+
+
+
+
+ 5
+ wxTOP|wxRIGHT|wxLEFT
+ 0
+
+
+ 0
+
+ 1
+ 1
+
+
+ 0
+ ID_USE_GERBER_EXTENSIONS
+ Use Proper Gerber Extensions
+
+
+ m_Use_Gerber_Extensions
+ protected
+
+
+
+
+ Use Proper Gerber Extensions - .GBL, .GTL, etc...
+
+ wxFILTER_NONE
+ wxDefaultValidator
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ wxTOP|wxRIGHT|wxLEFT
+ 0
+
+
+ 0
+
+ 1
+ 1
+
+
+ 0
+ wxID_ANY
+ Exclude pcb edge layer
+
+
+ m_Exclude_Edges_Pcb
+ protected
+
+
+
+
+ Exclude contents of the pcb edge layer from all other layers
+
+ wxFILTER_NONE
+ wxDefaultValidator
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ wxALL
+ 0
+
+
+ 0
+
+ 1
+ 1
+
+
+ 0
+ wxID_ANY
+ Subtract Mask from Silk
+
+
+ m_SubtractMaskFromSilk
+ protected
+
+
+
+
+ Remove silkscreen from areas without soldermask
+
+ wxFILTER_NONE
+ wxDefaultValidator
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ wxTOP|wxRIGHT|wxLEFT
+ 0
+
+
+ 0
+
+ 1
+ 1
+
+
+ 0
+ wxID_ANY
+ Print sheet reference
+
+
+ m_Plot_Sheet_Ref
+ protected
+
+
+
+
+
+
+ wxFILTER_NONE
+ wxDefaultValidator
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ wxTOP|wxRIGHT|wxLEFT
+ 0
+
+
+ 0
+
+ 1
+ 1
+
+
+ 0
+ ID_ALLOW_PRINT_PAD_ON_SILKSCREEN
+ Print pads on silkscreen
+
+
+ m_Plot_Pads_on_Silkscreen
+ protected
+
+
+
+
+ Enable/disable print/plot pads on silkscreen layers
When disable, pads are never potted on silkscreen layers
When enable, pads are potted only if they appear on silkscreen layers
+
+ wxFILTER_NONE
+ wxDefaultValidator
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ wxTOP|wxRIGHT|wxLEFT
+ 0
+
+
+ 0
+
+ 1
+ 1
+
+
+ 0
+ ID_PRINT_VALUE
+ Print module value
+
+
+ m_Plot_Text_Value
+ protected
+
+
+
+
+
+
+ wxFILTER_NONE
+ wxDefaultValidator
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ wxTOP|wxRIGHT|wxLEFT
+ 0
+
+
+ 0
+
+ 1
+ 1
+
+
+ 0
+ ID_PRINT_REF
+ Print module reference
+
+
+ m_Plot_Text_Ref
+ protected
+
+
+
+
+
+
+ wxFILTER_NONE
+ wxDefaultValidator
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ wxTOP|wxRIGHT|wxLEFT
+ 0
+
+
+ 0
+
+ 1
+ 1
+
+
+ 0
+ ID_PRINT_MODULE_TEXTS
+ Print other module texts
+
+
+ m_Plot_Text_Div
+ protected
+
+
+
+
+ Enable/disable print/plot module field texts on silkscreen layers
+
+ wxFILTER_NONE
+ wxDefaultValidator
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ wxALL
+ 0
+
+
+ 0
+
+ 1
+ 1
+
+
+ 0
+ ID_FORCE_PRINT_INVISIBLE_TEXT
+ Force print invisible texts
+
+
+ m_Plot_Invisible_Text
+ protected
+
+
+
+
+ Force print/plot module invisible texts on silkscreen layers
+
+ wxFILTER_NONE
+ wxDefaultValidator
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ wxEXPAND
+ 0
+
+
+ bPlotOptionsSizer
+ wxVERTICAL
+ none
+
+ 5
+ wxALL|wxEXPAND
+ 0
+
+
+ "No drill mark" "Small mark" "Real drill"
+
+ 1
+ 1
+
+
+ 0
+ ID_DRILL_SHAPE_OPT
+ Pads Drill Opt
+ 1
+
+
+ m_Drill_Shape_Opt
+ protected
+
+ 1
+
+ wxRA_SPECIFY_COLS
+
+
+
+ wxFILTER_NONE
+ wxDefaultValidator
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ wxALL|wxEXPAND
+ 0
+
+
+ "Auto scale" "Scale 1" "Scale 1.5" "Scale 2" "Scale 3"
+
+ 1
+ 1
+
+
+ 0
+ wxID_ANY
+ Scale Opt
+ 1
+
+
+ m_Scale_Opt
+ protected
+
+ 0
+
+ wxRA_SPECIFY_COLS
+
+
+
+ wxFILTER_NONE
+ wxDefaultValidator
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ wxALL|wxEXPAND
+ 0
+
+
+ "Line" "Filled" "Sketch"
+
+ 1
+ 1
+
+
+ 0
+ wxID_ANY
+ Plot Mode
+ 1
+
+
+ m_PlotModeOpt
+ protected
+
+ 0
+
+ wxRA_SPECIFY_COLS
+
+
+
+ wxFILTER_NONE
+ wxDefaultValidator
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ wxALL|wxEXPAND
+ 0
+
+
+ "Absolute" "Auxiliary axis"
+
+ 1
+ 1
+
+
+ 0
+ wxID_ANY
+ Plot Origin
+ 1
+
+
+ m_Choice_Plot_Offset
+ protected
+
+ 0
+
+ wxRA_SPECIFY_COLS
+
+
+
+ wxFILTER_NONE
+ wxDefaultValidator
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ wxEXPAND
+ 0
+
+
+ bSizerFmtPlot
+ wxVERTICAL
+ none
+
+ 5
+ wxALL|wxEXPAND
+ 0
+
+
+ "HPGL" "Gerber" "Postscript" "Postscript A4" "DXF Export"
+
+ 1
+ 1
+
+
+ 0
+ wxID_ANY
+ Plot Format
+ 1
+
+
+ m_PlotFormatOpt
+ protected
+
+ 1
+
+ wxRA_SPECIFY_COLS
+
+
+
+ wxFILTER_NONE
+ wxDefaultValidator
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ SetPlotFormat
+
+
+
+
+
+
+
+
+
+ 5
+ wxEXPAND
+ 0
+
+ wxID_ANY
+ HPGL Options:
+
+ m_HPGL_OptionsBox
+ wxVERTICAL
+ none
+
+
+ 5
+ wxTOP|wxRIGHT|wxLEFT
+ 0
+
+
+
+ 1
+ 1
+
+
+ 0
+ wxID_ANY
+ Pen size
+
+
+ m_textPenSize
+ protected
+
+
+
+
+
+
+ wxFILTER_NONE
+ wxDefaultValidator
+
+
+
+
+ -1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT
+ 0
+
+
+
+ 1
+ 1
+
+
+ 0
+ wxID_ANY
+
+ 0
+
+ m_HPGLPenSizeOpt
+ protected
+
+
+
+
+
+
+ wxFILTER_NONE
+ wxDefaultValidator
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ wxTOP|wxRIGHT|wxLEFT
+ 0
+
+
+
+ 1
+ 1
+
+
+ 0
+ wxID_ANY
+ Pen Speed (cm/s)
+
+
+ m_staticText3
+ protected
+
+
+
+
+
+
+ wxFILTER_NONE
+ wxDefaultValidator
+
+
+
+
+ -1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND
+ 0
+
+
+
+ 1
+ 1
+
+
+ 0
+ wxID_ANY
+
+ 0
+
+ m_HPGLPenSpeedOpt
+ protected
+
+
+
+
+ Set pen speed in cm/s
+
+ wxFILTER_NONE
+ wxDefaultValidator
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ wxTOP|wxRIGHT|wxLEFT
+ 0
+
+
+
+ 1
+ 1
+
+
+ 0
+ wxID_ANY
+ Pen ovr
+
+
+ m_textPenOvr
+ protected
+
+
+
+
+
+
+ wxFILTER_NONE
+ wxDefaultValidator
+
+
+
+
+ -1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND
+ 0
+
+
+
+ 1
+ 1
+
+
+ 0
+ wxID_ANY
+
+ 0
+
+ m_HPGLPenOverlayOpt
+ protected
+
+
+
+
+ Set plot overlay for filling
+
+ wxFILTER_NONE
+ wxDefaultValidator
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ wxEXPAND
+ 0
+
+ wxID_ANY
+ PS Options:
+
+ sbSizerPSOpt
+ wxVERTICAL
+ none
+
+
+ 5
+ wxALL
+ 0
+
+
+ 0
+
+ 1
+ 1
+
+
+ 0
+ wxID_ANY
+ Plot negative
+
+
+ m_Plot_PS_Negative
+ protected
+
+
+
+
+
+
+ wxFILTER_NONE
+ wxDefaultValidator
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ wxEXPAND
+ 0
+
+ wxID_ANY
+ Output Directory:
+
+ sbSizerOutputDir
+ wxVERTICAL
+ none
+
+
+ 5
+ wxALIGN_LEFT|wxEXPAND
+ 0
+
+
+
+ 1
+ 1
+
+
+ 0
+ wxID_ANY
+
+ 0
+
+ m_OutputDirectory
+ protected
+
+
+
+
+
+
+ wxFILTER_NONE
+ wxDefaultValidator
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ wxALL
+ 0
+
+
+
+ 1
+ 0
+ 1
+
+
+ 0
+ ID_BROWSE_OUTPUT_DIRECTORY
+ Browse...
+
+
+ m_BrowseButton
+ protected
+
+
+
+
+
+
+ wxFILTER_NONE
+ wxDefaultValidator
+
+
+
+
+ OnOutputDirectoryBrowseClicked
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ wxALIGN_CENTER_VERTICAL|wxEXPAND
+ 0
+
+
+ bButtonsSizer
+ wxVERTICAL
+ none
+
+ 5
+ wxTOP|wxRIGHT|wxLEFT
+ 0
+
+
+ 0
+
+ 1
+ 1
+
+
+ 0
+ ID_MIROR_OPT
+ Plot mirror
+
+
+ m_PlotMirorOpt
+ protected
+
+
+
+
+
+
+ wxFILTER_NONE
+ wxDefaultValidator
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ wxALL
+ 0
+
+
+ 0
+
+ 1
+ 1
+
+
+ 0
+ ID_MASKVIA_OPT
+ Vias on mask
+
+
+ m_PlotNoViaOnMaskOpt
+ protected
+
+
+
+
+ Print/plot vias on mask layers. They are in this case not protected
+
+ wxFILTER_NONE
+ wxDefaultValidator
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ wxTOP|wxRIGHT|wxLEFT
+ 0
+
+
+
+ 1
+ 1
+
+
+ 0
+ wxID_ANY
+ Default pen size
+
+
+ m_staticText6
+ protected
+
+
+
+
+ Pen size used to draw items that have no pen size specified.
Used mainly to draw items in sketch mode.
+
+ wxFILTER_NONE
+ wxDefaultValidator
+
+
+
+
+ -1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT
+ 0
+
+
+
+ 1
+ 1
+
+
+ 0
+ wxID_ANY
+
+ 0
+
+ m_LinesWidth
+ protected
+
+
+
+
+
+
+ wxFILTER_NONE
+ wxDefaultValidator
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ wxEXPAND
+ 1
+
+ 20
+ protected
+ 0
+
+
+
+ 5
+ wxRIGHT|wxLEFT
+ 0
+
+
+
+ 1
+ 1
+
+
+ 0
+ wxID_ANY
+ X scale adjust
+
+
+ m_staticText7
+ protected
+
+
+
+
+
+
+ wxFILTER_NONE
+ wxDefaultValidator
+
+
+
+
+ -1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT
+ 0
+
+
+
+ 1
+ 1
+
+
+ 0
+ wxID_ANY
+
+ 0
+
+ m_FineAdjustXscaleOpt
+ protected
+
+
+
+
+ Set X scale adjust for exact scale plotting
+
+ wxFILTER_NONE
+ wxDefaultValidator
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ wxTOP|wxRIGHT|wxLEFT
+ 0
+
+
+
+ 1
+ 1
+
+
+ 0
+ wxID_ANY
+ Y scale adjust
+
+
+ m_staticText8
+ protected
+
+
+
+
+
+
+ wxFILTER_NONE
+ wxDefaultValidator
+
+
+
+
+ -1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT
+ 0
+
+
+
+ 1
+ 1
+
+
+ 0
+ wxID_ANY
+
+ 0
+
+ m_FineAdjustYscaleOpt
+ protected
+
+
+
+
+
+
+ wxFILTER_NONE
+ wxDefaultValidator
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ wxEXPAND
+ 1
+
+ 20
+ protected
+ 0
+
+
+
+ 5
+ wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND
+ 0
+
+
+
+ 1
+ 1
+ 1
+
+
+ 0
+ ID_EXEC_PLOT
+ Plot
+
+
+ m_PlotButton
+ protected
+
+
+
+
+
+
+ wxFILTER_NONE
+ wxDefaultValidator
+
+
+
+
+ Plot
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND
+ 0
+
+
+
+ 1
+ 0
+ 1
+
+
+ 0
+ ID_SAVE_OPT_PLOT
+ Save Options
+
+
+ m_buttonSaveOpt
+ protected
+
+
+
+
+
+
+ wxFILTER_NONE
+ wxDefaultValidator
+
+
+
+
+ SaveOptPlot
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND
+ 0
+
+
+
+ 1
+ 0
+ 1
+
+
+ 0
+ ID_CREATE_DRILL_FILE
+ Generate drill file
+
+
+ m_buttonDrill
+ protected
+
+
+
+
+
+
+ wxFILTER_NONE
+ wxDefaultValidator
+
+
+
+
+ CreateDrillFile
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND
+ 0
+
+
+
+ 1
+ 0
+ 1
+
+
+ 0
+ wxID_CANCEL
+ Quit
+
+
+ m_buttonQuit
+ protected
+
+
+
+
+
+
+ wxFILTER_NONE
+ wxDefaultValidator
+
+
+
+
+ OnQuit
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ wxTOP|wxRIGHT|wxLEFT
+ 0
+
+
+
+ 1
+ 1
+
+
+ 0
+ wxID_ANY
+ Messages:
+
+
+ m_staticText2
+ protected
+
+
+
+
+
+
+ wxFILTER_NONE
+ wxDefaultValidator
+
+
+
+
+ -1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND
+ 1
+
+
+
+ 1
+ 1
+
+
+ 0
+ wxID_ANY
+
+ 0
+ -1,120
+ m_MessagesBox
+ protected
+
+
+ wxTE_MULTILINE
+
+
+
+ wxFILTER_NONE
+ wxDefaultValidator
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pcbnew/dialogs/dialog_plot_base.h b/pcbnew/dialogs/dialog_plot_base.h
index 09b94e00b9..e7b5418e1e 100644
--- a/pcbnew/dialogs/dialog_plot_base.h
+++ b/pcbnew/dialogs/dialog_plot_base.h
@@ -1,113 +1,114 @@
-///////////////////////////////////////////////////////////////////////////
-// C++ code generated with wxFormBuilder (version Sep 8 2010)
-// http://www.wxformbuilder.org/
-//
-// PLEASE DO "NOT" EDIT THIS FILE!
-///////////////////////////////////////////////////////////////////////////
-
-#ifndef __dialog_plot_base__
-#define __dialog_plot_base__
-
-#include
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-///////////////////////////////////////////////////////////////////////////
-
-///////////////////////////////////////////////////////////////////////////////
-/// Class DIALOG_PLOT_BASE
-///////////////////////////////////////////////////////////////////////////////
-class DIALOG_PLOT_BASE : public wxDialog
-{
- private:
-
- protected:
- enum
- {
- ID_USE_GERBER_EXTENSIONS = 1000,
- ID_ALLOW_PRINT_PAD_ON_SILKSCREEN,
- ID_PRINT_VALUE,
- ID_PRINT_REF,
- ID_PRINT_MODULE_TEXTS,
- ID_FORCE_PRINT_INVISIBLE_TEXT,
- ID_DRILL_SHAPE_OPT,
- ID_BROWSE_OUTPUT_DIRECTORY,
- ID_MIROR_OPT,
- ID_MASKVIA_OPT,
- ID_EXEC_PLOT,
- ID_SAVE_OPT_PLOT,
- ID_CREATE_DRILL_FILE,
- };
-
- wxStaticBoxSizer* m_CopperLayersBoxSizer;
- wxStaticBoxSizer* m_TechnicalLayersBoxSizer;
- wxCheckBox* m_Use_Gerber_Extensions;
- wxCheckBox* m_Exclude_Edges_Pcb;
- wxCheckBox* m_Plot_Sheet_Ref;
- wxCheckBox* m_Plot_Pads_on_Silkscreen;
- wxCheckBox* m_Plot_Text_Value;
- wxCheckBox* m_Plot_Text_Ref;
- wxCheckBox* m_Plot_Text_Div;
- wxCheckBox* m_Plot_Invisible_Text;
- wxRadioBox* m_Drill_Shape_Opt;
- wxRadioBox* m_Scale_Opt;
- wxRadioBox* m_PlotModeOpt;
- wxRadioBox* m_Choice_Plot_Offset;
- wxRadioBox* m_PlotFormatOpt;
- wxStaticText* m_textPenSize;
- wxTextCtrl* m_HPGLPenSizeOpt;
- wxStaticText* m_staticText3;
- wxTextCtrl* m_HPGLPenSpeedOpt;
- wxStaticText* m_textPenOvr;
- wxTextCtrl* m_HPGLPenOverlayOpt;
- wxCheckBox* m_Plot_PS_Negative;
- wxTextCtrl* m_OutputDirectory;
- wxButton* m_BrowseButton;
- wxCheckBox* m_PlotMirorOpt;
- wxCheckBox* m_PlotNoViaOnMaskOpt;
- wxStaticText* m_staticText6;
- wxTextCtrl* m_LinesWidth;
-
- wxStaticText* m_staticText7;
- wxTextCtrl* m_FineAdjustXscaleOpt;
- wxStaticText* m_staticText8;
- wxTextCtrl* m_FineAdjustYscaleOpt;
-
- wxButton* m_PlotButton;
- wxButton* m_buttonSaveOpt;
- wxButton* m_buttonDrill;
- wxButton* m_buttonQuit;
- wxStaticText* m_staticText2;
- wxTextCtrl* m_MessagesBox;
-
- // Virtual event handlers, overide them in your derived class
- virtual void OnCloseWindow( wxCloseEvent& event ) { event.Skip(); }
- virtual void OnInitDialog( wxInitDialogEvent& event ) { event.Skip(); }
- virtual void SetPlotFormat( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnOutputDirectoryBrowseClicked( wxCommandEvent& event ) { event.Skip(); }
- virtual void Plot( wxCommandEvent& event ) { event.Skip(); }
- virtual void SaveOptPlot( wxCommandEvent& event ) { event.Skip(); }
- virtual void CreateDrillFile( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnQuit( wxCommandEvent& event ) { event.Skip(); }
-
-
- public:
-
- DIALOG_PLOT_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Plot"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 575,590 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
- ~DIALOG_PLOT_BASE();
-
-};
-
-#endif //__dialog_plot_base__
+///////////////////////////////////////////////////////////////////////////
+// C++ code generated with wxFormBuilder (version Sep 8 2010)
+// http://www.wxformbuilder.org/
+//
+// PLEASE DO "NOT" EDIT THIS FILE!
+///////////////////////////////////////////////////////////////////////////
+
+#ifndef __dialog_plot_base__
+#define __dialog_plot_base__
+
+#include
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+///////////////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////////////////
+/// Class DIALOG_PLOT_BASE
+///////////////////////////////////////////////////////////////////////////////
+class DIALOG_PLOT_BASE : public wxDialog
+{
+ private:
+
+ protected:
+ enum
+ {
+ ID_USE_GERBER_EXTENSIONS = 1000,
+ ID_ALLOW_PRINT_PAD_ON_SILKSCREEN,
+ ID_PRINT_VALUE,
+ ID_PRINT_REF,
+ ID_PRINT_MODULE_TEXTS,
+ ID_FORCE_PRINT_INVISIBLE_TEXT,
+ ID_DRILL_SHAPE_OPT,
+ ID_BROWSE_OUTPUT_DIRECTORY,
+ ID_MIROR_OPT,
+ ID_MASKVIA_OPT,
+ ID_EXEC_PLOT,
+ ID_SAVE_OPT_PLOT,
+ ID_CREATE_DRILL_FILE,
+ };
+
+ wxStaticBoxSizer* m_CopperLayersBoxSizer;
+ wxStaticBoxSizer* m_TechnicalLayersBoxSizer;
+ wxCheckBox* m_Use_Gerber_Extensions;
+ wxCheckBox* m_Exclude_Edges_Pcb;
+ wxCheckBox* m_SubtractMaskFromSilk;
+ wxCheckBox* m_Plot_Sheet_Ref;
+ wxCheckBox* m_Plot_Pads_on_Silkscreen;
+ wxCheckBox* m_Plot_Text_Value;
+ wxCheckBox* m_Plot_Text_Ref;
+ wxCheckBox* m_Plot_Text_Div;
+ wxCheckBox* m_Plot_Invisible_Text;
+ wxRadioBox* m_Drill_Shape_Opt;
+ wxRadioBox* m_Scale_Opt;
+ wxRadioBox* m_PlotModeOpt;
+ wxRadioBox* m_Choice_Plot_Offset;
+ wxRadioBox* m_PlotFormatOpt;
+ wxStaticText* m_textPenSize;
+ wxTextCtrl* m_HPGLPenSizeOpt;
+ wxStaticText* m_staticText3;
+ wxTextCtrl* m_HPGLPenSpeedOpt;
+ wxStaticText* m_textPenOvr;
+ wxTextCtrl* m_HPGLPenOverlayOpt;
+ wxCheckBox* m_Plot_PS_Negative;
+ wxTextCtrl* m_OutputDirectory;
+ wxButton* m_BrowseButton;
+ wxCheckBox* m_PlotMirorOpt;
+ wxCheckBox* m_PlotNoViaOnMaskOpt;
+ wxStaticText* m_staticText6;
+ wxTextCtrl* m_LinesWidth;
+
+ wxStaticText* m_staticText7;
+ wxTextCtrl* m_FineAdjustXscaleOpt;
+ wxStaticText* m_staticText8;
+ wxTextCtrl* m_FineAdjustYscaleOpt;
+
+ wxButton* m_PlotButton;
+ wxButton* m_buttonSaveOpt;
+ wxButton* m_buttonDrill;
+ wxButton* m_buttonQuit;
+ wxStaticText* m_staticText2;
+ wxTextCtrl* m_MessagesBox;
+
+ // Virtual event handlers, overide them in your derived class
+ virtual void OnCloseWindow( wxCloseEvent& event ) { event.Skip(); }
+ virtual void OnInitDialog( wxInitDialogEvent& event ) { event.Skip(); }
+ virtual void SetPlotFormat( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnOutputDirectoryBrowseClicked( wxCommandEvent& event ) { event.Skip(); }
+ virtual void Plot( wxCommandEvent& event ) { event.Skip(); }
+ virtual void SaveOptPlot( wxCommandEvent& event ) { event.Skip(); }
+ virtual void CreateDrillFile( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnQuit( wxCommandEvent& event ) { event.Skip(); }
+
+
+ public:
+
+ DIALOG_PLOT_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Plot"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 575,590 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
+ ~DIALOG_PLOT_BASE();
+
+};
+
+#endif //__dialog_plot_base__
diff --git a/pcbnew/pcbplot.cpp b/pcbnew/pcbplot.cpp
index 8216b5e2c8..e507d5a13f 100644
--- a/pcbnew/pcbplot.cpp
+++ b/pcbnew/pcbplot.cpp
@@ -35,6 +35,7 @@
// PCB_Plot_Options constructor: set the default values for plot options:
PCB_Plot_Options::PCB_Plot_Options()
{
+ subtractMaskFromSilk = true;
Sel_Texte_Reference = true;
Sel_Texte_Valeur = true;
Sel_Texte_Divers = true;
@@ -248,6 +249,8 @@ void DIALOG_PLOT::Init_Dialog()
// Option for excluding contents of "Edges Pcb" layer
m_Exclude_Edges_Pcb->SetValue( g_pcb_plot_options.Exclude_Edges_Pcb );
+ m_SubtractMaskFromSilk->SetValue( g_pcb_plot_options.GetSubtractMaskFromSilk() );
+
// Option to plot page references:
if( m_Parent->m_Print_Sheet_Ref )
{
@@ -364,6 +367,7 @@ void DIALOG_PLOT::SetPlotFormat( wxCommandEvent& event )
m_HPGLPenOverlayOpt->Enable( false );
m_Exclude_Edges_Pcb->SetValue( false );
m_Exclude_Edges_Pcb->Enable( false );
+ m_SubtractMaskFromSilk->Enable( false );
m_Use_Gerber_Extensions->Enable( false );
m_Scale_Opt->Enable( true );
m_FineAdjustXscaleOpt->Enable( true );
@@ -383,6 +387,7 @@ void DIALOG_PLOT::SetPlotFormat( wxCommandEvent& event )
m_HPGLPenSpeedOpt->Enable( false );
m_HPGLPenOverlayOpt->Enable( false );
m_Exclude_Edges_Pcb->Enable( true );
+ m_SubtractMaskFromSilk->Enable( true );
m_Use_Gerber_Extensions->Enable( true );
m_Scale_Opt->SetSelection( 1 );
m_Scale_Opt->Enable( false );
@@ -403,6 +408,7 @@ void DIALOG_PLOT::SetPlotFormat( wxCommandEvent& event )
m_HPGLPenOverlayOpt->Enable( true );
m_Exclude_Edges_Pcb->SetValue( false );
m_Exclude_Edges_Pcb->Enable( false );
+ m_SubtractMaskFromSilk->Enable( false );
m_Use_Gerber_Extensions->Enable( false );
m_Scale_Opt->Enable( true );
m_FineAdjustXscaleOpt->Enable( false );
@@ -423,6 +429,7 @@ void DIALOG_PLOT::SetPlotFormat( wxCommandEvent& event )
m_HPGLPenOverlayOpt->Enable( false );
m_Exclude_Edges_Pcb->SetValue( false );
m_Exclude_Edges_Pcb->Enable( false );
+ m_SubtractMaskFromSilk->Enable( false );
m_Use_Gerber_Extensions->Enable( false );
m_Scale_Opt->Enable( false );
m_Scale_Opt->SetSelection( 1 );
@@ -441,6 +448,8 @@ void DIALOG_PLOT::SaveOptPlot( wxCommandEvent& event )
{
g_pcb_plot_options.Exclude_Edges_Pcb = m_Exclude_Edges_Pcb->GetValue();
+ g_pcb_plot_options.SetSubtractMaskFromSilk( m_SubtractMaskFromSilk->GetValue() );
+
if( m_Plot_Sheet_Ref )
g_pcb_plot_options.Plot_Frame_Ref = m_Plot_Sheet_Ref->GetValue();
diff --git a/pcbnew/pcbplot.h b/pcbnew/pcbplot.h
index 491320a766..a9b756b5d9 100644
--- a/pcbnew/pcbplot.h
+++ b/pcbnew/pcbplot.h
@@ -64,12 +64,16 @@ public:
double ScaleAdjX;
double ScaleAdjY;
+private:
wxString outputDirectory;
+ bool subtractMaskFromSilk;
public:
PCB_Plot_Options();
void SetOutputDirectory( wxString aDir ) { outputDirectory = aDir; };
wxString GetOutputDirectory() { return outputDirectory; };
+ void SetSubtractMaskFromSilk( bool aSubtract ) { subtractMaskFromSilk = aSubtract; };
+ bool GetSubtractMaskFromSilk() { return subtractMaskFromSilk; };
};
extern PCB_Plot_Options g_pcb_plot_options;
diff --git a/pcbnew/plot_rtn.cpp b/pcbnew/plot_rtn.cpp
index cc09ebadc1..34078be583 100644
--- a/pcbnew/plot_rtn.cpp
+++ b/pcbnew/plot_rtn.cpp
@@ -746,6 +746,24 @@ void WinEDA_BasePcbFrame::Plot_Layer( PLOTTER* plotter, int Layer,
default:
Plot_Serigraphie( plotter, layer_mask, trace_mode );
+ // Gerber: Subtract soldermask from silkscreen if enabled
+ if( plotter->GetPlotterType() == PLOT_FORMAT_GERBER
+ && g_pcb_plot_options.GetSubtractMaskFromSilk() )
+ {
+ if( Layer == SILKSCREEN_N_FRONT )
+ {
+ layer_mask = g_TabOneLayerMask[SOLDERMASK_N_FRONT];
+ }
+ else
+ {
+ layer_mask = g_TabOneLayerMask[SOLDERMASK_N_BACK];
+ }
+ // Set layer polarity to negative
+ plotter->SetLayerPolarity( false );
+ Plot_Standard_Layer( plotter, layer_mask,
+ g_pcb_plot_options.DrawViaOnMaskLayer,
+ trace_mode );
+ }
break;
}
}