void GENDRILL_WRITER_BASE::CreateMapFilesSet( const wxString& aPlotDirectory, REPORTER * aReporter ) { wxFileName fn; wxString msg; std::vector<DRILL_LAYER_PAIR> hole_sets = getUniqueLayerPairs(); // append a pair representing the NPTH set of holes, for separate drill files. if( !m_merge_PTH_NPTH ) hole_sets.push_back( DRILL_LAYER_PAIR( F_Cu, B_Cu ) ); for( std::vector<DRILL_LAYER_PAIR>::const_iterator it = hole_sets.begin(); it != hole_sets.end(); ++it ) { DRILL_LAYER_PAIR pair = *it; // For separate drill files, the last layer pair is the NPTH drill file. bool doing_npth = m_merge_PTH_NPTH ? false : ( it == hole_sets.end() - 1 ); buildHolesList( pair, doing_npth ); // The file is created if it has holes, or if it is the non plated drill file // to be sure the NPTH file is up to date in separate files mode. if( getHolesCount() > 0 || doing_npth ) { fn = getDrillFileName( pair, doing_npth, m_merge_PTH_NPTH ); fn.SetPath( aPlotDirectory ); fn.SetExt( wxEmptyString ); // Will be added by GenDrillMap wxString fullfilename = fn.GetFullPath() + wxT( "-drl_map" ); fullfilename << wxT(".") << GetDefaultPlotExtension( m_mapFileFmt ); bool success = genDrillMapFile( fullfilename, m_mapFileFmt ); if( ! success ) { if( aReporter ) { msg.Printf( _( "** Unable to create %s **\n" ), GetChars( fullfilename ) ); aReporter->Report( msg ); } return; } else { if( aReporter ) { msg.Printf( _( "Create file %s\n" ), GetChars( fullfilename ) ); aReporter->Report( msg ); } } } } }
void GERBER_WRITER::CreateDrillandMapFilesSet( const wxString& aPlotDirectory, bool aGenDrill, bool aGenMap, REPORTER * aReporter ) { // Note: In Gerber drill files, NPTH and PTH are always separate files m_merge_PTH_NPTH = false; wxFileName fn; wxString msg; std::vector<DRILL_LAYER_PAIR> hole_sets = getUniqueLayerPairs(); // append a pair representing the NPTH set of holes, for separate drill files. // (Gerber drill files are separate files for PTH and NPTH) hole_sets.push_back( DRILL_LAYER_PAIR( F_Cu, B_Cu ) ); for( std::vector<DRILL_LAYER_PAIR>::const_iterator it = hole_sets.begin(); it != hole_sets.end(); ++it ) { DRILL_LAYER_PAIR pair = *it; // For separate drill files, the last layer pair is the NPTH drill file. bool doing_npth = ( it == hole_sets.end() - 1 ); buildHolesList( pair, doing_npth ); // The file is created if it has holes, or if it is the non plated drill file // to be sure the NPTH file is up to date in separate files mode. if( getHolesCount() > 0 || doing_npth ) { fn = getDrillFileName( pair, doing_npth, false ); fn.SetPath( aPlotDirectory ); if( aGenDrill ) { wxString fullFilename = fn.GetFullPath(); int result = createDrillFile( fullFilename, doing_npth, pair.first, pair.second ); if( result < 0 ) { if( aReporter ) { msg.Printf( _( "** Unable to create %s **\n" ), GetChars( fullFilename ) ); aReporter->Report( msg ); } break; } else { if( aReporter ) { msg.Printf( _( "Create file %s\n" ), GetChars( fullFilename ) ); aReporter->Report( msg ); } } } } } if( aGenMap ) CreateMapFilesSet( aPlotDirectory, aReporter ); }