diff --git a/gerbview/dcode.cpp b/gerbview/dcode.cpp index f8a43bb263..5e1dc793c3 100644 --- a/gerbview/dcode.cpp +++ b/gerbview/dcode.cpp @@ -154,134 +154,6 @@ int D_CODE::GetShapeDim( GERBER_DRAW_ITEM* aParent ) } -int GERBVIEW_FRAME::ReadDCodeDefinitionFile( const wxString& D_Code_FullFileName ) -{ - int current_Dcode, ii; - char* ptcar; - int dimH, dimV, drill, dummy; - float fdimH, fdimV, fdrill; - char c_type_outil[256]; - char line[GERBER_BUFZ]; - wxString msg; - D_CODE* dcode; - FILE* dest; - LAYER_NUM layer = getActiveLayer(); - int type_outil; - - if( g_GERBER_List[layer] == NULL ) - g_GERBER_List[layer] = new GERBER_IMAGE( this, layer ); - - GERBER_IMAGE* gerber = g_GERBER_List[layer]; - - - /* Updating gerber scale: */ - double dcode_scale = IU_PER_MILS; // By uniting dCode = mil, - // internal unit = IU_PER_MILS - current_Dcode = 0; - - if( D_Code_FullFileName.IsEmpty() ) - return 0; - - dest = wxFopen( D_Code_FullFileName, wxT( "rt" ) ); - if( dest == 0 ) - { - msg.Printf( _( "File <%s> not found" ), GetChars( D_Code_FullFileName ) ); - DisplayError( this, msg, 10 ); - return -1; - } - - gerber->InitToolTable(); - - while( fgets( line, sizeof(line) - 1, dest ) != NULL ) - { - if( *line == ';' ) - continue; - - if( strlen( line ) < 10 ) - continue; /* Skip blank line. */ - - dcode = NULL; - current_Dcode = 0; - - /* Determine of the type of file from D_Code. */ - ptcar = line; - ii = 0; - - while( *ptcar ) - if( *(ptcar++) == ',' ) - ii++; - - if( ii >= 6 ) /* value in mils */ - { - sscanf( line, "%d,%d,%d,%d,%d,%d,%d", &ii, - &dimH, &dimV, &drill, &dummy, &dummy, &type_outil ); - - dimH = KiROUND( dimH * dcode_scale ); - dimV = KiROUND( dimV * dcode_scale ); - drill = KiROUND( drill * dcode_scale ); - - if( ii < 1 ) - ii = 1; - - current_Dcode = ii - 1 + FIRST_DCODE; - } - else /* Values in inches are converted to mils. */ - { - fdrill = 0; - current_Dcode = 0; - - sscanf( line, "%f,%f,%1s", &fdimV, &fdimH, c_type_outil ); - ptcar = line; - - while( *ptcar ) - { - if( *ptcar == 'D' ) - { - sscanf( ptcar + 1, "%d,%f", ¤t_Dcode, &fdrill ); - break; - } - else - { - ptcar++; - } - } - - dimH = KiROUND( fdimH * dcode_scale * 1000 ); - dimV = KiROUND( fdimV * dcode_scale * 1000 ); - drill = KiROUND( fdrill * dcode_scale * 1000 ); - - if( strchr( "CLROP", c_type_outil[0] ) ) - { - type_outil = (APERTURE_T) c_type_outil[0]; - } - else - { - fclose( dest ); - return -2; - } - } - - /* Update the list of d_codes if consistent. */ - if( current_Dcode < FIRST_DCODE ) - continue; - - if( current_Dcode >= TOOLS_MAX_COUNT ) - continue; - - dcode = gerber->GetDCODE( current_Dcode ); - dcode->m_Size.x = dimH; - dcode->m_Size.y = dimV; - dcode->m_Shape = (APERTURE_T) type_outil; - dcode->m_Drill.x = dcode->m_Drill.y = drill; - dcode->m_Defined = true; - } - - fclose( dest ); - - return 1; -} - - void GERBVIEW_FRAME::CopyDCodesSizeToItems() { static D_CODE dummy( 999 ); //Used if D_CODE not found in list diff --git a/gerbview/events_called_functions.cpp b/gerbview/events_called_functions.cpp index 828021cb2d..6efd44786d 100644 --- a/gerbview/events_called_functions.cpp +++ b/gerbview/events_called_functions.cpp @@ -29,7 +29,6 @@ BEGIN_EVENT_TABLE( GERBVIEW_FRAME, EDA_DRAW_FRAME ) EVT_TOOL( wxID_FILE, GERBVIEW_FRAME::Files_io ) EVT_TOOL( ID_GERBVIEW_ERASE_ALL, GERBVIEW_FRAME::Files_io ) EVT_TOOL( ID_GERBVIEW_LOAD_DRILL_FILE, GERBVIEW_FRAME::Files_io ) - EVT_TOOL( ID_GERBVIEW_LOAD_DCODE_FILE, GERBVIEW_FRAME::Files_io ) EVT_TOOL( ID_NEW_BOARD, GERBVIEW_FRAME::Files_io ) EVT_TOOL( ID_GERBVIEW_SET_PAGE_BORDER, GERBVIEW_FRAME::Process_Special_Functions ) diff --git a/gerbview/files.cpp b/gerbview/files.cpp index 14cb8fc4df..a4e22938aa 100644 --- a/gerbview/files.cpp +++ b/gerbview/files.cpp @@ -90,11 +90,6 @@ void GERBVIEW_FRAME::Files_io( wxCommandEvent& event ) m_canvas->Refresh(); break; - case ID_GERBVIEW_LOAD_DCODE_FILE: - LoadDCodeFile( wxEmptyString ); - m_canvas->Refresh(); - break; - default: wxFAIL_MSG( wxT( "File_io: unexpected command id" ) ); break; @@ -290,29 +285,3 @@ bool GERBVIEW_FRAME::LoadExcellonFiles( const wxString& aFullFileName ) return true; } - - -bool GERBVIEW_FRAME::LoadDCodeFile( const wxString& aFullFileName ) -{ - wxString wildcard; - wxFileName fn = aFullFileName; - - if( !fn.IsOk() ) - { - wildcard = _( "Gerber DCODE files" ); - wildcard += wxT(" ") + AllFilesWildcard; - fn = m_lastFileName; - wxFileDialog dlg( this, _( "Load GERBER DCODE File" ), - fn.GetPath(), fn.GetFullName(), wildcard, - wxFD_OPEN | wxFD_FILE_MUST_EXIST ); - - if( dlg.ShowModal() == wxID_CANCEL ) - return false; - - fn = dlg.GetPath(); - } - - ReadDCodeDefinitionFile( fn.GetFullPath() ); - CopyDCodesSizeToItems(); - return true; -} diff --git a/gerbview/gerbview.cpp b/gerbview/gerbview.cpp index a79cf2038a..57d2b8462f 100644 --- a/gerbview/gerbview.cpp +++ b/gerbview/gerbview.cpp @@ -26,12 +26,11 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ - #include +#include #include #include #include #include -//#include #include #include diff --git a/gerbview/gerbview_frame.h b/gerbview/gerbview_frame.h index d12e00d840..98cf6fe83d 100644 --- a/gerbview/gerbview_frame.h +++ b/gerbview/gerbview_frame.h @@ -379,14 +379,14 @@ public: /** * Function ReFillLayerWidget * changes out all the layers in m_Layers and may be called upon - * loading a new BOARD. + * loading new gerber files. */ void ReFillLayerWidget(); /** * Function setActiveLayer * will change the currently active layer to \a aLayer and also - * update the PCB_LAYER_WIDGET. + * update the GERBER_LAYER_WIDGET. */ void setActiveLayer( LAYER_NUM aLayer, bool doLayerWidgetUpdate = true ); @@ -412,7 +412,7 @@ public: /** * Function syncLayerWidget - * updates the currently "selected" layer within the PCB_LAYER_WIDGET. + * updates the currently "selected" layer within the GERBER_LAYER_WIDGET. * The currently active layer is defined by the return value of getActiveLayer(). *

* This function cannot be inline without including layer_widget.h in @@ -453,10 +453,11 @@ public: /** * Load applications settings specific to the Pcbnew. * - * This overrides the base class PCB_BASE_FRAME::LoadSettings() to + * This overrides the base class EDA_DRAW_FRAME::LoadSettings() to * handle settings specific common to the PCB layout application. It - * calls down to the base class to load settings common to all PCB type - * drawing frames. Please put your application settings for Pcbnew here + * calls down to the base class to load settings common to all + * EDA_DRAW_FRAME type drawing frames. + * Please put your application settings for Pcbnew here * to avoid having application settings loaded all over the place. */ virtual void LoadSettings(); @@ -464,10 +465,10 @@ public: /** * Save applications settings common to PCB draw frame objects. * - * This overrides the base class PCB_BASE_FRAME::SaveSettings() to - * save settings specific to the PCB layout application main window. It - * calls down to the base class to save settings common to all PCB type - * drawing frames. Please put your application settings for Pcbnew here + * This overrides the base class EDA_DRAW_FRAME::SaveSettings() to + * save settings specific to the gerbview application main window. It + * calls down to the base class to save settings common to all + * drawing frames. Please put your application settings for Gerbview here * to avoid having application settings saved all over the place. */ virtual void SaveSettings(); @@ -638,42 +639,6 @@ public: void GeneralControl( wxDC* aDC, const wxPoint& aPosition, int aHotKey = 0 ); - /** - * Read a DCode file (not used with RX274X files , just with RS274D old files). - * Note: there is no standard for DCode file. - * Just read a file format created by early versions of Pcbnew. - * @return false if file not read (cancellation) - * true if OK - * @ aparm aFullFileName = name of file to load. - * if empty, or if the file does not exist, a file dialog is opened - */ - bool LoadDCodeFile( const wxString& aFullFileName ); - - /** - * Function ReadDCodeDefinitionFile - * reads in a dcode file assuming ALSPCB file format with ';' indicating - * comments. - *

- * Format is like CSV but with optional ';' delineated comments:
- * tool, Horiz, Vert, drill, vitesse, acc. ,Type ; [DCODE (commentaire)]
- * ex: 1, 12, 12, 0, 0, 0, 3 ; D10 - *

- * Format:
- * Ver, Hor, Type, Tool [,Drill]
- * example: 0.012, 0.012, L , D10
- * - * Load all found dcodes into a table of D_CODE instantiations. - * @param D_Code_FullFileName The name of the file to read from. - * @return int -
- * -1 = file not found
- * -2 = parsing problem
- * 0 = the \a D_Code_FullFileName is empty, no reading - * is done but an empty GERBER is put into - * g_GERBER_List[]
- * 1 = read OK
- */ - int ReadDCodeDefinitionFile( const wxString& D_Code_FullFileName ); - /** * Set Size Items (Lines, Flashes) from DCodes List */ diff --git a/gerbview/gerbview_id.h b/gerbview/gerbview_id.h index 3adc44b6ed..9304b8e2cb 100644 --- a/gerbview/gerbview_id.h +++ b/gerbview/gerbview_id.h @@ -17,7 +17,6 @@ enum gerbview_ids ID_GERBVIEW_SHOW_LIST_DCODES, ID_GERBVIEW_LOAD_DRILL_FILE, - ID_GERBVIEW_LOAD_DCODE_FILE, ID_GERBVIEW_ERASE_ALL, ID_TOOLBARH_GERBER_SELECT_ACTIVE_DCODE, ID_GERBVIEW_SHOW_SOURCE, diff --git a/gerbview/menubar.cpp b/gerbview/menubar.cpp index 982de72de6..6ea327a46b 100644 --- a/gerbview/menubar.cpp +++ b/gerbview/menubar.cpp @@ -71,12 +71,6 @@ void GERBVIEW_FRAME::ReCreateMenuBar( void ) _( "Load excellon drill file" ), KiBitmap( gerbview_drill_file_xpm ) ); - // Dcodes - AddMenuItem( fileMenu, ID_GERBVIEW_LOAD_DCODE_FILE, - _( "Load &DCodes" ), - _( "Load D-Codes definition file" ), - KiBitmap( gerber_open_dcode_file_xpm ) ); - // Recent gerber files static wxMenu* openRecentGbrMenu; diff --git a/gerbview/readgerb.cpp b/gerbview/readgerb.cpp index 74a9cb9ea3..01ae04cb4f 100644 --- a/gerbview/readgerb.cpp +++ b/gerbview/readgerb.cpp @@ -162,13 +162,15 @@ bool GERBVIEW_FRAME::Read_GERBER_File( const wxString& GERBER_FullFileName, dlg.ShowModal(); } - /* Init DCodes list and perhaps read a DCODES file, - * if the gerber file is only a RS274D file - * (i.e. without any aperture information) + /* if the gerber file is only a RS274D file + * (i.e. without any aperture information), wran the user: */ if( !gerber->m_Has_DCode ) { - return LoadDCodeFile( D_Code_FullFileName ); + msg = _("Warning: this file has no D-Code definition\n" + "It is perhaps an old RS274D file\n" + "Therefore the size of items is undefined"); + wxMessageBox( msg ); } return true;