Fix various STEP export dialog issues.
The file filter wild card was defined incorrectly causing the file picker to not display *.stp and *.step file extensions. Change the wildcard per wxFileDialog documentation. Prevent the file extension from being forced to .stp even when the user defined a different extension in the file picker. Override TransferDataFromWindow to test for file existence and warn user only once if a file overwrite can occur. Minor STEP export dialog string and layout improvements. Make kicad2step honor user's file extension rather than always setting it to .stp. Fixes lp:1709636 https://bugs.launchpad.net/kicad/+bug/1709636
This commit is contained in:
parent
8a1a3ed36c
commit
15478bda41
|
@ -6,6 +6,7 @@
|
||||||
* This program source code file is part of KiCad, a free EDA CAD application.
|
* This program source code file is part of KiCad, a free EDA CAD application.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2016 Cirilo Bernardo
|
* 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
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
@ -30,6 +31,8 @@
|
||||||
|
|
||||||
#include "wxPcbStruct.h"
|
#include "wxPcbStruct.h"
|
||||||
#include "kiface_i.h"
|
#include "kiface_i.h"
|
||||||
|
#include "confirm.h"
|
||||||
|
|
||||||
#include "pcbnew.h"
|
#include "pcbnew.h"
|
||||||
#include "class_board.h"
|
#include "class_board.h"
|
||||||
#include "dialog_export_step_base.h"
|
#include "dialog_export_step_base.h"
|
||||||
|
@ -176,9 +179,32 @@ public:
|
||||||
event.Skip();
|
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 )
|
void PCB_EDIT_FRAME::OnExportSTEP( wxCommandEvent& event )
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -189,8 +215,8 @@ void PCB_EDIT_FRAME::OnExportSTEP( wxCommandEvent& event )
|
||||||
{
|
{
|
||||||
if( !doAutoSave() )
|
if( !doAutoSave() )
|
||||||
{
|
{
|
||||||
wxMessageBox( _( "STEP export failed; please save the PCB and try again" ),
|
DisplayErrorMessage( this,
|
||||||
_( "STEP Export" ) );
|
_( "STEP export failed! Please save the PCB and try again" ) );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -211,45 +237,13 @@ void PCB_EDIT_FRAME::OnExportSTEP( wxCommandEvent& event )
|
||||||
|
|
||||||
DIALOG_EXPORT_STEP dlg( this );
|
DIALOG_EXPORT_STEP dlg( this );
|
||||||
dlg.FilePicker()->SetPath( brdFile.GetFullPath() );
|
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();
|
wxString outputFile = 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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
brdFile.SetExt( brdExt );
|
||||||
outputFile.Prepend( "\"" );
|
outputFile.Prepend( "\"" );
|
||||||
outputFile.Append( "\"" );
|
outputFile.Append( "\"" );
|
||||||
bool aUseDrillOrg = dlg.GetDrillOrgOption();
|
bool aUseDrillOrg = dlg.GetDrillOrgOption();
|
||||||
|
@ -307,10 +301,7 @@ void PCB_EDIT_FRAME::OnExportSTEP( wxCommandEvent& event )
|
||||||
|
|
||||||
if( result )
|
if( result )
|
||||||
{
|
{
|
||||||
wxMessageBox(
|
DisplayErrorMessage( this, _( "Unable to create STEP file. Check that the board has a "
|
||||||
_( "Unable to create STEP file; check that the board has a valid outline and models." ),
|
"valid outline and models." ), cmdK2S );
|
||||||
_( "STEP Export" ), wxOK );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,196 +1,182 @@
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
// C++ code generated with wxFormBuilder (version Sep 8 2016)
|
// C++ code generated with wxFormBuilder (version Jun 5 2014)
|
||||||
// http://www.wxformbuilder.org/
|
// http://www.wxformbuilder.org/
|
||||||
//
|
//
|
||||||
// PLEASE DO "NOT" EDIT THIS FILE!
|
// PLEASE DO "NOT" EDIT THIS FILE!
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
#include "dialog_export_step_base.h"
|
#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 )
|
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 );
|
this->SetSizeHints( wxDefaultSize, wxDefaultSize );
|
||||||
|
|
||||||
wxBoxSizer* bSizerSTEPFile;
|
wxBoxSizer* bSizerSTEPFile;
|
||||||
bSizerSTEPFile = new wxBoxSizer( wxVERTICAL );
|
bSizerSTEPFile = new wxBoxSizer( wxVERTICAL );
|
||||||
|
|
||||||
m_txtBrdFile = new wxStaticText( this, wxID_ANY, _("STEP File name:"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_txtBrdFile = new wxStaticText( this, wxID_ANY, _("File name:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_txtBrdFile->Wrap( -1 );
|
m_txtBrdFile->Wrap( -1 );
|
||||||
bSizerSTEPFile->Add( m_txtBrdFile, 0, wxALL, 5 );
|
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 );
|
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 );
|
bSizerSTEPFile->Add( m_filePickerSTEP, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
|
||||||
|
|
||||||
m_staticline2 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
|
m_staticline2 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
|
||||||
bSizerSTEPFile->Add( m_staticline2, 0, wxEXPAND | wxALL, 5 );
|
bSizerSTEPFile->Add( m_staticline2, 0, wxEXPAND | wxALL, 5 );
|
||||||
|
|
||||||
wxBoxSizer* bSizer2;
|
wxBoxSizer* bSizer2;
|
||||||
bSizer2 = new wxBoxSizer( wxHORIZONTAL );
|
bSizer2 = new wxBoxSizer( wxHORIZONTAL );
|
||||||
|
|
||||||
wxBoxSizer* bSizer7;
|
wxBoxSizer* bSizer7;
|
||||||
bSizer7 = new wxBoxSizer( wxVERTICAL );
|
bSizer7 = new wxBoxSizer( wxVERTICAL );
|
||||||
|
|
||||||
m_staticText6 = new wxStaticText( this, wxID_ANY, _("STEP coordinates origin options:"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_staticText6 = new wxStaticText( this, wxID_ANY, _("Coordinate origin options:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_staticText6->Wrap( -1 );
|
m_staticText6->Wrap( -1 );
|
||||||
m_staticText6->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
|
m_staticText6->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
|
||||||
|
|
||||||
bSizer7->Add( m_staticText6, 0, wxALL, 5 );
|
bSizer7->Add( m_staticText6, 0, wxALL, 5 );
|
||||||
|
|
||||||
wxFlexGridSizer* fgSizer2;
|
wxFlexGridSizer* fgSizer2;
|
||||||
fgSizer2 = new wxFlexGridSizer( 0, 2, 0, 0 );
|
fgSizer2 = new wxFlexGridSizer( 0, 2, 0, 0 );
|
||||||
fgSizer2->SetFlexibleDirection( wxBOTH );
|
fgSizer2->SetFlexibleDirection( wxBOTH );
|
||||||
fgSizer2->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
|
fgSizer2->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
|
||||||
|
|
||||||
|
|
||||||
fgSizer2->Add( 0, 0, 1, wxEXPAND|wxRIGHT|wxLEFT, 5 );
|
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 = 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.") );
|
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( m_cbDrillOrigin, 0, wxALL, 5 );
|
||||||
|
|
||||||
|
|
||||||
fgSizer2->Add( 0, 0, 1, wxEXPAND, 5 );
|
fgSizer2->Add( 0, 0, 1, wxEXPAND, 5 );
|
||||||
|
|
||||||
m_cbAuxOrigin = new wxCheckBox( this, wxID_ANY, _("Grid origin"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_cbAuxOrigin = new wxCheckBox( this, wxID_ANY, _("Grid origin"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_cbAuxOrigin->SetToolTip( _("Use the grid origin as STEP coordinates origin.") );
|
m_cbAuxOrigin->SetToolTip( _("Use the grid origin as STEP coordinates origin.") );
|
||||||
|
|
||||||
fgSizer2->Add( m_cbAuxOrigin, 0, wxALL, 5 );
|
fgSizer2->Add( m_cbAuxOrigin, 0, wxALL, 5 );
|
||||||
|
|
||||||
|
|
||||||
fgSizer2->Add( 0, 0, 1, wxEXPAND, 5 );
|
fgSizer2->Add( 0, 0, 1, wxEXPAND, 5 );
|
||||||
|
|
||||||
m_cbUserOrigin = new wxCheckBox( this, wxID_ANY, _("User defined origin"), wxDefaultPosition, wxDefaultSize, 0 );
|
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.") );
|
m_cbUserOrigin->SetToolTip( _("Use this option if you want to define a specific coordinate origin value.") );
|
||||||
|
|
||||||
fgSizer2->Add( m_cbUserOrigin, 0, wxALL, 5 );
|
fgSizer2->Add( m_cbUserOrigin, 0, wxALL, 5 );
|
||||||
|
|
||||||
|
|
||||||
bSizer7->Add( fgSizer2, 1, wxEXPAND, 5 );
|
bSizer7->Add( fgSizer2, 1, wxEXPAND, 5 );
|
||||||
|
|
||||||
|
|
||||||
bSizer2->Add( bSizer7, 1, wxEXPAND|wxRIGHT|wxLEFT, 5 );
|
bSizer2->Add( bSizer7, 1, wxEXPAND|wxRIGHT|wxLEFT, 5 );
|
||||||
|
|
||||||
wxBoxSizer* bSizer3;
|
wxBoxSizer* bSizer3;
|
||||||
bSizer3 = new wxBoxSizer( wxVERTICAL );
|
bSizer3 = new wxBoxSizer( wxVERTICAL );
|
||||||
|
|
||||||
m_staticText2 = new wxStaticText( this, wxID_ANY, _("User defined origin:"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_staticText2 = new wxStaticText( this, wxID_ANY, _("User defined origin:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_staticText2->Wrap( -1 );
|
m_staticText2->Wrap( -1 );
|
||||||
m_staticText2->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
|
m_staticText2->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
|
||||||
|
|
||||||
bSizer3->Add( m_staticText2, 0, wxALL, 5 );
|
bSizer3->Add( m_staticText2, 0, wxALL, 5 );
|
||||||
|
|
||||||
wxFlexGridSizer* fgSizer1;
|
wxFlexGridSizer* fgSizer1;
|
||||||
fgSizer1 = new wxFlexGridSizer( 0, 3, 0, 0 );
|
fgSizer1 = new wxFlexGridSizer( 0, 3, 0, 0 );
|
||||||
fgSizer1->SetFlexibleDirection( wxBOTH );
|
fgSizer1->SetFlexibleDirection( wxBOTH );
|
||||||
fgSizer1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
|
fgSizer1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
|
||||||
|
|
||||||
|
|
||||||
fgSizer1->Add( 0, 0, 1, wxEXPAND|wxRIGHT|wxLEFT, 5 );
|
fgSizer1->Add( 0, 0, 1, wxEXPAND|wxRIGHT|wxLEFT, 5 );
|
||||||
|
|
||||||
m_staticText5 = new wxStaticText( this, wxID_ANY, _("Units:"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_staticText5 = new wxStaticText( this, wxID_ANY, _("Units:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_staticText5->Wrap( -1 );
|
m_staticText5->Wrap( -1 );
|
||||||
fgSizer1->Add( m_staticText5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
|
fgSizer1->Add( m_staticText5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
|
||||||
|
|
||||||
wxString m_STEP_OrgUnitChoiceChoices[] = { _("mm"), _("inch") };
|
wxString m_STEP_OrgUnitChoiceChoices[] = { _("mm"), _("inch") };
|
||||||
int m_STEP_OrgUnitChoiceNChoices = sizeof( m_STEP_OrgUnitChoiceChoices ) / sizeof( wxString );
|
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 = new wxChoice( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_STEP_OrgUnitChoiceNChoices, m_STEP_OrgUnitChoiceChoices, 0 );
|
||||||
m_STEP_OrgUnitChoice->SetSelection( 0 );
|
m_STEP_OrgUnitChoice->SetSelection( 0 );
|
||||||
fgSizer1->Add( m_STEP_OrgUnitChoice, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 5 );
|
fgSizer1->Add( m_STEP_OrgUnitChoice, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 5 );
|
||||||
|
|
||||||
|
|
||||||
fgSizer1->Add( 0, 0, 1, wxEXPAND|wxRIGHT|wxLEFT, 5 );
|
fgSizer1->Add( 0, 0, 1, wxEXPAND|wxRIGHT|wxLEFT, 5 );
|
||||||
|
|
||||||
m_staticText3 = new wxStaticText( this, wxID_ANY, _("X Position:"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_staticText3 = new wxStaticText( this, wxID_ANY, _("X position:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_staticText3->Wrap( -1 );
|
m_staticText3->Wrap( -1 );
|
||||||
fgSizer1->Add( m_staticText3, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
|
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 = new wxTextCtrl( this, wxID_ANY, _("0"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
#ifdef __WXGTK__
|
m_STEP_Xorg->SetMaxLength( 8 );
|
||||||
if ( !m_STEP_Xorg->HasFlag( wxTE_MULTILINE ) )
|
fgSizer1->Add( m_STEP_Xorg, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 5 );
|
||||||
{
|
|
||||||
m_STEP_Xorg->SetMaxLength( 8 );
|
|
||||||
}
|
fgSizer1->Add( 0, 0, 1, wxEXPAND|wxRIGHT|wxLEFT, 5 );
|
||||||
#else
|
|
||||||
m_STEP_Xorg->SetMaxLength( 8 );
|
m_staticText4 = new wxStaticText( this, wxID_ANY, _("Y position:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
#endif
|
m_staticText4->Wrap( -1 );
|
||||||
fgSizer1->Add( m_STEP_Xorg, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 5 );
|
fgSizer1->Add( m_staticText4, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
|
||||||
|
|
||||||
|
m_STEP_Yorg = new wxTextCtrl( this, wxID_ANY, _("0"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
fgSizer1->Add( 0, 0, 1, wxEXPAND|wxRIGHT|wxLEFT, 5 );
|
m_STEP_Yorg->SetMaxLength( 8 );
|
||||||
|
fgSizer1->Add( m_STEP_Yorg, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 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 );
|
bSizer3->Add( fgSizer1, 1, wxEXPAND, 5 );
|
||||||
|
|
||||||
m_STEP_Yorg = new wxTextCtrl( this, wxID_ANY, _("0"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
#ifdef __WXGTK__
|
bSizer2->Add( bSizer3, 1, wxEXPAND|wxRIGHT|wxLEFT, 5 );
|
||||||
if ( !m_STEP_Yorg->HasFlag( wxTE_MULTILINE ) )
|
|
||||||
{
|
wxBoxSizer* bSizer8;
|
||||||
m_STEP_Yorg->SetMaxLength( 8 );
|
bSizer8 = new wxBoxSizer( wxVERTICAL );
|
||||||
}
|
|
||||||
#else
|
m_staticText7 = new wxStaticText( this, wxID_ANY, _("Other options:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_STEP_Yorg->SetMaxLength( 8 );
|
m_staticText7->Wrap( -1 );
|
||||||
#endif
|
m_staticText7->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
|
||||||
fgSizer1->Add( m_STEP_Yorg, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 5 );
|
|
||||||
|
bSizer8->Add( m_staticText7, 0, wxALL, 5 );
|
||||||
|
|
||||||
bSizer3->Add( fgSizer1, 1, wxEXPAND, 5 );
|
wxFlexGridSizer* fgSizer3;
|
||||||
|
fgSizer3 = new wxFlexGridSizer( 0, 2, 0, 0 );
|
||||||
|
fgSizer3->SetFlexibleDirection( wxBOTH );
|
||||||
bSizer2->Add( bSizer3, 1, wxEXPAND|wxRIGHT|wxLEFT, 5 );
|
fgSizer3->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
|
||||||
|
|
||||||
wxBoxSizer* bSizer8;
|
|
||||||
bSizer8 = new wxBoxSizer( wxVERTICAL );
|
fgSizer3->Add( 0, 0, 1, wxEXPAND|wxRIGHT|wxLEFT, 5 );
|
||||||
|
|
||||||
m_staticText7 = new wxStaticText( this, wxID_ANY, _("Other options:"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_cbRemoveVirtual = new wxCheckBox( this, wxID_ANY, _("Ignore virtual components"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_staticText7->Wrap( -1 );
|
fgSizer3->Add( m_cbRemoveVirtual, 0, wxALL, 5 );
|
||||||
m_staticText7->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
|
|
||||||
|
|
||||||
bSizer8->Add( m_staticText7, 0, wxALL, 5 );
|
bSizer8->Add( fgSizer3, 1, wxEXPAND, 5 );
|
||||||
|
|
||||||
wxFlexGridSizer* fgSizer3;
|
|
||||||
fgSizer3 = new wxFlexGridSizer( 0, 2, 0, 0 );
|
bSizer2->Add( bSizer8, 1, wxEXPAND|wxRIGHT|wxLEFT, 5 );
|
||||||
fgSizer3->SetFlexibleDirection( wxBOTH );
|
|
||||||
fgSizer3->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
|
|
||||||
|
bSizerSTEPFile->Add( bSizer2, 1, wxEXPAND, 5 );
|
||||||
|
|
||||||
fgSizer3->Add( 0, 0, 1, wxEXPAND|wxRIGHT|wxLEFT, 5 );
|
m_staticline1 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
|
||||||
|
bSizerSTEPFile->Add( m_staticline1, 0, wxEXPAND | wxALL, 5 );
|
||||||
m_cbRemoveVirtual = new wxCheckBox( this, wxID_ANY, _("Ignore Virtual Components"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
fgSizer3->Add( m_cbRemoveVirtual, 0, wxALL, 5 );
|
m_sdbSizer = new wxStdDialogButtonSizer();
|
||||||
|
m_sdbSizerOK = new wxButton( this, wxID_OK );
|
||||||
|
m_sdbSizer->AddButton( m_sdbSizerOK );
|
||||||
bSizer8->Add( fgSizer3, 1, wxEXPAND, 5 );
|
m_sdbSizerCancel = new wxButton( this, wxID_CANCEL );
|
||||||
|
m_sdbSizer->AddButton( m_sdbSizerCancel );
|
||||||
|
m_sdbSizer->Realize();
|
||||||
bSizer2->Add( bSizer8, 1, wxEXPAND|wxRIGHT|wxLEFT, 5 );
|
|
||||||
|
bSizerSTEPFile->Add( m_sdbSizer, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 );
|
||||||
|
|
||||||
bSizerSTEPFile->Add( bSizer2, 1, wxEXPAND, 5 );
|
|
||||||
|
this->SetSizer( bSizerSTEPFile );
|
||||||
m_staticline1 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
|
this->Layout();
|
||||||
bSizerSTEPFile->Add( m_staticline1, 0, wxEXPAND | wxALL, 5 );
|
bSizerSTEPFile->Fit( this );
|
||||||
|
|
||||||
m_sdbSizer = new wxStdDialogButtonSizer();
|
this->Centre( wxBOTH );
|
||||||
m_sdbSizerOK = new wxButton( this, wxID_OK );
|
}
|
||||||
m_sdbSizer->AddButton( m_sdbSizerOK );
|
|
||||||
m_sdbSizerCancel = new wxButton( this, wxID_CANCEL );
|
DIALOG_EXPORT_STEP_BASE::~DIALOG_EXPORT_STEP_BASE()
|
||||||
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()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,71 +1,71 @@
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
// C++ code generated with wxFormBuilder (version Sep 8 2016)
|
// C++ code generated with wxFormBuilder (version Jun 5 2014)
|
||||||
// http://www.wxformbuilder.org/
|
// http://www.wxformbuilder.org/
|
||||||
//
|
//
|
||||||
// PLEASE DO "NOT" EDIT THIS FILE!
|
// PLEASE DO "NOT" EDIT THIS FILE!
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
#ifndef __DIALOG_EXPORT_STEP_BASE_H__
|
#ifndef __DIALOG_EXPORT_STEP_BASE_H__
|
||||||
#define __DIALOG_EXPORT_STEP_BASE_H__
|
#define __DIALOG_EXPORT_STEP_BASE_H__
|
||||||
|
|
||||||
#include <wx/artprov.h>
|
#include <wx/artprov.h>
|
||||||
#include <wx/xrc/xmlres.h>
|
#include <wx/xrc/xmlres.h>
|
||||||
#include <wx/intl.h>
|
#include <wx/intl.h>
|
||||||
class DIALOG_SHIM;
|
class DIALOG_SHIM;
|
||||||
|
|
||||||
#include "dialog_shim.h"
|
#include "dialog_shim.h"
|
||||||
#include <wx/string.h>
|
#include <wx/string.h>
|
||||||
#include <wx/stattext.h>
|
#include <wx/stattext.h>
|
||||||
#include <wx/gdicmn.h>
|
#include <wx/gdicmn.h>
|
||||||
#include <wx/font.h>
|
#include <wx/font.h>
|
||||||
#include <wx/colour.h>
|
#include <wx/colour.h>
|
||||||
#include <wx/settings.h>
|
#include <wx/settings.h>
|
||||||
#include <wx/filepicker.h>
|
#include <wx/filepicker.h>
|
||||||
#include <wx/statline.h>
|
#include <wx/statline.h>
|
||||||
#include <wx/checkbox.h>
|
#include <wx/checkbox.h>
|
||||||
#include <wx/sizer.h>
|
#include <wx/sizer.h>
|
||||||
#include <wx/choice.h>
|
#include <wx/choice.h>
|
||||||
#include <wx/textctrl.h>
|
#include <wx/textctrl.h>
|
||||||
#include <wx/valtext.h>
|
#include <wx/valtext.h>
|
||||||
#include <wx/button.h>
|
#include <wx/button.h>
|
||||||
#include <wx/dialog.h>
|
#include <wx/dialog.h>
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
/// Class DIALOG_EXPORT_STEP_BASE
|
/// Class DIALOG_EXPORT_STEP_BASE
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
class DIALOG_EXPORT_STEP_BASE : public DIALOG_SHIM
|
class DIALOG_EXPORT_STEP_BASE : public DIALOG_SHIM
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
wxStaticText* m_txtBrdFile;
|
wxStaticText* m_txtBrdFile;
|
||||||
wxFilePickerCtrl* m_filePickerSTEP;
|
wxFilePickerCtrl* m_filePickerSTEP;
|
||||||
wxStaticLine* m_staticline2;
|
wxStaticLine* m_staticline2;
|
||||||
wxStaticText* m_staticText6;
|
wxStaticText* m_staticText6;
|
||||||
wxCheckBox* m_cbDrillOrigin;
|
wxCheckBox* m_cbDrillOrigin;
|
||||||
wxCheckBox* m_cbAuxOrigin;
|
wxCheckBox* m_cbAuxOrigin;
|
||||||
wxCheckBox* m_cbUserOrigin;
|
wxCheckBox* m_cbUserOrigin;
|
||||||
wxStaticText* m_staticText2;
|
wxStaticText* m_staticText2;
|
||||||
wxStaticText* m_staticText5;
|
wxStaticText* m_staticText5;
|
||||||
wxChoice* m_STEP_OrgUnitChoice;
|
wxChoice* m_STEP_OrgUnitChoice;
|
||||||
wxStaticText* m_staticText3;
|
wxStaticText* m_staticText3;
|
||||||
wxTextCtrl* m_STEP_Xorg;
|
wxTextCtrl* m_STEP_Xorg;
|
||||||
wxStaticText* m_staticText4;
|
wxStaticText* m_staticText4;
|
||||||
wxTextCtrl* m_STEP_Yorg;
|
wxTextCtrl* m_STEP_Yorg;
|
||||||
wxStaticText* m_staticText7;
|
wxStaticText* m_staticText7;
|
||||||
wxCheckBox* m_cbRemoveVirtual;
|
wxCheckBox* m_cbRemoveVirtual;
|
||||||
wxStaticLine* m_staticline1;
|
wxStaticLine* m_staticline1;
|
||||||
wxStdDialogButtonSizer* m_sdbSizer;
|
wxStdDialogButtonSizer* m_sdbSizer;
|
||||||
wxButton* m_sdbSizerOK;
|
wxButton* m_sdbSizerOK;
|
||||||
wxButton* m_sdbSizerCancel;
|
wxButton* m_sdbSizerCancel;
|
||||||
|
|
||||||
public:
|
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( 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();
|
~DIALOG_EXPORT_STEP_BASE();
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif //__DIALOG_EXPORT_STEP_BASE_H__
|
#endif //__DIALOG_EXPORT_STEP_BASE_H__
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
* This program source code file is part of kicad2mcad
|
* This program source code file is part of kicad2mcad
|
||||||
*
|
*
|
||||||
* Copyright (C) 2016 Cirilo Bernardo <cirilo.bernardo@gmail.com>
|
* Copyright (C) 2016 Cirilo Bernardo <cirilo.bernardo@gmail.com>
|
||||||
|
* Copyright (C) 2016-2017 KiCad Developers, see AUTHORS.txt for contributors.
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
@ -219,12 +220,16 @@ int KICAD2MCAD::OnRun()
|
||||||
else
|
else
|
||||||
tfname.Assign( m_outputFile );
|
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
|
#ifdef SUPPORTS_IGES
|
||||||
if( m_fmtIGES )
|
if( m_fmtIGES )
|
||||||
tfname.SetExt( "igs" );
|
tfname.SetExt( "igs" );
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
tfname.SetExt( "stp" );
|
tfname.SetExt( "stp" );
|
||||||
|
}
|
||||||
|
|
||||||
wxString outfile = tfname.GetFullPath();
|
wxString outfile = tfname.GetFullPath();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue