Loading pcbnew/dialogs/dialog_gendrill.cpp +23 −28 Original line number Diff line number Diff line Loading @@ -47,6 +47,7 @@ #define PrecisionKey wxT( "DrilltPrecisionOpt" ) #define MirrorKey wxT( "DrillMirrorYOpt" ) #define MinimalHeaderKey wxT( "DrillMinHeader" ) #define MergePTHNPTHKey wxT( "DrillMergePTHNPTH" ) #define UnitDrillInchKey wxT( "DrillUnit" ) #define DrillOriginIsAuxAxisKey wxT( "DrillAuxAxis" ) #define DrillMapFileTypeKey wxT( "DrillMapFileType" ) Loading @@ -68,7 +69,6 @@ void PCB_EDIT_FRAME::InstallDrillFrame( wxCommandEvent& event ) } DIALOG_GENDRILL::DIALOG_GENDRILL( PCB_EDIT_FRAME* parent ) : DIALOG_GENDRILL_BASE( parent ) { Loading @@ -88,6 +88,7 @@ int DIALOG_GENDRILL::m_UnitDrillIsInch = true; int DIALOG_GENDRILL::m_ZerosFormat = EXCELLON_WRITER::DECIMAL_FORMAT; bool DIALOG_GENDRILL::m_MinimalHeader = false; bool DIALOG_GENDRILL::m_Mirror = false; bool DIALOG_GENDRILL::m_Merge_PTH_NPTH = false; bool DIALOG_GENDRILL::m_DrillOriginIsAuxAxis = false; int DIALOG_GENDRILL::m_mapFileType = 1; Loading @@ -102,6 +103,7 @@ void DIALOG_GENDRILL::initDialog() { m_config->Read( ZerosFormatKey, &m_ZerosFormat ); m_config->Read( MirrorKey, &m_Mirror ); m_config->Read( MergePTHNPTHKey, &m_Merge_PTH_NPTH ); m_config->Read( MinimalHeaderKey, &m_MinimalHeader ); m_config->Read( UnitDrillInchKey, &m_UnitDrillIsInch ); m_config->Read( DrillOriginIsAuxAxisKey, &m_DrillOriginIsAuxAxis ); Loading @@ -124,6 +126,7 @@ void DIALOG_GENDRILL::InitDisplayParams() m_Choice_Drill_Offset->SetSelection( 1 ); m_Check_Mirror->SetValue( m_Mirror ); m_Check_Merge_PTH_NPTH->SetValue( m_Merge_PTH_NPTH ); m_Choice_Drill_Map->SetSelection( m_mapFileType ); m_ViaDrillValue->SetLabel( _( "Use Netclasses values" ) ); m_MicroViaDrillValue->SetLabel( _( "Use Netclasses values" ) ); Loading Loading @@ -213,6 +216,7 @@ void DIALOG_GENDRILL::UpdateConfig() m_config->Write( ZerosFormatKey, m_ZerosFormat ); m_config->Write( MirrorKey, m_Mirror ); m_config->Write( MinimalHeaderKey, m_MinimalHeader ); m_config->Write( MergePTHNPTHKey, m_Merge_PTH_NPTH ); m_config->Write( UnitDrillInchKey, m_UnitDrillIsInch ); m_config->Write( DrillOriginIsAuxAxisKey, m_DrillOriginIsAuxAxis ); m_config->Write( DrillMapFileTypeKey, m_mapFileType ); Loading @@ -229,6 +233,7 @@ void DIALOG_GENDRILL::OnGenMapFile( wxCommandEvent& event ) GenDrillAndMapFiles( false, true); } void DIALOG_GENDRILL::OnGenDrillFile( wxCommandEvent& event ) { GenDrillAndMapFiles(true, false); Loading Loading @@ -264,6 +269,7 @@ void DIALOG_GENDRILL::UpdatePrecisionOptions() m_staticTextPrecision->Enable( true ); } void DIALOG_GENDRILL::OnOutputDirectoryBrowseClicked( wxCommandEvent& event ) { // Build the absolute path of current output plot directory Loading Loading @@ -292,14 +298,14 @@ void DIALOG_GENDRILL::OnOutputDirectoryBrowseClicked( wxCommandEvent& event ) wxString boardFilePath = ( (wxFileName) m_parent->GetBoard()->GetFileName() ).GetPath(); if( !dirName.MakeRelativeTo( boardFilePath ) ) wxMessageBox( _( "Cannot make path relative (target volume different from board file volume)!" ), wxMessageBox( _( "Cannot make path relative. The target volume is different from board file volume!" ), _( "Plot Output Directory" ), wxOK | wxICON_ERROR ); } m_outputDirectoryName->SetValue( dirName.GetFullPath() ); } void DIALOG_GENDRILL::SetParams() { wxString msg; Loading @@ -315,6 +321,7 @@ void DIALOG_GENDRILL::SetParams() m_UnitDrillIsInch = (m_Choice_Unit->GetSelection() == 0) ? false : true; m_MinimalHeader = m_Check_Minimal->IsChecked(); m_Mirror = m_Check_Mirror->IsChecked(); m_Merge_PTH_NPTH = m_Check_Merge_PTH_NPTH->IsChecked(); m_ZerosFormat = m_Choice_Zeros_Format->GetSelection(); m_DrillOriginIsAuxAxis = m_Choice_Drill_Offset->GetSelection(); Loading @@ -331,16 +338,7 @@ void DIALOG_GENDRILL::SetParams() m_board->SetPlotOptions( m_plotOpts ); } /** * Function GenDrillAndMapFiles * Calls the functions to create EXCELLON drill files and/or drill map files * >When all holes are through holes, only one excellon file is created. * >When there are some partial holes (some blind or buried vias), * one excellon file is created, for all plated through holes, * and one file per layer pair, which have one or more holes, excluding * through holes, already in the first file. * one file for all Not Plated through holes */ void DIALOG_GENDRILL::GenDrillAndMapFiles(bool aGenDrill, bool aGenMap) { wxString layer_extend; /* added to the Board FileName to Loading Loading @@ -369,14 +367,14 @@ void DIALOG_GENDRILL::GenDrillAndMapFiles(bool aGenDrill, bool aGenMap) excellonWriter.SetFormat( !m_UnitDrillIsInch, (EXCELLON_WRITER::zeros_fmt) m_ZerosFormat, m_Precision.m_lhs, m_Precision.m_rhs ); excellonWriter.SetOptions( m_Mirror, m_MinimalHeader, m_FileDrillOffset ); excellonWriter.SetOptions( m_Mirror, m_MinimalHeader, m_FileDrillOffset, m_Merge_PTH_NPTH ); wxFileName fn; for( ; ; ) { excellonWriter.BuildHolesList( layer1, layer2, gen_through_holes ? false : true, gen_NPTH_holes ); excellonWriter.BuildHolesList( layer1, layer2, gen_through_holes ? false : true, gen_NPTH_holes, m_Merge_PTH_NPTH ); if( excellonWriter.GetHolesCount() > 0 ) // has holes? { Loading @@ -393,6 +391,7 @@ void DIALOG_GENDRILL::GenDrillAndMapFiles(bool aGenDrill, bool aGenMap) layer_extend << wxT( "-back" ); else layer_extend << wxT( "-inner" ) << layer1; if( layer2 == LAYER_N_FRONT ) layer_extend << wxT( "-front" ); else Loading @@ -401,6 +400,7 @@ void DIALOG_GENDRILL::GenDrillAndMapFiles(bool aGenDrill, bool aGenMap) fn.SetName( fn.GetName() + layer_extend ); wxString defaultPath = m_plotOpts.GetOutputDirectory(); if( defaultPath.IsEmpty() ) defaultPath = ::wxGetCwd(); Loading Loading @@ -466,6 +466,7 @@ void DIALOG_GENDRILL::GenDrillAndMapFiles(bool aGenDrill, bool aGenMap) gen_NPTH_holes = true; continue; } layer1++; layer2++; // use next layer pair Loading @@ -482,11 +483,6 @@ void DIALOG_GENDRILL::GenDrillAndMapFiles(bool aGenDrill, bool aGenMap) } /* * Create a plain text report file giving a list of drill values and drill count * for through holes, oblong holes, and for buried vias, * drill values and drill count per layer pair */ void DIALOG_GENDRILL::OnGenReportFile( wxCommandEvent& event ) { UpdateConfig(); // set params and Save drill options Loading @@ -497,6 +493,7 @@ void DIALOG_GENDRILL::OnGenReportFile( wxCommandEvent& event ) fn.SetExt( ReportFileExtension ); wxString defaultPath = m_plotOpts.GetOutputDirectory(); if( defaultPath.IsEmpty() ) defaultPath = ::wxGetCwd(); Loading @@ -512,7 +509,7 @@ void DIALOG_GENDRILL::OnGenReportFile( wxCommandEvent& event ) excellonWriter.SetFormat( !m_UnitDrillIsInch, (EXCELLON_WRITER::zeros_fmt) m_ZerosFormat, m_Precision.m_lhs, m_Precision.m_rhs ); excellonWriter.SetOptions( m_Mirror, m_MinimalHeader, m_FileDrillOffset ); excellonWriter.SetOptions( m_Mirror, m_MinimalHeader, m_FileDrillOffset, m_Merge_PTH_NPTH ); bool success = excellonWriter.GenDrillReportFile( dlg.GetPath() ); Loading Loading @@ -572,7 +569,7 @@ void DIALOG_GENDRILL::GenDrillMap( const wxString aFullFileNameWithoutExt, break; default: wxLogMessage( wxT( "DIALOG_GENDRILL::GenDrillMap() error, fmt % unkown" ), format ); wxLogMessage( wxT( "DIALOG_GENDRILL::GenDrillMap() error, fmt % unknown" ), format ); return; } Loading @@ -588,8 +585,7 @@ void DIALOG_GENDRILL::GenDrillMap( const wxString aFullFileNameWithoutExt, if( ! success ) { msg.Printf( _( "** Unable to create %s **\n" ), GetChars( fullFilename ) ); msg.Printf( _( "** Unable to create %s **\n" ), GetChars( fullFilename ) ); m_messagesBox->AppendText( msg ); return; } Loading @@ -598,5 +594,4 @@ void DIALOG_GENDRILL::GenDrillMap( const wxString aFullFileNameWithoutExt, msg.Printf( _( "Plot: %s OK\n" ), GetChars( fullFilename ) ); m_messagesBox->AppendText( msg ); } } pcbnew/dialogs/dialog_gendrill.h +24 −4 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ public: static int m_ZerosFormat; static bool m_MinimalHeader; static bool m_Mirror; static bool m_Merge_PTH_NPTH; static bool m_DrillOriginIsAuxAxis; /* Axis selection (main / auxiliary) * for drill origin coordinates */ DRILL_PRECISION m_Precision; // Selected precision for drill files Loading Loading @@ -71,13 +72,32 @@ private: void OnSelZerosFmtSelected( wxCommandEvent& event ); void OnGenDrillFile( wxCommandEvent& event ); void OnGenMapFile( wxCommandEvent& event ); /* * Create a plain text report file giving a list of drill values and drill count * for through holes, oblong holes, and for buried vias, * drill values and drill count per layer pair */ void OnGenReportFile( wxCommandEvent& event ); void OnCancelClick( wxCommandEvent& event ); void OnOutputDirectoryBrowseClicked( wxCommandEvent& event ); // Specific functions: void SetParams( void ); /** * Function GenDrillAndMapFiles * Calls the functions to create EXCELLON drill files and/or drill map files * >When all holes are through holes, only one excellon file is created. * >When there are some partial holes (some blind or buried vias), * one excellon file is created, for all plated through holes, * and one file per layer pair, which have one or more holes, excluding * through holes, already in the first file. * one file for all Not Plated through holes */ void GenDrillAndMapFiles( bool aGenDrill, bool aGenMap ); void GenDrillMap( const wxString aFileName, EXCELLON_WRITER& aExcellonWriter, PlotFormat format ); Loading pcbnew/dialogs/dialog_gendrill_base.cpp +4 −1 Original line number Diff line number Diff line /////////////////////////////////////////////////////////////////////////// // C++ code generated with wxFormBuilder (version Oct 8 2012) // C++ code generated with wxFormBuilder (version Feb 26 2014) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! Loading Loading @@ -88,6 +88,9 @@ DIALOG_GENDRILL_BASE::DIALOG_GENDRILL_BASE( wxWindow* parent, wxWindowID id, con m_Check_Minimal = new wxCheckBox( this, wxID_ANY, _("Minimal header"), wxDefaultPosition, wxDefaultSize, 0 ); sbOptSizer->Add( m_Check_Minimal, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); m_Check_Merge_PTH_NPTH = new wxCheckBox( this, wxID_ANY, _("Merge PTH and NPTH holes into one file"), wxDefaultPosition, wxDefaultSize, 0 ); sbOptSizer->Add( m_Check_Merge_PTH_NPTH, 0, wxALL, 5 ); bMiddleBoxSizer->Add( sbOptSizer, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 ); Loading pcbnew/dialogs/dialog_gendrill_base.fbp +91 −1 Original line number Diff line number Diff line <?xml version="1.0" encoding="UTF-8" standalone="yes" ?> <wxFormBuilder_Project> <FileVersion major="1" minor="11" /> <FileVersion major="1" minor="12" /> <object class="Project" expanded="1"> <property name="class_decoration"></property> <property name="code_generation">C++</property> Loading @@ -20,8 +20,10 @@ <property name="path">.</property> <property name="precompiled_header"></property> <property name="relative_path">1</property> <property name="skip_lua_events">1</property> <property name="skip_php_events">1</property> <property name="skip_python_events">1</property> <property name="ui_table">UI</property> <property name="use_enum">0</property> <property name="use_microsoft_bom">0</property> <object class="Dialog" expanded="1"> Loading Loading @@ -879,6 +881,94 @@ <event name="OnUpdateUI"></event> </object> </object> <object class="sizeritem" expanded="1"> <property name="border">5</property> <property name="flag">wxALL</property> <property name="proportion">0</property> <object class="wxCheckBox" expanded="1"> <property name="BottomDockable">1</property> <property name="LeftDockable">1</property> <property name="RightDockable">1</property> <property name="TopDockable">1</property> <property name="aui_layer"></property> <property name="aui_name"></property> <property name="aui_position"></property> <property name="aui_row"></property> <property name="best_size"></property> <property name="bg"></property> <property name="caption"></property> <property name="caption_visible">1</property> <property name="center_pane">0</property> <property name="checked">0</property> <property name="close_button">1</property> <property name="context_help"></property> <property name="context_menu">1</property> <property name="default_pane">0</property> <property name="dock">Dock</property> <property name="dock_fixed">0</property> <property name="docking">Left</property> <property name="enabled">1</property> <property name="fg"></property> <property name="floatable">1</property> <property name="font"></property> <property name="gripper">0</property> <property name="hidden">0</property> <property name="id">wxID_ANY</property> <property name="label">Merge PTH and NPTH holes into one file</property> <property name="max_size"></property> <property name="maximize_button">0</property> <property name="maximum_size"></property> <property name="min_size"></property> <property name="minimize_button">0</property> <property name="minimum_size"></property> <property name="moveable">1</property> <property name="name">m_Check_Merge_PTH_NPTH</property> <property name="pane_border">1</property> <property name="pane_position"></property> <property name="pane_size"></property> <property name="permission">protected</property> <property name="pin_button">1</property> <property name="pos"></property> <property name="resize">Resizable</property> <property name="show">1</property> <property name="size"></property> <property name="style"></property> <property name="subclass"></property> <property name="toolbar_pane">0</property> <property name="tooltip"></property> <property name="validator_data_type"></property> <property name="validator_style">wxFILTER_NONE</property> <property name="validator_type">wxDefaultValidator</property> <property name="validator_variable"></property> <property name="window_extra_style"></property> <property name="window_name"></property> <property name="window_style"></property> <event name="OnChar"></event> <event name="OnCheckBox"></event> <event name="OnEnterWindow"></event> <event name="OnEraseBackground"></event> <event name="OnKeyDown"></event> <event name="OnKeyUp"></event> <event name="OnKillFocus"></event> <event name="OnLeaveWindow"></event> <event name="OnLeftDClick"></event> <event name="OnLeftDown"></event> <event name="OnLeftUp"></event> <event name="OnMiddleDClick"></event> <event name="OnMiddleDown"></event> <event name="OnMiddleUp"></event> <event name="OnMotion"></event> <event name="OnMouseEvents"></event> <event name="OnMouseWheel"></event> <event name="OnPaint"></event> <event name="OnRightDClick"></event> <event name="OnRightDown"></event> <event name="OnRightUp"></event> <event name="OnSetFocus"></event> <event name="OnSize"></event> <event name="OnUpdateUI"></event> </object> </object> </object> </object> <object class="sizeritem" expanded="1"> Loading pcbnew/dialogs/dialog_gendrill_base.h +2 −1 Original line number Diff line number Diff line /////////////////////////////////////////////////////////////////////////// // C++ code generated with wxFormBuilder (version Oct 8 2012) // C++ code generated with wxFormBuilder (version Feb 26 2014) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! Loading Loading @@ -48,6 +48,7 @@ class DIALOG_GENDRILL_BASE : public DIALOG_SHIM wxRadioBox* m_Choice_Drill_Map; wxCheckBox* m_Check_Mirror; wxCheckBox* m_Check_Minimal; wxCheckBox* m_Check_Merge_PTH_NPTH; wxRadioBox* m_Choice_Drill_Offset; wxStaticBoxSizer* m_DefaultViasDrillSizer; wxStaticText* m_ViaDrillValue; Loading Loading
pcbnew/dialogs/dialog_gendrill.cpp +23 −28 Original line number Diff line number Diff line Loading @@ -47,6 +47,7 @@ #define PrecisionKey wxT( "DrilltPrecisionOpt" ) #define MirrorKey wxT( "DrillMirrorYOpt" ) #define MinimalHeaderKey wxT( "DrillMinHeader" ) #define MergePTHNPTHKey wxT( "DrillMergePTHNPTH" ) #define UnitDrillInchKey wxT( "DrillUnit" ) #define DrillOriginIsAuxAxisKey wxT( "DrillAuxAxis" ) #define DrillMapFileTypeKey wxT( "DrillMapFileType" ) Loading @@ -68,7 +69,6 @@ void PCB_EDIT_FRAME::InstallDrillFrame( wxCommandEvent& event ) } DIALOG_GENDRILL::DIALOG_GENDRILL( PCB_EDIT_FRAME* parent ) : DIALOG_GENDRILL_BASE( parent ) { Loading @@ -88,6 +88,7 @@ int DIALOG_GENDRILL::m_UnitDrillIsInch = true; int DIALOG_GENDRILL::m_ZerosFormat = EXCELLON_WRITER::DECIMAL_FORMAT; bool DIALOG_GENDRILL::m_MinimalHeader = false; bool DIALOG_GENDRILL::m_Mirror = false; bool DIALOG_GENDRILL::m_Merge_PTH_NPTH = false; bool DIALOG_GENDRILL::m_DrillOriginIsAuxAxis = false; int DIALOG_GENDRILL::m_mapFileType = 1; Loading @@ -102,6 +103,7 @@ void DIALOG_GENDRILL::initDialog() { m_config->Read( ZerosFormatKey, &m_ZerosFormat ); m_config->Read( MirrorKey, &m_Mirror ); m_config->Read( MergePTHNPTHKey, &m_Merge_PTH_NPTH ); m_config->Read( MinimalHeaderKey, &m_MinimalHeader ); m_config->Read( UnitDrillInchKey, &m_UnitDrillIsInch ); m_config->Read( DrillOriginIsAuxAxisKey, &m_DrillOriginIsAuxAxis ); Loading @@ -124,6 +126,7 @@ void DIALOG_GENDRILL::InitDisplayParams() m_Choice_Drill_Offset->SetSelection( 1 ); m_Check_Mirror->SetValue( m_Mirror ); m_Check_Merge_PTH_NPTH->SetValue( m_Merge_PTH_NPTH ); m_Choice_Drill_Map->SetSelection( m_mapFileType ); m_ViaDrillValue->SetLabel( _( "Use Netclasses values" ) ); m_MicroViaDrillValue->SetLabel( _( "Use Netclasses values" ) ); Loading Loading @@ -213,6 +216,7 @@ void DIALOG_GENDRILL::UpdateConfig() m_config->Write( ZerosFormatKey, m_ZerosFormat ); m_config->Write( MirrorKey, m_Mirror ); m_config->Write( MinimalHeaderKey, m_MinimalHeader ); m_config->Write( MergePTHNPTHKey, m_Merge_PTH_NPTH ); m_config->Write( UnitDrillInchKey, m_UnitDrillIsInch ); m_config->Write( DrillOriginIsAuxAxisKey, m_DrillOriginIsAuxAxis ); m_config->Write( DrillMapFileTypeKey, m_mapFileType ); Loading @@ -229,6 +233,7 @@ void DIALOG_GENDRILL::OnGenMapFile( wxCommandEvent& event ) GenDrillAndMapFiles( false, true); } void DIALOG_GENDRILL::OnGenDrillFile( wxCommandEvent& event ) { GenDrillAndMapFiles(true, false); Loading Loading @@ -264,6 +269,7 @@ void DIALOG_GENDRILL::UpdatePrecisionOptions() m_staticTextPrecision->Enable( true ); } void DIALOG_GENDRILL::OnOutputDirectoryBrowseClicked( wxCommandEvent& event ) { // Build the absolute path of current output plot directory Loading Loading @@ -292,14 +298,14 @@ void DIALOG_GENDRILL::OnOutputDirectoryBrowseClicked( wxCommandEvent& event ) wxString boardFilePath = ( (wxFileName) m_parent->GetBoard()->GetFileName() ).GetPath(); if( !dirName.MakeRelativeTo( boardFilePath ) ) wxMessageBox( _( "Cannot make path relative (target volume different from board file volume)!" ), wxMessageBox( _( "Cannot make path relative. The target volume is different from board file volume!" ), _( "Plot Output Directory" ), wxOK | wxICON_ERROR ); } m_outputDirectoryName->SetValue( dirName.GetFullPath() ); } void DIALOG_GENDRILL::SetParams() { wxString msg; Loading @@ -315,6 +321,7 @@ void DIALOG_GENDRILL::SetParams() m_UnitDrillIsInch = (m_Choice_Unit->GetSelection() == 0) ? false : true; m_MinimalHeader = m_Check_Minimal->IsChecked(); m_Mirror = m_Check_Mirror->IsChecked(); m_Merge_PTH_NPTH = m_Check_Merge_PTH_NPTH->IsChecked(); m_ZerosFormat = m_Choice_Zeros_Format->GetSelection(); m_DrillOriginIsAuxAxis = m_Choice_Drill_Offset->GetSelection(); Loading @@ -331,16 +338,7 @@ void DIALOG_GENDRILL::SetParams() m_board->SetPlotOptions( m_plotOpts ); } /** * Function GenDrillAndMapFiles * Calls the functions to create EXCELLON drill files and/or drill map files * >When all holes are through holes, only one excellon file is created. * >When there are some partial holes (some blind or buried vias), * one excellon file is created, for all plated through holes, * and one file per layer pair, which have one or more holes, excluding * through holes, already in the first file. * one file for all Not Plated through holes */ void DIALOG_GENDRILL::GenDrillAndMapFiles(bool aGenDrill, bool aGenMap) { wxString layer_extend; /* added to the Board FileName to Loading Loading @@ -369,14 +367,14 @@ void DIALOG_GENDRILL::GenDrillAndMapFiles(bool aGenDrill, bool aGenMap) excellonWriter.SetFormat( !m_UnitDrillIsInch, (EXCELLON_WRITER::zeros_fmt) m_ZerosFormat, m_Precision.m_lhs, m_Precision.m_rhs ); excellonWriter.SetOptions( m_Mirror, m_MinimalHeader, m_FileDrillOffset ); excellonWriter.SetOptions( m_Mirror, m_MinimalHeader, m_FileDrillOffset, m_Merge_PTH_NPTH ); wxFileName fn; for( ; ; ) { excellonWriter.BuildHolesList( layer1, layer2, gen_through_holes ? false : true, gen_NPTH_holes ); excellonWriter.BuildHolesList( layer1, layer2, gen_through_holes ? false : true, gen_NPTH_holes, m_Merge_PTH_NPTH ); if( excellonWriter.GetHolesCount() > 0 ) // has holes? { Loading @@ -393,6 +391,7 @@ void DIALOG_GENDRILL::GenDrillAndMapFiles(bool aGenDrill, bool aGenMap) layer_extend << wxT( "-back" ); else layer_extend << wxT( "-inner" ) << layer1; if( layer2 == LAYER_N_FRONT ) layer_extend << wxT( "-front" ); else Loading @@ -401,6 +400,7 @@ void DIALOG_GENDRILL::GenDrillAndMapFiles(bool aGenDrill, bool aGenMap) fn.SetName( fn.GetName() + layer_extend ); wxString defaultPath = m_plotOpts.GetOutputDirectory(); if( defaultPath.IsEmpty() ) defaultPath = ::wxGetCwd(); Loading Loading @@ -466,6 +466,7 @@ void DIALOG_GENDRILL::GenDrillAndMapFiles(bool aGenDrill, bool aGenMap) gen_NPTH_holes = true; continue; } layer1++; layer2++; // use next layer pair Loading @@ -482,11 +483,6 @@ void DIALOG_GENDRILL::GenDrillAndMapFiles(bool aGenDrill, bool aGenMap) } /* * Create a plain text report file giving a list of drill values and drill count * for through holes, oblong holes, and for buried vias, * drill values and drill count per layer pair */ void DIALOG_GENDRILL::OnGenReportFile( wxCommandEvent& event ) { UpdateConfig(); // set params and Save drill options Loading @@ -497,6 +493,7 @@ void DIALOG_GENDRILL::OnGenReportFile( wxCommandEvent& event ) fn.SetExt( ReportFileExtension ); wxString defaultPath = m_plotOpts.GetOutputDirectory(); if( defaultPath.IsEmpty() ) defaultPath = ::wxGetCwd(); Loading @@ -512,7 +509,7 @@ void DIALOG_GENDRILL::OnGenReportFile( wxCommandEvent& event ) excellonWriter.SetFormat( !m_UnitDrillIsInch, (EXCELLON_WRITER::zeros_fmt) m_ZerosFormat, m_Precision.m_lhs, m_Precision.m_rhs ); excellonWriter.SetOptions( m_Mirror, m_MinimalHeader, m_FileDrillOffset ); excellonWriter.SetOptions( m_Mirror, m_MinimalHeader, m_FileDrillOffset, m_Merge_PTH_NPTH ); bool success = excellonWriter.GenDrillReportFile( dlg.GetPath() ); Loading Loading @@ -572,7 +569,7 @@ void DIALOG_GENDRILL::GenDrillMap( const wxString aFullFileNameWithoutExt, break; default: wxLogMessage( wxT( "DIALOG_GENDRILL::GenDrillMap() error, fmt % unkown" ), format ); wxLogMessage( wxT( "DIALOG_GENDRILL::GenDrillMap() error, fmt % unknown" ), format ); return; } Loading @@ -588,8 +585,7 @@ void DIALOG_GENDRILL::GenDrillMap( const wxString aFullFileNameWithoutExt, if( ! success ) { msg.Printf( _( "** Unable to create %s **\n" ), GetChars( fullFilename ) ); msg.Printf( _( "** Unable to create %s **\n" ), GetChars( fullFilename ) ); m_messagesBox->AppendText( msg ); return; } Loading @@ -598,5 +594,4 @@ void DIALOG_GENDRILL::GenDrillMap( const wxString aFullFileNameWithoutExt, msg.Printf( _( "Plot: %s OK\n" ), GetChars( fullFilename ) ); m_messagesBox->AppendText( msg ); } }
pcbnew/dialogs/dialog_gendrill.h +24 −4 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ public: static int m_ZerosFormat; static bool m_MinimalHeader; static bool m_Mirror; static bool m_Merge_PTH_NPTH; static bool m_DrillOriginIsAuxAxis; /* Axis selection (main / auxiliary) * for drill origin coordinates */ DRILL_PRECISION m_Precision; // Selected precision for drill files Loading Loading @@ -71,13 +72,32 @@ private: void OnSelZerosFmtSelected( wxCommandEvent& event ); void OnGenDrillFile( wxCommandEvent& event ); void OnGenMapFile( wxCommandEvent& event ); /* * Create a plain text report file giving a list of drill values and drill count * for through holes, oblong holes, and for buried vias, * drill values and drill count per layer pair */ void OnGenReportFile( wxCommandEvent& event ); void OnCancelClick( wxCommandEvent& event ); void OnOutputDirectoryBrowseClicked( wxCommandEvent& event ); // Specific functions: void SetParams( void ); /** * Function GenDrillAndMapFiles * Calls the functions to create EXCELLON drill files and/or drill map files * >When all holes are through holes, only one excellon file is created. * >When there are some partial holes (some blind or buried vias), * one excellon file is created, for all plated through holes, * and one file per layer pair, which have one or more holes, excluding * through holes, already in the first file. * one file for all Not Plated through holes */ void GenDrillAndMapFiles( bool aGenDrill, bool aGenMap ); void GenDrillMap( const wxString aFileName, EXCELLON_WRITER& aExcellonWriter, PlotFormat format ); Loading
pcbnew/dialogs/dialog_gendrill_base.cpp +4 −1 Original line number Diff line number Diff line /////////////////////////////////////////////////////////////////////////// // C++ code generated with wxFormBuilder (version Oct 8 2012) // C++ code generated with wxFormBuilder (version Feb 26 2014) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! Loading Loading @@ -88,6 +88,9 @@ DIALOG_GENDRILL_BASE::DIALOG_GENDRILL_BASE( wxWindow* parent, wxWindowID id, con m_Check_Minimal = new wxCheckBox( this, wxID_ANY, _("Minimal header"), wxDefaultPosition, wxDefaultSize, 0 ); sbOptSizer->Add( m_Check_Minimal, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); m_Check_Merge_PTH_NPTH = new wxCheckBox( this, wxID_ANY, _("Merge PTH and NPTH holes into one file"), wxDefaultPosition, wxDefaultSize, 0 ); sbOptSizer->Add( m_Check_Merge_PTH_NPTH, 0, wxALL, 5 ); bMiddleBoxSizer->Add( sbOptSizer, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 ); Loading
pcbnew/dialogs/dialog_gendrill_base.fbp +91 −1 Original line number Diff line number Diff line <?xml version="1.0" encoding="UTF-8" standalone="yes" ?> <wxFormBuilder_Project> <FileVersion major="1" minor="11" /> <FileVersion major="1" minor="12" /> <object class="Project" expanded="1"> <property name="class_decoration"></property> <property name="code_generation">C++</property> Loading @@ -20,8 +20,10 @@ <property name="path">.</property> <property name="precompiled_header"></property> <property name="relative_path">1</property> <property name="skip_lua_events">1</property> <property name="skip_php_events">1</property> <property name="skip_python_events">1</property> <property name="ui_table">UI</property> <property name="use_enum">0</property> <property name="use_microsoft_bom">0</property> <object class="Dialog" expanded="1"> Loading Loading @@ -879,6 +881,94 @@ <event name="OnUpdateUI"></event> </object> </object> <object class="sizeritem" expanded="1"> <property name="border">5</property> <property name="flag">wxALL</property> <property name="proportion">0</property> <object class="wxCheckBox" expanded="1"> <property name="BottomDockable">1</property> <property name="LeftDockable">1</property> <property name="RightDockable">1</property> <property name="TopDockable">1</property> <property name="aui_layer"></property> <property name="aui_name"></property> <property name="aui_position"></property> <property name="aui_row"></property> <property name="best_size"></property> <property name="bg"></property> <property name="caption"></property> <property name="caption_visible">1</property> <property name="center_pane">0</property> <property name="checked">0</property> <property name="close_button">1</property> <property name="context_help"></property> <property name="context_menu">1</property> <property name="default_pane">0</property> <property name="dock">Dock</property> <property name="dock_fixed">0</property> <property name="docking">Left</property> <property name="enabled">1</property> <property name="fg"></property> <property name="floatable">1</property> <property name="font"></property> <property name="gripper">0</property> <property name="hidden">0</property> <property name="id">wxID_ANY</property> <property name="label">Merge PTH and NPTH holes into one file</property> <property name="max_size"></property> <property name="maximize_button">0</property> <property name="maximum_size"></property> <property name="min_size"></property> <property name="minimize_button">0</property> <property name="minimum_size"></property> <property name="moveable">1</property> <property name="name">m_Check_Merge_PTH_NPTH</property> <property name="pane_border">1</property> <property name="pane_position"></property> <property name="pane_size"></property> <property name="permission">protected</property> <property name="pin_button">1</property> <property name="pos"></property> <property name="resize">Resizable</property> <property name="show">1</property> <property name="size"></property> <property name="style"></property> <property name="subclass"></property> <property name="toolbar_pane">0</property> <property name="tooltip"></property> <property name="validator_data_type"></property> <property name="validator_style">wxFILTER_NONE</property> <property name="validator_type">wxDefaultValidator</property> <property name="validator_variable"></property> <property name="window_extra_style"></property> <property name="window_name"></property> <property name="window_style"></property> <event name="OnChar"></event> <event name="OnCheckBox"></event> <event name="OnEnterWindow"></event> <event name="OnEraseBackground"></event> <event name="OnKeyDown"></event> <event name="OnKeyUp"></event> <event name="OnKillFocus"></event> <event name="OnLeaveWindow"></event> <event name="OnLeftDClick"></event> <event name="OnLeftDown"></event> <event name="OnLeftUp"></event> <event name="OnMiddleDClick"></event> <event name="OnMiddleDown"></event> <event name="OnMiddleUp"></event> <event name="OnMotion"></event> <event name="OnMouseEvents"></event> <event name="OnMouseWheel"></event> <event name="OnPaint"></event> <event name="OnRightDClick"></event> <event name="OnRightDown"></event> <event name="OnRightUp"></event> <event name="OnSetFocus"></event> <event name="OnSize"></event> <event name="OnUpdateUI"></event> </object> </object> </object> </object> <object class="sizeritem" expanded="1"> Loading
pcbnew/dialogs/dialog_gendrill_base.h +2 −1 Original line number Diff line number Diff line /////////////////////////////////////////////////////////////////////////// // C++ code generated with wxFormBuilder (version Oct 8 2012) // C++ code generated with wxFormBuilder (version Feb 26 2014) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! Loading Loading @@ -48,6 +48,7 @@ class DIALOG_GENDRILL_BASE : public DIALOG_SHIM wxRadioBox* m_Choice_Drill_Map; wxCheckBox* m_Check_Mirror; wxCheckBox* m_Check_Minimal; wxCheckBox* m_Check_Merge_PTH_NPTH; wxRadioBox* m_Choice_Drill_Offset; wxStaticBoxSizer* m_DefaultViasDrillSizer; wxStaticText* m_ViaDrillValue; Loading