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 - 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + 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; } }