diff --git a/pcbnew/dialogs/dialog_export_step.cpp b/pcbnew/dialogs/dialog_export_step.cpp
index c637990c25..d6b798fb82 100644
--- a/pcbnew/dialogs/dialog_export_step.cpp
+++ b/pcbnew/dialogs/dialog_export_step.cpp
@@ -6,6 +6,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2016 Cirilo Bernardo
+ * Copyright (C) 2016-2017 KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -30,6 +31,8 @@
#include "wxPcbStruct.h"
#include "kiface_i.h"
+#include "confirm.h"
+
#include "pcbnew.h"
#include "class_board.h"
#include "dialog_export_step_base.h"
@@ -176,9 +179,32 @@ public:
event.Skip();
}
+ bool TransferDataFromWindow() override;
};
+bool DIALOG_EXPORT_STEP::TransferDataFromWindow()
+{
+ if( !wxDialog::TransferDataFromWindow() )
+ return false;
+
+ wxFileName fn = m_filePickerSTEP->GetFileName();
+
+ if( fn.FileExists() )
+ {
+ wxString msg( _( "File: " ) );
+ msg.append( fn.GetFullPath() );
+ msg.append( "\n" );
+ msg.append( _( "already exists. Do you want overwrite this file?" ) );
+
+ if( wxMessageBox( msg, _( "STEP Export" ), wxYES_NO | wxICON_QUESTION, this ) == wxNO )
+ return false;
+ }
+
+ return true;
+}
+
+
void PCB_EDIT_FRAME::OnExportSTEP( wxCommandEvent& event )
{
@@ -189,8 +215,8 @@ void PCB_EDIT_FRAME::OnExportSTEP( wxCommandEvent& event )
{
if( !doAutoSave() )
{
- wxMessageBox( _( "STEP export failed; please save the PCB and try again" ),
- _( "STEP Export" ) );
+ DisplayErrorMessage( this,
+ _( "STEP export failed! Please save the PCB and try again" ) );
return;
}
@@ -211,45 +237,13 @@ void PCB_EDIT_FRAME::OnExportSTEP( wxCommandEvent& event )
DIALOG_EXPORT_STEP dlg( this );
dlg.FilePicker()->SetPath( brdFile.GetFullPath() );
- bool fileOverwrite = false;
- wxString outputFile;
- while( !fileOverwrite )
- {
- if ( dlg.ShowModal() != wxID_OK )
- return;
+ if ( dlg.ShowModal() != wxID_OK )
+ return;
- brdFile = dlg.FilePicker()->GetPath();
- brdFile.SetExt( "stp" );
- outputFile = brdFile.GetFullPath();
-
- if( wxFile::Exists( outputFile ) )
- {
- wxString msg( _( "File: " ) );
- msg.append( outputFile );
- msg.append( "\n" );
- msg.append( _( "File exists, overwrite?" ) );
- int resp = wxMessageBox( msg, _( "STEP Export" ), wxYES_NO | wxCANCEL, this );
-
- switch( resp )
- {
- case wxCANCEL:
- return;
-
- case wxYES:
- fileOverwrite = true;
- break;
-
- default:
- break;
- }
- }
- else
- {
- fileOverwrite = true;
- }
- }
+ wxString outputFile = dlg.FilePicker()->GetPath();
+ brdFile.SetExt( brdExt );
outputFile.Prepend( "\"" );
outputFile.Append( "\"" );
bool aUseDrillOrg = dlg.GetDrillOrgOption();
@@ -307,10 +301,7 @@ void PCB_EDIT_FRAME::OnExportSTEP( wxCommandEvent& event )
if( result )
{
- wxMessageBox(
- _( "Unable to create STEP file; check that the board has a valid outline and models." ),
- _( "STEP Export" ), wxOK );
+ DisplayErrorMessage( this, _( "Unable to create STEP file. Check that the board has a "
+ "valid outline and models." ), cmdK2S );
}
-
- return;
}
diff --git a/pcbnew/dialogs/dialog_export_step_base.cpp b/pcbnew/dialogs/dialog_export_step_base.cpp
index f60336a589..a4a9db454c 100644
--- a/pcbnew/dialogs/dialog_export_step_base.cpp
+++ b/pcbnew/dialogs/dialog_export_step_base.cpp
@@ -1,196 +1,182 @@
-///////////////////////////////////////////////////////////////////////////
-// C++ code generated with wxFormBuilder (version Sep 8 2016)
-// http://www.wxformbuilder.org/
-//
-// PLEASE DO "NOT" EDIT THIS FILE!
-///////////////////////////////////////////////////////////////////////////
-
-#include "dialog_export_step_base.h"
-
-///////////////////////////////////////////////////////////////////////////
-
-DIALOG_EXPORT_STEP_BASE::DIALOG_EXPORT_STEP_BASE( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : DIALOG_SHIM( parent, id, title, pos, size, style )
-{
- this->SetSizeHints( wxDefaultSize, wxDefaultSize );
-
- wxBoxSizer* bSizerSTEPFile;
- bSizerSTEPFile = new wxBoxSizer( wxVERTICAL );
-
- m_txtBrdFile = new wxStaticText( this, wxID_ANY, _("STEP File name:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_txtBrdFile->Wrap( -1 );
- bSizerSTEPFile->Add( m_txtBrdFile, 0, wxALL, 5 );
-
- m_filePickerSTEP = new wxFilePickerCtrl( this, wxID_ANY, wxEmptyString, _("Select a STEP export filename"), wxT("*.stp,*.step"), wxDefaultPosition, wxSize( 450,-1 ), wxFLP_OVERWRITE_PROMPT|wxFLP_SAVE|wxFLP_USE_TEXTCTRL );
- bSizerSTEPFile->Add( m_filePickerSTEP, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
- m_staticline2 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizerSTEPFile->Add( m_staticline2, 0, wxEXPAND | wxALL, 5 );
-
- wxBoxSizer* bSizer2;
- bSizer2 = new wxBoxSizer( wxHORIZONTAL );
-
- wxBoxSizer* bSizer7;
- bSizer7 = new wxBoxSizer( wxVERTICAL );
-
- m_staticText6 = new wxStaticText( this, wxID_ANY, _("STEP coordinates origin options:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText6->Wrap( -1 );
- m_staticText6->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
-
- bSizer7->Add( m_staticText6, 0, wxALL, 5 );
-
- wxFlexGridSizer* fgSizer2;
- fgSizer2 = new wxFlexGridSizer( 0, 2, 0, 0 );
- fgSizer2->SetFlexibleDirection( wxBOTH );
- fgSizer2->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
-
-
- fgSizer2->Add( 0, 0, 1, wxEXPAND|wxRIGHT|wxLEFT, 5 );
-
- m_cbDrillOrigin = new wxCheckBox( this, wxID_ANY, _("Drill and plot axis origin"), wxDefaultPosition, wxDefaultSize, 0 );
- m_cbDrillOrigin->SetToolTip( _("Use the auxiliary axis origin (used in plot and drill geneation) as STEP coordinates origin.") );
-
- fgSizer2->Add( m_cbDrillOrigin, 0, wxALL, 5 );
-
-
- fgSizer2->Add( 0, 0, 1, wxEXPAND, 5 );
-
- m_cbAuxOrigin = new wxCheckBox( this, wxID_ANY, _("Grid origin"), wxDefaultPosition, wxDefaultSize, 0 );
- m_cbAuxOrigin->SetToolTip( _("Use the grid origin as STEP coordinates origin.") );
-
- fgSizer2->Add( m_cbAuxOrigin, 0, wxALL, 5 );
-
-
- fgSizer2->Add( 0, 0, 1, wxEXPAND, 5 );
-
- m_cbUserOrigin = new wxCheckBox( this, wxID_ANY, _("User defined origin"), wxDefaultPosition, wxDefaultSize, 0 );
- m_cbUserOrigin->SetToolTip( _("Use this option if you want to define a specific coordinate origin value.") );
-
- fgSizer2->Add( m_cbUserOrigin, 0, wxALL, 5 );
-
-
- bSizer7->Add( fgSizer2, 1, wxEXPAND, 5 );
-
-
- bSizer2->Add( bSizer7, 1, wxEXPAND|wxRIGHT|wxLEFT, 5 );
-
- wxBoxSizer* bSizer3;
- bSizer3 = new wxBoxSizer( wxVERTICAL );
-
- m_staticText2 = new wxStaticText( this, wxID_ANY, _("User defined origin:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText2->Wrap( -1 );
- m_staticText2->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
-
- bSizer3->Add( m_staticText2, 0, wxALL, 5 );
-
- wxFlexGridSizer* fgSizer1;
- fgSizer1 = new wxFlexGridSizer( 0, 3, 0, 0 );
- fgSizer1->SetFlexibleDirection( wxBOTH );
- fgSizer1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
-
-
- fgSizer1->Add( 0, 0, 1, wxEXPAND|wxRIGHT|wxLEFT, 5 );
-
- m_staticText5 = new wxStaticText( this, wxID_ANY, _("Units:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText5->Wrap( -1 );
- fgSizer1->Add( m_staticText5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
-
- wxString m_STEP_OrgUnitChoiceChoices[] = { _("mm"), _("inch") };
- int m_STEP_OrgUnitChoiceNChoices = sizeof( m_STEP_OrgUnitChoiceChoices ) / sizeof( wxString );
- m_STEP_OrgUnitChoice = new wxChoice( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_STEP_OrgUnitChoiceNChoices, m_STEP_OrgUnitChoiceChoices, 0 );
- m_STEP_OrgUnitChoice->SetSelection( 0 );
- fgSizer1->Add( m_STEP_OrgUnitChoice, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 5 );
-
-
- fgSizer1->Add( 0, 0, 1, wxEXPAND|wxRIGHT|wxLEFT, 5 );
-
- m_staticText3 = new wxStaticText( this, wxID_ANY, _("X Position:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText3->Wrap( -1 );
- fgSizer1->Add( m_staticText3, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
-
- m_STEP_Xorg = new wxTextCtrl( this, wxID_ANY, _("0"), wxDefaultPosition, wxDefaultSize, 0 );
- #ifdef __WXGTK__
- if ( !m_STEP_Xorg->HasFlag( wxTE_MULTILINE ) )
- {
- m_STEP_Xorg->SetMaxLength( 8 );
- }
- #else
- m_STEP_Xorg->SetMaxLength( 8 );
- #endif
- fgSizer1->Add( m_STEP_Xorg, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 5 );
-
-
- fgSizer1->Add( 0, 0, 1, wxEXPAND|wxRIGHT|wxLEFT, 5 );
-
- m_staticText4 = new wxStaticText( this, wxID_ANY, _("Y Position:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText4->Wrap( -1 );
- fgSizer1->Add( m_staticText4, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
-
- m_STEP_Yorg = new wxTextCtrl( this, wxID_ANY, _("0"), wxDefaultPosition, wxDefaultSize, 0 );
- #ifdef __WXGTK__
- if ( !m_STEP_Yorg->HasFlag( wxTE_MULTILINE ) )
- {
- m_STEP_Yorg->SetMaxLength( 8 );
- }
- #else
- m_STEP_Yorg->SetMaxLength( 8 );
- #endif
- fgSizer1->Add( m_STEP_Yorg, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 5 );
-
-
- bSizer3->Add( fgSizer1, 1, wxEXPAND, 5 );
-
-
- bSizer2->Add( bSizer3, 1, wxEXPAND|wxRIGHT|wxLEFT, 5 );
-
- wxBoxSizer* bSizer8;
- bSizer8 = new wxBoxSizer( wxVERTICAL );
-
- m_staticText7 = new wxStaticText( this, wxID_ANY, _("Other options:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText7->Wrap( -1 );
- m_staticText7->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
-
- bSizer8->Add( m_staticText7, 0, wxALL, 5 );
-
- wxFlexGridSizer* fgSizer3;
- fgSizer3 = new wxFlexGridSizer( 0, 2, 0, 0 );
- fgSizer3->SetFlexibleDirection( wxBOTH );
- fgSizer3->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
-
-
- fgSizer3->Add( 0, 0, 1, wxEXPAND|wxRIGHT|wxLEFT, 5 );
-
- m_cbRemoveVirtual = new wxCheckBox( this, wxID_ANY, _("Ignore Virtual Components"), wxDefaultPosition, wxDefaultSize, 0 );
- fgSizer3->Add( m_cbRemoveVirtual, 0, wxALL, 5 );
-
-
- bSizer8->Add( fgSizer3, 1, wxEXPAND, 5 );
-
-
- bSizer2->Add( bSizer8, 1, wxEXPAND|wxRIGHT|wxLEFT, 5 );
-
-
- bSizerSTEPFile->Add( bSizer2, 1, wxEXPAND, 5 );
-
- m_staticline1 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizerSTEPFile->Add( m_staticline1, 0, wxEXPAND | wxALL, 5 );
-
- m_sdbSizer = new wxStdDialogButtonSizer();
- m_sdbSizerOK = new wxButton( this, wxID_OK );
- m_sdbSizer->AddButton( m_sdbSizerOK );
- m_sdbSizerCancel = new wxButton( this, wxID_CANCEL );
- m_sdbSizer->AddButton( m_sdbSizerCancel );
- m_sdbSizer->Realize();
-
- bSizerSTEPFile->Add( m_sdbSizer, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 );
-
-
- this->SetSizer( bSizerSTEPFile );
- this->Layout();
- bSizerSTEPFile->Fit( this );
-
- this->Centre( wxBOTH );
-}
-
-DIALOG_EXPORT_STEP_BASE::~DIALOG_EXPORT_STEP_BASE()
-{
-}
+///////////////////////////////////////////////////////////////////////////
+// C++ code generated with wxFormBuilder (version Jun 5 2014)
+// http://www.wxformbuilder.org/
+//
+// PLEASE DO "NOT" EDIT THIS FILE!
+///////////////////////////////////////////////////////////////////////////
+
+#include "dialog_export_step_base.h"
+
+///////////////////////////////////////////////////////////////////////////
+
+DIALOG_EXPORT_STEP_BASE::DIALOG_EXPORT_STEP_BASE( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : DIALOG_SHIM( parent, id, title, pos, size, style )
+{
+ this->SetSizeHints( wxDefaultSize, wxDefaultSize );
+
+ wxBoxSizer* bSizerSTEPFile;
+ bSizerSTEPFile = new wxBoxSizer( wxVERTICAL );
+
+ m_txtBrdFile = new wxStaticText( this, wxID_ANY, _("File name:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_txtBrdFile->Wrap( -1 );
+ bSizerSTEPFile->Add( m_txtBrdFile, 0, wxALL, 5 );
+
+ m_filePickerSTEP = new wxFilePickerCtrl( this, wxID_ANY, wxEmptyString, _("Select a STEP export filename"), wxT("STEP files (*.stp;*.step)|*.stp;*.step"), wxDefaultPosition, wxSize( -1,-1 ), wxFLP_SAVE|wxFLP_USE_TEXTCTRL );
+ bSizerSTEPFile->Add( m_filePickerSTEP, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+ m_staticline2 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizerSTEPFile->Add( m_staticline2, 0, wxEXPAND | wxALL, 5 );
+
+ wxBoxSizer* bSizer2;
+ bSizer2 = new wxBoxSizer( wxHORIZONTAL );
+
+ wxBoxSizer* bSizer7;
+ bSizer7 = new wxBoxSizer( wxVERTICAL );
+
+ m_staticText6 = new wxStaticText( this, wxID_ANY, _("Coordinate origin options:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText6->Wrap( -1 );
+ m_staticText6->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ bSizer7->Add( m_staticText6, 0, wxALL, 5 );
+
+ wxFlexGridSizer* fgSizer2;
+ fgSizer2 = new wxFlexGridSizer( 0, 2, 0, 0 );
+ fgSizer2->SetFlexibleDirection( wxBOTH );
+ fgSizer2->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+
+
+ fgSizer2->Add( 0, 0, 1, wxEXPAND|wxRIGHT|wxLEFT, 5 );
+
+ m_cbDrillOrigin = new wxCheckBox( this, wxID_ANY, _("Drill and plot axis origin"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_cbDrillOrigin->SetToolTip( _("Use the auxiliary axis origin (used in plot and drill geneation) as STEP coordinates origin.") );
+
+ fgSizer2->Add( m_cbDrillOrigin, 0, wxALL, 5 );
+
+
+ fgSizer2->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_cbAuxOrigin = new wxCheckBox( this, wxID_ANY, _("Grid origin"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_cbAuxOrigin->SetToolTip( _("Use the grid origin as STEP coordinates origin.") );
+
+ fgSizer2->Add( m_cbAuxOrigin, 0, wxALL, 5 );
+
+
+ fgSizer2->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_cbUserOrigin = new wxCheckBox( this, wxID_ANY, _("User defined origin"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_cbUserOrigin->SetToolTip( _("Use this option if you want to define a specific coordinate origin value.") );
+
+ fgSizer2->Add( m_cbUserOrigin, 0, wxALL, 5 );
+
+
+ bSizer7->Add( fgSizer2, 1, wxEXPAND, 5 );
+
+
+ bSizer2->Add( bSizer7, 1, wxEXPAND|wxRIGHT|wxLEFT, 5 );
+
+ wxBoxSizer* bSizer3;
+ bSizer3 = new wxBoxSizer( wxVERTICAL );
+
+ m_staticText2 = new wxStaticText( this, wxID_ANY, _("User defined origin:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText2->Wrap( -1 );
+ m_staticText2->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ bSizer3->Add( m_staticText2, 0, wxALL, 5 );
+
+ wxFlexGridSizer* fgSizer1;
+ fgSizer1 = new wxFlexGridSizer( 0, 3, 0, 0 );
+ fgSizer1->SetFlexibleDirection( wxBOTH );
+ fgSizer1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+
+
+ fgSizer1->Add( 0, 0, 1, wxEXPAND|wxRIGHT|wxLEFT, 5 );
+
+ m_staticText5 = new wxStaticText( this, wxID_ANY, _("Units:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText5->Wrap( -1 );
+ fgSizer1->Add( m_staticText5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+
+ wxString m_STEP_OrgUnitChoiceChoices[] = { _("mm"), _("inch") };
+ int m_STEP_OrgUnitChoiceNChoices = sizeof( m_STEP_OrgUnitChoiceChoices ) / sizeof( wxString );
+ m_STEP_OrgUnitChoice = new wxChoice( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_STEP_OrgUnitChoiceNChoices, m_STEP_OrgUnitChoiceChoices, 0 );
+ m_STEP_OrgUnitChoice->SetSelection( 0 );
+ fgSizer1->Add( m_STEP_OrgUnitChoice, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 5 );
+
+
+ fgSizer1->Add( 0, 0, 1, wxEXPAND|wxRIGHT|wxLEFT, 5 );
+
+ m_staticText3 = new wxStaticText( this, wxID_ANY, _("X position:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText3->Wrap( -1 );
+ fgSizer1->Add( m_staticText3, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+
+ m_STEP_Xorg = new wxTextCtrl( this, wxID_ANY, _("0"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_STEP_Xorg->SetMaxLength( 8 );
+ fgSizer1->Add( m_STEP_Xorg, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 5 );
+
+
+ fgSizer1->Add( 0, 0, 1, wxEXPAND|wxRIGHT|wxLEFT, 5 );
+
+ m_staticText4 = new wxStaticText( this, wxID_ANY, _("Y position:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText4->Wrap( -1 );
+ fgSizer1->Add( m_staticText4, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+
+ m_STEP_Yorg = new wxTextCtrl( this, wxID_ANY, _("0"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_STEP_Yorg->SetMaxLength( 8 );
+ fgSizer1->Add( m_STEP_Yorg, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 5 );
+
+
+ bSizer3->Add( fgSizer1, 1, wxEXPAND, 5 );
+
+
+ bSizer2->Add( bSizer3, 1, wxEXPAND|wxRIGHT|wxLEFT, 5 );
+
+ wxBoxSizer* bSizer8;
+ bSizer8 = new wxBoxSizer( wxVERTICAL );
+
+ m_staticText7 = new wxStaticText( this, wxID_ANY, _("Other options:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText7->Wrap( -1 );
+ m_staticText7->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ bSizer8->Add( m_staticText7, 0, wxALL, 5 );
+
+ wxFlexGridSizer* fgSizer3;
+ fgSizer3 = new wxFlexGridSizer( 0, 2, 0, 0 );
+ fgSizer3->SetFlexibleDirection( wxBOTH );
+ fgSizer3->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+
+
+ fgSizer3->Add( 0, 0, 1, wxEXPAND|wxRIGHT|wxLEFT, 5 );
+
+ m_cbRemoveVirtual = new wxCheckBox( this, wxID_ANY, _("Ignore virtual components"), wxDefaultPosition, wxDefaultSize, 0 );
+ fgSizer3->Add( m_cbRemoveVirtual, 0, wxALL, 5 );
+
+
+ bSizer8->Add( fgSizer3, 1, wxEXPAND, 5 );
+
+
+ bSizer2->Add( bSizer8, 1, wxEXPAND|wxRIGHT|wxLEFT, 5 );
+
+
+ bSizerSTEPFile->Add( bSizer2, 1, wxEXPAND, 5 );
+
+ m_staticline1 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizerSTEPFile->Add( m_staticline1, 0, wxEXPAND | wxALL, 5 );
+
+ m_sdbSizer = new wxStdDialogButtonSizer();
+ m_sdbSizerOK = new wxButton( this, wxID_OK );
+ m_sdbSizer->AddButton( m_sdbSizerOK );
+ m_sdbSizerCancel = new wxButton( this, wxID_CANCEL );
+ m_sdbSizer->AddButton( m_sdbSizerCancel );
+ m_sdbSizer->Realize();
+
+ bSizerSTEPFile->Add( m_sdbSizer, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 );
+
+
+ this->SetSizer( bSizerSTEPFile );
+ this->Layout();
+ bSizerSTEPFile->Fit( this );
+
+ this->Centre( wxBOTH );
+}
+
+DIALOG_EXPORT_STEP_BASE::~DIALOG_EXPORT_STEP_BASE()
+{
+}
diff --git a/pcbnew/dialogs/dialog_export_step_base.fbp b/pcbnew/dialogs/dialog_export_step_base.fbp
index 34564daf59..580711e10e 100644
--- a/pcbnew/dialogs/dialog_export_step_base.fbp
+++ b/pcbnew/dialogs/dialog_export_step_base.fbp
@@ -1,1747 +1,1747 @@
-
-
-
-
-
+
+
+
+
+
+ C++
+ 1
+ source_name
+ 0
+ 0
+ res
+ UTF-8
+ connect
+ dialog_export_step_base
+ 1000
+ none
+ 1
+ dialog_export_step_base
+
+ .
+
+ 1
+ 1
+ 1
+ 1
+ UI
+ 1
+ 0
+
+ 0
+ wxAUI_MGR_DEFAULT
+
+ wxBOTH
+
+ 1
+ 1
+ impl_virtual
+
+
+
+ 0
+ wxID_ANY
+
+
+ DIALOG_EXPORT_STEP_BASE
+
+ -1,-1
+ wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER
+ DIALOG_SHIM; dialog_shim.h
+ Export STEP
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -1,-1
+ bSizerSTEPFile
+ wxVERTICAL
+ none
+
+ 5
+ wxALL
+ 0
+
+ 1
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+ 1
+ 0
+ 1
+
+ 1
+ 0
+ Dock
+ 0
+ Left
+ 1
+
+ 1
+
+ 0
+ 0
+ wxID_ANY
+ File name:
+
+ 0
+
+
+ 0
+
+ 1
+ m_txtBrdFile
+ 1
+
+
+ protected
+ 1
+
+ Resizable
+ 1
+
+
+
+ 0
+
+
+
+
+ -1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT
+ 0
+
+ 1
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+ 1
+ 0
+ 1
+
+ 1
+ 0
+ Dock
+ 0
+ Left
+ 1
+
+ 1
+
+ 0
+ 0
+ wxID_ANY
+
+ 0
+
+ Select a STEP export filename
+
+ 0
+ -1,-1
+ 1
+ m_filePickerSTEP
+ 1
+
+
+ protected
+ 1
+
+ Resizable
+ 1
+ -1,-1
+ wxFLP_SAVE|wxFLP_USE_TEXTCTRL
+
+ 0
+
+
+ wxFILTER_NONE
+ wxDefaultValidator
+
+
+ STEP files (*.stp;*.step)|*.stp;*.step
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ wxEXPAND | wxALL
+ 0
+
+ 1
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+ 1
+ 0
+ 1
+
+ 1
+ 0
+ Dock
+ 0
+ Left
+ 1
+
+ 1
+
+ 0
+ 0
+ wxID_ANY
+
+ 0
+
+
+ 0
+
+ 1
+ m_staticline2
+ 1
+
+
+ protected
+ 1
+
+ Resizable
+ 1
+
+ wxLI_HORIZONTAL
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ wxEXPAND
+ 1
+
+
+ bSizer2
+ wxHORIZONTAL
+ none
+
+ 5
+ wxEXPAND|wxRIGHT|wxLEFT
+ 1
+
+
+ bSizer7
+ wxVERTICAL
+ none
+
+ 5
+ wxALL
+ 0
+
+ 1
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+ 1
+ 0
+ 1
+
+ 1
+ 0
+ Dock
+ 0
+ Left
+ 1
+
+ 1
+ ,90,92,-1,70,0
+ 0
+ 0
+ wxID_ANY
+ Coordinate origin options:
+
+ 0
+
+
+ 0
+
+ 1
+ m_staticText6
+ 1
+
+
+ protected
+ 1
+
+ Resizable
+ 1
+
+
+
+ 0
+
+
+
+
+ -1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ wxEXPAND
+ 1
+
+ 2
+ wxBOTH
+
+
+ 0
+
+ fgSizer2
+ wxFLEX_GROWMODE_SPECIFIED
+ none
+ 0
+ 0
+
+ 5
+ wxEXPAND|wxRIGHT|wxLEFT
+ 1
+
+ 0
+ protected
+ 0
+
+
+
+ 5
+ wxALL
+ 0
+
+ 1
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+ 1
+ 0
+ 0
+ 1
+
+ 1
+ 0
+ Dock
+ 0
+ Left
+ 1
+
+ 1
+
+ 0
+ 0
+ wxID_ANY
+ Drill and plot axis origin
+
+ 0
+
+
+ 0
+
+ 1
+ m_cbDrillOrigin
+ 1
+
+
+ protected
+ 1
+
+ Resizable
+ 1
+
+
+
+ 0
+ Use the auxiliary axis origin (used in plot and drill geneation) as STEP coordinates origin.
+
+ wxFILTER_NONE
+ wxDefaultValidator
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ wxEXPAND
+ 1
+
+ 0
+ protected
+ 0
+
+
+
+ 5
+ wxALL
+ 0
+
+ 1
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+ 1
+ 0
+ 0
+ 1
+
+ 1
+ 0
+ Dock
+ 0
+ Left
+ 1
+
+ 1
+
+ 0
+ 0
+ wxID_ANY
+ Grid origin
+
+ 0
+
+
+ 0
+
+ 1
+ m_cbAuxOrigin
+ 1
+
+
+ protected
+ 1
+
+ Resizable
+ 1
+
+
+
+ 0
+ Use the grid origin as STEP coordinates origin.
+
+ wxFILTER_NONE
+ wxDefaultValidator
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ wxEXPAND
+ 1
+
+ 0
+ protected
+ 0
+
+
+
+ 5
+ wxALL
+ 0
+
+ 1
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+ 1
+ 0
+ 0
+ 1
+
+ 1
+ 0
+ Dock
+ 0
+ Left
+ 1
+
+ 1
+
+ 0
+ 0
+ wxID_ANY
+ User defined origin
+
+ 0
+
+
+ 0
+
+ 1
+ m_cbUserOrigin
+ 1
+
+
+ protected
+ 1
+
+ Resizable
+ 1
+
+
+
+ 0
+ Use this option if you want to define a specific coordinate origin value.
+
+ wxFILTER_NONE
+ wxDefaultValidator
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ wxEXPAND|wxRIGHT|wxLEFT
+ 1
+
+
+ bSizer3
+ wxVERTICAL
+ none
+
+ 5
+ wxALL
+ 0
+
+ 1
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+ 1
+ 0
+ 1
+
+ 1
+ 0
+ Dock
+ 0
+ Left
+ 1
+
+ 1
+ ,90,92,-1,70,0
+ 0
+ 0
+ wxID_ANY
+ User defined origin:
+
+ 0
+
+
+ 0
+
+ 1
+ m_staticText2
+ 1
+
+
+ protected
+ 1
+
+ Resizable
+ 1
+
+
+
+ 0
+
+
+
+
+ -1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ wxEXPAND
+ 1
+
+ 3
+ wxBOTH
+
+
+ 0
+
+ fgSizer1
+ wxFLEX_GROWMODE_SPECIFIED
+ none
+ 0
+ 0
+
+ 5
+ wxEXPAND|wxRIGHT|wxLEFT
+ 1
+
+ 0
+ protected
+ 0
+
+
+
+ 5
+ wxALIGN_CENTER_VERTICAL|wxALL
+ 0
+
+ 1
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+ 1
+ 0
+ 1
+
+ 1
+ 0
+ Dock
+ 0
+ Left
+ 1
+
+ 1
+
+ 0
+ 0
+ wxID_ANY
+ Units:
+
+ 0
+
+
+ 0
+
+ 1
+ m_staticText5
+ 1
+
+
+ protected
+ 1
+
+ Resizable
+ 1
+
+
+
+ 0
+
+
+
+
+ -1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND
+ 0
+
+ 1
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+ 1
+ 0
+ "mm" "inch"
+ 1
+
+ 1
+ 0
+ Dock
+ 0
+ Left
+ 1
+
+ 1
+
+ 0
+ 0
+ wxID_ANY
+
+ 0
+
+
+ 0
+
+ 1
+ m_STEP_OrgUnitChoice
+ 1
+
+
+ protected
+ 1
+
+ Resizable
+ 0
+ 1
+
+
+
+ 0
+
+
+ wxFILTER_NONE
+ wxDefaultValidator
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ wxEXPAND|wxRIGHT|wxLEFT
+ 1
+
+ 0
+ protected
+ 0
+
+
+
+ 5
+ wxALIGN_CENTER_VERTICAL|wxALL
+ 0
+
+ 1
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+ 1
+ 0
+ 1
+
+ 1
+ 0
+ Dock
+ 0
+ Left
+ 1
+
+ 1
+
+ 0
+ 0
+ wxID_ANY
+ X position:
+
+ 0
+
+
+ 0
+
+ 1
+ m_staticText3
+ 1
+
+
+ protected
+ 1
+
+ Resizable
+ 1
+
+
+
+ 0
+
+
+
+
+ -1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND
+ 0
+
+ 1
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+ 1
+ 0
+ 1
+
+ 1
+ 0
+ Dock
+ 0
+ Left
+ 1
+
+ 1
+
+ 0
+ 0
+ wxID_ANY
+
+ 0
+
+ 8
+
+ 0
+
+ 1
+ m_STEP_Xorg
+ 1
+
+
+ protected
+ 1
+
+ Resizable
+ 1
+
+
+
+ 0
+
+
+ wxFILTER_NUMERIC
+ wxTextValidator
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ wxEXPAND|wxRIGHT|wxLEFT
+ 1
+
+ 0
+ protected
+ 0
+
+
+
+ 5
+ wxALIGN_CENTER_VERTICAL|wxALL
+ 0
+
+ 1
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+ 1
+ 0
+ 1
+
+ 1
+ 0
+ Dock
+ 0
+ Left
+ 1
+
+ 1
+
+ 0
+ 0
+ wxID_ANY
+ Y position:
+
+ 0
+
+
+ 0
+
+ 1
+ m_staticText4
+ 1
+
+
+ protected
+ 1
+
+ Resizable
+ 1
+
+
+
+ 0
+
+
+
+
+ -1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND
+ 0
+
+ 1
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+ 1
+ 0
+ 1
+
+ 1
+ 0
+ Dock
+ 0
+ Left
+ 1
+
+ 1
+
+ 0
+ 0
+ wxID_ANY
+
+ 0
+
+ 8
+
+ 0
+
+ 1
+ m_STEP_Yorg
+ 1
+
+
+ protected
+ 1
+
+ Resizable
+ 1
+
+
+
+ 0
+
+
+ wxFILTER_NUMERIC
+ wxTextValidator
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ wxEXPAND|wxRIGHT|wxLEFT
+ 1
+
+
+ bSizer8
+ wxVERTICAL
+ none
+
+ 5
+ wxALL
+ 0
+
+ 1
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+ 1
+ 0
+ 1
+
+ 1
+ 0
+ Dock
+ 0
+ Left
+ 1
+
+ 1
+ ,90,92,-1,70,0
+ 0
+ 0
+ wxID_ANY
+ Other options:
+
+ 0
+
+
+ 0
+
+ 1
+ m_staticText7
+ 1
+
+
+ protected
+ 1
+
+ Resizable
+ 1
+
+
+
+ 0
+
+
+
+
+ -1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ wxEXPAND
+ 1
+
+ 2
+ wxBOTH
+
+
+ 0
+
+ fgSizer3
+ wxFLEX_GROWMODE_SPECIFIED
+ none
+ 0
+ 0
+
+ 5
+ wxEXPAND|wxRIGHT|wxLEFT
+ 1
+
+ 0
+ protected
+ 0
+
+
+
+ 5
+ wxALL
+ 0
+
+ 1
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+ 1
+ 0
+ 0
+ 1
+
+ 1
+ 0
+ Dock
+ 0
+ Left
+ 1
+
+ 1
+
+ 0
+ 0
+ wxID_ANY
+ Ignore virtual components
+
+ 0
+
+
+ 0
+
+ 1
+ m_cbRemoveVirtual
+ 1
+
+
+ protected
+ 1
+
+ Resizable
+ 1
+
+
+
+ 0
+
+
+ wxFILTER_NONE
+ wxDefaultValidator
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ wxEXPAND | wxALL
+ 0
+
+ 1
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+ 1
+ 0
+ 1
+
+ 1
+ 0
+ Dock
+ 0
+ Left
+ 1
+
+ 1
+
+ 0
+ 0
+ wxID_ANY
+
+ 0
+
+
+ 0
+
+ 1
+ m_staticline1
+ 1
+
+
+ protected
+ 1
+
+ Resizable
+ 1
+
+ wxLI_HORIZONTAL
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+ wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT
+ 0
+
+ 0
+ 1
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0
+
+ m_sdbSizer
+ protected
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pcbnew/dialogs/dialog_export_step_base.h b/pcbnew/dialogs/dialog_export_step_base.h
index 74e0a9108f..2ec3dc8338 100644
--- a/pcbnew/dialogs/dialog_export_step_base.h
+++ b/pcbnew/dialogs/dialog_export_step_base.h
@@ -1,71 +1,71 @@
-///////////////////////////////////////////////////////////////////////////
-// C++ code generated with wxFormBuilder (version Sep 8 2016)
-// http://www.wxformbuilder.org/
-//
-// PLEASE DO "NOT" EDIT THIS FILE!
-///////////////////////////////////////////////////////////////////////////
-
-#ifndef __DIALOG_EXPORT_STEP_BASE_H__
-#define __DIALOG_EXPORT_STEP_BASE_H__
-
-#include
-#include
-#include
-class DIALOG_SHIM;
-
-#include "dialog_shim.h"
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-///////////////////////////////////////////////////////////////////////////
-
-///////////////////////////////////////////////////////////////////////////////
-/// Class DIALOG_EXPORT_STEP_BASE
-///////////////////////////////////////////////////////////////////////////////
-class DIALOG_EXPORT_STEP_BASE : public DIALOG_SHIM
-{
- private:
-
- protected:
- wxStaticText* m_txtBrdFile;
- wxFilePickerCtrl* m_filePickerSTEP;
- wxStaticLine* m_staticline2;
- wxStaticText* m_staticText6;
- wxCheckBox* m_cbDrillOrigin;
- wxCheckBox* m_cbAuxOrigin;
- wxCheckBox* m_cbUserOrigin;
- wxStaticText* m_staticText2;
- wxStaticText* m_staticText5;
- wxChoice* m_STEP_OrgUnitChoice;
- wxStaticText* m_staticText3;
- wxTextCtrl* m_STEP_Xorg;
- wxStaticText* m_staticText4;
- wxTextCtrl* m_STEP_Yorg;
- wxStaticText* m_staticText7;
- wxCheckBox* m_cbRemoveVirtual;
- wxStaticLine* m_staticline1;
- wxStdDialogButtonSizer* m_sdbSizer;
- wxButton* m_sdbSizerOK;
- wxButton* m_sdbSizerCancel;
-
- public:
-
- DIALOG_EXPORT_STEP_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Export STEP"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
- ~DIALOG_EXPORT_STEP_BASE();
-
-};
-
-#endif //__DIALOG_EXPORT_STEP_BASE_H__
+///////////////////////////////////////////////////////////////////////////
+// C++ code generated with wxFormBuilder (version Jun 5 2014)
+// http://www.wxformbuilder.org/
+//
+// PLEASE DO "NOT" EDIT THIS FILE!
+///////////////////////////////////////////////////////////////////////////
+
+#ifndef __DIALOG_EXPORT_STEP_BASE_H__
+#define __DIALOG_EXPORT_STEP_BASE_H__
+
+#include
+#include
+#include
+class DIALOG_SHIM;
+
+#include "dialog_shim.h"
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+///////////////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////////////////
+/// Class DIALOG_EXPORT_STEP_BASE
+///////////////////////////////////////////////////////////////////////////////
+class DIALOG_EXPORT_STEP_BASE : public DIALOG_SHIM
+{
+ private:
+
+ protected:
+ wxStaticText* m_txtBrdFile;
+ wxFilePickerCtrl* m_filePickerSTEP;
+ wxStaticLine* m_staticline2;
+ wxStaticText* m_staticText6;
+ wxCheckBox* m_cbDrillOrigin;
+ wxCheckBox* m_cbAuxOrigin;
+ wxCheckBox* m_cbUserOrigin;
+ wxStaticText* m_staticText2;
+ wxStaticText* m_staticText5;
+ wxChoice* m_STEP_OrgUnitChoice;
+ wxStaticText* m_staticText3;
+ wxTextCtrl* m_STEP_Xorg;
+ wxStaticText* m_staticText4;
+ wxTextCtrl* m_STEP_Yorg;
+ wxStaticText* m_staticText7;
+ wxCheckBox* m_cbRemoveVirtual;
+ wxStaticLine* m_staticline1;
+ wxStdDialogButtonSizer* m_sdbSizer;
+ wxButton* m_sdbSizerOK;
+ wxButton* m_sdbSizerCancel;
+
+ public:
+
+ DIALOG_EXPORT_STEP_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Export STEP"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
+ ~DIALOG_EXPORT_STEP_BASE();
+
+};
+
+#endif //__DIALOG_EXPORT_STEP_BASE_H__
diff --git a/utils/kicad2step/kicad2step.cpp b/utils/kicad2step/kicad2step.cpp
index e70caece1d..affbbf5082 100644
--- a/utils/kicad2step/kicad2step.cpp
+++ b/utils/kicad2step/kicad2step.cpp
@@ -2,6 +2,7 @@
* This program source code file is part of kicad2mcad
*
* Copyright (C) 2016 Cirilo Bernardo
+ * Copyright (C) 2016-2017 KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -219,12 +220,16 @@ int KICAD2MCAD::OnRun()
else
tfname.Assign( m_outputFile );
+ // Set the file extension if the user's requested file name does not have an extension.
+ if( !tfname.HasExt() )
+ {
#ifdef SUPPORTS_IGES
- if( m_fmtIGES )
- tfname.SetExt( "igs" );
- else
+ if( m_fmtIGES )
+ tfname.SetExt( "igs" );
+ else
#endif
- tfname.SetExt( "stp" );
+ tfname.SetExt( "stp" );
+ }
wxString outfile = tfname.GetFullPath();