Pcbnew, dialog export STEP: fox not working export in countries using the comma as floating point separator.

Add origin at board center and serious cleaning code.
This commit is contained in:
jean-pierre charras 2017-08-10 14:25:31 +02:00
parent 81a4182319
commit 9485a4d381
4 changed files with 308 additions and 138 deletions

View File

@ -37,9 +37,7 @@
#include "class_board.h" #include "class_board.h"
#include "dialog_export_step_base.h" #include "dialog_export_step_base.h"
#define OPTKEY_STEP_USE_DRILL_ORG "STEP_UseDrillOrigin" #define OPTKEY_STEP_ORIGIN_OPT "STEP_Origin_Opt"
#define OPTKEY_STEP_USE_AUX_ORG "STEP_UseAuxOrigin"
#define OPTKEY_STEP_USE_USER_ORG "STEP_UseUserOrigin"
#define OPTKEY_STEP_UORG_UNITS "STEP_UserOriginUnits" #define OPTKEY_STEP_UORG_UNITS "STEP_UserOriginUnits"
#define OPTKEY_STEP_UORG_X "STEP_UserOriginX" #define OPTKEY_STEP_UORG_X "STEP_UserOriginX"
#define OPTKEY_STEP_UORG_Y "STEP_UserOriginY" #define OPTKEY_STEP_UORG_Y "STEP_UserOriginY"
@ -48,72 +46,34 @@
class DIALOG_EXPORT_STEP: public DIALOG_EXPORT_STEP_BASE class DIALOG_EXPORT_STEP: public DIALOG_EXPORT_STEP_BASE
{ {
public:
enum STEP_ORG_OPT
{
STEP_ORG_0, // absolute coordinates
STEP_ORG_PLOT_AXIS, // origin is plot/drill axis origin
STEP_ORG_GRID_AXIS, // origin is grid origin
STEP_ORG_BOARD_CENTER, // origin is board center
STEP_ORG_USER, // origin is entered by user
};
private: private:
PCB_EDIT_FRAME* m_parent; PCB_EDIT_FRAME* m_parent;
wxConfigBase* m_config; wxConfigBase* m_config;
bool m_useDrillOrg; // remember last preference for Use Drill Origin // The last preference for STEP Origin:
bool m_useAuxOrg; // remember last preference for Use Aux Origin STEP_ORG_OPT m_STEP_org_opt;
bool m_useUserOrg; // remember last preference for Use User Origin
bool m_noVirtual; // remember last preference for No Virtual Component bool m_noVirtual; // remember last preference for No Virtual Component
int m_OrgUnits; // remember last units for User Origin int m_OrgUnits; // remember last units for User Origin
double m_XOrg; // remember last User Origin X value double m_XOrg; // remember last User Origin X value
double m_YOrg; // remember last User Origin Y value double m_YOrg; // remember last User Origin Y value
public: public:
DIALOG_EXPORT_STEP( PCB_EDIT_FRAME* parent ) : DIALOG_EXPORT_STEP( PCB_EDIT_FRAME* parent );
DIALOG_EXPORT_STEP_BASE( parent )
{
m_parent = parent;
m_config = Kiface().KifaceSettings();
SetFocus();
m_useDrillOrg = false;
m_config->Read( OPTKEY_STEP_USE_DRILL_ORG, &m_useDrillOrg );
m_cbDrillOrigin->SetValue( m_useDrillOrg );
m_useAuxOrg = false;
m_config->Read( OPTKEY_STEP_USE_AUX_ORG, &m_useAuxOrg );
m_cbAuxOrigin->SetValue( m_useAuxOrg );
m_useUserOrg = false;
m_config->Read( OPTKEY_STEP_USE_USER_ORG, &m_useUserOrg );
m_cbUserOrigin->SetValue( m_useUserOrg );
m_cbUserOrigin->Bind( wxEVT_CHECKBOX, &DIALOG_EXPORT_STEP::OnUserOriginSelect, this );
m_config->Read( OPTKEY_STEP_UORG_UNITS, &m_OrgUnits, 0 );
m_config->Read( OPTKEY_STEP_UORG_X, &m_XOrg, 0.0 );
m_config->Read( OPTKEY_STEP_UORG_Y, &m_YOrg, 0.0 );
m_config->Read( OPTKEY_STEP_NOVIRT, &m_noVirtual );
m_cbRemoveVirtual->SetValue( m_noVirtual );
m_STEP_OrgUnitChoice->SetSelection( m_OrgUnits );
wxString tmpStr;
tmpStr << m_XOrg;
m_STEP_Xorg->SetValue( tmpStr );
tmpStr = "";
tmpStr << m_YOrg;
m_STEP_Yorg->SetValue( tmpStr );
if( m_useUserOrg )
{
m_STEP_OrgUnitChoice->Enable( true );
m_STEP_Xorg->Enable( true );
m_STEP_Yorg->Enable( true );
}
else
{
m_STEP_OrgUnitChoice->Enable( false );
m_STEP_Xorg->Enable( false );
m_STEP_Yorg->Enable( false );
}
m_sdbSizerOK->SetDefault();
// Now all widgets have the size fixed, call FinishDialogSettings
FinishDialogSettings();
}
~DIALOG_EXPORT_STEP() ~DIALOG_EXPORT_STEP()
{ {
m_config->Write( OPTKEY_STEP_USE_DRILL_ORG, m_cbDrillOrigin->GetValue() ); GetOriginOption(); // Update m_STEP_org_opt member.
m_config->Write( OPTKEY_STEP_USE_AUX_ORG, m_cbAuxOrigin->GetValue() ); m_config->Write( OPTKEY_STEP_ORIGIN_OPT, (int)m_STEP_org_opt );
m_config->Write( OPTKEY_STEP_USE_USER_ORG, m_cbUserOrigin->GetValue() );
m_config->Write( OPTKEY_STEP_NOVIRT, m_cbRemoveVirtual->GetValue() ); m_config->Write( OPTKEY_STEP_NOVIRT, m_cbRemoveVirtual->GetValue() );
m_config->Write( OPTKEY_STEP_UORG_UNITS, m_STEP_OrgUnitChoice->GetSelection() ); m_config->Write( OPTKEY_STEP_UORG_UNITS, m_STEP_OrgUnitChoice->GetSelection() );
@ -141,46 +101,62 @@ public:
return DoubleValueFromString( UNSCALED_UNITS, m_STEP_Yorg->GetValue() ); return DoubleValueFromString( UNSCALED_UNITS, m_STEP_Yorg->GetValue() );
} }
bool GetDrillOrgOption() STEP_ORG_OPT GetOriginOption();
{
return m_cbDrillOrigin->GetValue();
}
bool GetAuxOrgOption()
{
return m_cbAuxOrigin->GetValue();
}
bool GetUserOrgOption()
{
return m_cbUserOrigin->GetValue();
}
bool GetNoVirtOption() bool GetNoVirtOption()
{ {
return m_cbRemoveVirtual->GetValue(); return m_cbRemoveVirtual->GetValue();
} }
void OnUserOriginSelect( wxCommandEvent& event ) bool TransferDataFromWindow() override;
{ void onSelectOrigin( wxCommandEvent& event ) override;
if( GetUserOrgOption() ) };
{
m_STEP_OrgUnitChoice->Enable( true );
m_STEP_Xorg->Enable( true );
m_STEP_Yorg->Enable( true );
}
else
{
m_STEP_OrgUnitChoice->Enable( false );
m_STEP_Xorg->Enable( false );
m_STEP_Yorg->Enable( false );
}
event.Skip(); DIALOG_EXPORT_STEP::DIALOG_EXPORT_STEP( PCB_EDIT_FRAME* parent ) :
DIALOG_EXPORT_STEP_BASE( parent )
{
m_parent = parent;
m_config = Kiface().KifaceSettings();
SetFocus();
m_STEP_org_opt = STEP_ORG_0;;
int tmp = STEP_ORG_0;
if( m_config->Read( OPTKEY_STEP_ORIGIN_OPT, &tmp ) )
m_STEP_org_opt = (STEP_ORG_OPT) tmp;
switch( m_STEP_org_opt )
{
default: break;
case STEP_ORG_PLOT_AXIS: m_cbPlotOrigin->SetValue( true ); break;
case STEP_ORG_GRID_AXIS: m_cbGridOrigin->SetValue( true ); break;
case STEP_ORG_USER: m_cbUserOrigin->SetValue( true ); break;
case STEP_ORG_BOARD_CENTER: m_cbBoardCenter->SetValue( true ); break;
} }
bool TransferDataFromWindow() override; m_config->Read( OPTKEY_STEP_UORG_UNITS, &m_OrgUnits, 0 );
}; m_config->Read( OPTKEY_STEP_UORG_X, &m_XOrg, 0.0 );
m_config->Read( OPTKEY_STEP_UORG_Y, &m_YOrg, 0.0 );
m_config->Read( OPTKEY_STEP_NOVIRT, &m_noVirtual );
m_cbRemoveVirtual->SetValue( m_noVirtual );
m_STEP_OrgUnitChoice->SetSelection( m_OrgUnits );
wxString tmpStr;
tmpStr << m_XOrg;
m_STEP_Xorg->SetValue( tmpStr );
tmpStr = "";
tmpStr << m_YOrg;
m_STEP_Yorg->SetValue( tmpStr );
m_STEP_OrgUnitChoice->Enable( m_cbUserOrigin->IsChecked() );
m_STEP_Xorg->Enable( m_cbUserOrigin->IsChecked() );
m_STEP_Yorg->Enable( m_cbUserOrigin->IsChecked() );
m_sdbSizerOK->SetDefault();
// Now all widgets have the size fixed, call FinishDialogSettings
FinishDialogSettings();
}
bool DIALOG_EXPORT_STEP::TransferDataFromWindow() bool DIALOG_EXPORT_STEP::TransferDataFromWindow()
@ -205,6 +181,47 @@ bool DIALOG_EXPORT_STEP::TransferDataFromWindow()
} }
void DIALOG_EXPORT_STEP::onSelectOrigin( wxCommandEvent& event )
{
// If a new checkbox was checked: ensure other options are disabled
wxCheckBox* cbList[]
{
m_cbPlotOrigin, m_cbGridOrigin, m_cbUserOrigin, m_cbBoardCenter, NULL
};
if( event.IsChecked() )
{
for( int ii = 0; cbList[ii]; ii++ )
{
if( cbList[ii] != event.GetEventObject() )
cbList[ii]->SetValue( false );
}
}
// Enable/disable the user origin widgets:
m_STEP_OrgUnitChoice->Enable( m_cbUserOrigin->IsChecked() );
m_STEP_Xorg->Enable( m_cbUserOrigin->IsChecked() );
m_STEP_Yorg->Enable( m_cbUserOrigin->IsChecked() );
}
DIALOG_EXPORT_STEP::STEP_ORG_OPT DIALOG_EXPORT_STEP::GetOriginOption()
{
m_STEP_org_opt = STEP_ORG_0;
if( m_cbPlotOrigin->IsChecked() )
m_STEP_org_opt = STEP_ORG_PLOT_AXIS;
else if( m_cbGridOrigin->IsChecked() )
m_STEP_org_opt = STEP_ORG_GRID_AXIS;
else if( m_cbUserOrigin->IsChecked() )
m_STEP_org_opt = STEP_ORG_USER;
else if( m_cbBoardCenter->IsChecked() )
m_STEP_org_opt = STEP_ORG_BOARD_CENTER;
return m_STEP_org_opt;
}
void PCB_EDIT_FRAME::OnExportSTEP( wxCommandEvent& event ) void PCB_EDIT_FRAME::OnExportSTEP( wxCommandEvent& event )
{ {
@ -242,29 +259,13 @@ void PCB_EDIT_FRAME::OnExportSTEP( wxCommandEvent& event )
return; return;
wxString outputFile = dlg.FilePicker()->GetPath(); wxString outputFile = dlg.FilePicker()->GetPath();
brdFile.SetExt( brdExt ); brdFile.SetExt( brdExt );
outputFile.Prepend( "\"" ); outputFile.Prepend( "\"" );
outputFile.Append( "\"" ); outputFile.Append( "\"" );
bool aUseDrillOrg = dlg.GetDrillOrgOption();
bool aUseAuxOrg = dlg.GetAuxOrgOption();
bool aUseUserOrg = dlg.GetUserOrgOption();
bool aNoVirtual = dlg.GetNoVirtOption();
double aXOrg = 0.0;
double aYOrg = 0.0;
if( aUseUserOrg ) DIALOG_EXPORT_STEP::STEP_ORG_OPT orgOpt = dlg.GetOriginOption();
{ double xOrg = 0.0;
aXOrg = dlg.GetXOrg(); double yOrg = 0.0;
aYOrg = dlg.GetYOrg();
if( dlg.GetOrgUnitsChoice() == 1 )
{
// selected reference unit is in inches
aXOrg *= 25.4;
aYOrg *= 25.4;
}
}
wxFileName appK2S( wxStandardPaths::Get().GetExecutablePath() ); wxFileName appK2S( wxStandardPaths::Get().GetExecutablePath() );
appK2S.SetName( "kicad2step" ); appK2S.SetName( "kicad2step" );
@ -273,17 +274,49 @@ void PCB_EDIT_FRAME::OnExportSTEP( wxCommandEvent& event )
cmdK2S.Append( appK2S.GetFullPath() ); cmdK2S.Append( appK2S.GetFullPath() );
cmdK2S.Append( "\"" ); cmdK2S.Append( "\"" );
if( aNoVirtual ) if( dlg.GetNoVirtOption() )
cmdK2S.Append( " --no-virtual" ); cmdK2S.Append( " --no-virtual" );
if( aUseDrillOrg ) switch( orgOpt )
cmdK2S.Append( " --drill-origin" ); {
case DIALOG_EXPORT_STEP::STEP_ORG_0:
break;
if( aUseAuxOrg ) case DIALOG_EXPORT_STEP::STEP_ORG_PLOT_AXIS:
cmdK2S.Append( " --grid-origin" ); cmdK2S.Append( " --drill-origin" );
break;
if( aUseUserOrg ) case DIALOG_EXPORT_STEP::STEP_ORG_GRID_AXIS:
cmdK2S.Append( wxString::Format( " --user-origin %.6fx%.6f", aXOrg, aYOrg ) ); cmdK2S.Append( " --grid-origin" );
break;
case DIALOG_EXPORT_STEP::STEP_ORG_USER:
{
xOrg = dlg.GetXOrg();
yOrg = dlg.GetYOrg();
if( dlg.GetOrgUnitsChoice() == 1 )
{
// selected reference unit is in inches, and STEP units are mm
xOrg *= 25.4;
yOrg *= 25.4;
}
LOCALE_IO dummy;
cmdK2S.Append( wxString::Format( " --user-origin %.6fx%.6f", xOrg, yOrg ) );
}
break;
case DIALOG_EXPORT_STEP::STEP_ORG_BOARD_CENTER:
{
EDA_RECT bbox = GetBoard()->ComputeBoundingBox( true );
xOrg = Iu2Millimeter( bbox.GetCenter().x );
yOrg = Iu2Millimeter( bbox.GetCenter().y );
LOCALE_IO dummy;
cmdK2S.Append( wxString::Format( " --user-origin %.6fx%.6f", xOrg, yOrg ) );
}
break;
}
cmdK2S.Append( " -f -o " ); cmdK2S.Append( " -f -o " );
cmdK2S.Append( outputFile ); cmdK2S.Append( outputFile );

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Jun 5 2014) // C++ code generated with wxFormBuilder (version Jul 2 2017)
// http://www.wxformbuilder.org/ // http://www.wxformbuilder.org/
// //
// PLEASE DO "NOT" EDIT THIS FILE! // PLEASE DO "NOT" EDIT THIS FILE!
@ -34,7 +34,7 @@ DIALOG_EXPORT_STEP_BASE::DIALOG_EXPORT_STEP_BASE( wxWindow* parent, wxWindowID i
m_staticText6 = new wxStaticText( this, wxID_ANY, _("Coordinate 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(), 70, 90, 92, false, wxEmptyString ) ); m_staticText6->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
bSizer7->Add( m_staticText6, 0, wxALL, 5 ); bSizer7->Add( m_staticText6, 0, wxALL, 5 );
@ -46,18 +46,18 @@ DIALOG_EXPORT_STEP_BASE::DIALOG_EXPORT_STEP_BASE( wxWindow* parent, wxWindowID i
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_cbPlotOrigin = 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_cbPlotOrigin->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_cbPlotOrigin, 0, wxTOP|wxRIGHT|wxLEFT, 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_cbGridOrigin = new wxCheckBox( this, wxID_ANY, _("Grid origin"), wxDefaultPosition, wxDefaultSize, 0 );
m_cbAuxOrigin->SetToolTip( _("Use the grid origin as STEP coordinates origin.") ); m_cbGridOrigin->SetToolTip( _("Use the grid origin as STEP coordinates origin.") );
fgSizer2->Add( m_cbAuxOrigin, 0, wxALL, 5 ); fgSizer2->Add( m_cbGridOrigin, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
fgSizer2->Add( 0, 0, 1, wxEXPAND, 5 ); fgSizer2->Add( 0, 0, 1, wxEXPAND, 5 );
@ -65,7 +65,15 @@ DIALOG_EXPORT_STEP_BASE::DIALOG_EXPORT_STEP_BASE( wxWindow* parent, wxWindowID i
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, wxTOP|wxRIGHT|wxLEFT, 5 );
fgSizer2->Add( 0, 0, 1, wxEXPAND, 5 );
m_cbBoardCenter = new wxCheckBox( this, wxID_ANY, _("Board center origin"), wxDefaultPosition, wxDefaultSize, 0 );
m_cbBoardCenter->SetToolTip( _("Use this option if you want to define coordinate origin at board center.") );
fgSizer2->Add( m_cbBoardCenter, 0, wxALL, 5 );
bSizer7->Add( fgSizer2, 1, wxEXPAND, 5 ); bSizer7->Add( fgSizer2, 1, wxEXPAND, 5 );
@ -78,7 +86,7 @@ DIALOG_EXPORT_STEP_BASE::DIALOG_EXPORT_STEP_BASE( wxWindow* parent, wxWindowID i
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(), 70, 90, 92, false, wxEmptyString ) ); m_staticText2->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
bSizer3->Add( m_staticText2, 0, wxALL, 5 ); bSizer3->Add( m_staticText2, 0, wxALL, 5 );
@ -108,7 +116,14 @@ DIALOG_EXPORT_STEP_BASE::DIALOG_EXPORT_STEP_BASE( wxWindow* parent, wxWindowID i
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 );
m_STEP_Xorg->SetMaxLength( 8 ); #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( m_STEP_Xorg, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 5 );
@ -119,7 +134,14 @@ DIALOG_EXPORT_STEP_BASE::DIALOG_EXPORT_STEP_BASE( wxWindow* parent, wxWindowID i
fgSizer1->Add( m_staticText4, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); 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 = new wxTextCtrl( this, wxID_ANY, _("0"), wxDefaultPosition, wxDefaultSize, 0 );
m_STEP_Yorg->SetMaxLength( 8 ); #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 ); fgSizer1->Add( m_STEP_Yorg, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 5 );
@ -133,7 +155,7 @@ DIALOG_EXPORT_STEP_BASE::DIALOG_EXPORT_STEP_BASE( wxWindow* parent, wxWindowID i
m_staticText7 = new wxStaticText( this, wxID_ANY, _("Other options:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText7 = new wxStaticText( this, wxID_ANY, _("Other options:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticText7->Wrap( -1 ); m_staticText7->Wrap( -1 );
m_staticText7->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) ); m_staticText7->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
bSizer8->Add( m_staticText7, 0, wxALL, 5 ); bSizer8->Add( m_staticText7, 0, wxALL, 5 );
@ -175,8 +197,20 @@ DIALOG_EXPORT_STEP_BASE::DIALOG_EXPORT_STEP_BASE( wxWindow* parent, wxWindowID i
bSizerSTEPFile->Fit( this ); bSizerSTEPFile->Fit( this );
this->Centre( wxBOTH ); this->Centre( wxBOTH );
// Connect Events
m_cbPlotOrigin->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_EXPORT_STEP_BASE::onSelectOrigin ), NULL, this );
m_cbGridOrigin->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_EXPORT_STEP_BASE::onSelectOrigin ), NULL, this );
m_cbUserOrigin->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_EXPORT_STEP_BASE::onSelectOrigin ), NULL, this );
m_cbBoardCenter->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_EXPORT_STEP_BASE::onSelectOrigin ), NULL, this );
} }
DIALOG_EXPORT_STEP_BASE::~DIALOG_EXPORT_STEP_BASE() DIALOG_EXPORT_STEP_BASE::~DIALOG_EXPORT_STEP_BASE()
{ {
// Disconnect Events
m_cbPlotOrigin->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_EXPORT_STEP_BASE::onSelectOrigin ), NULL, this );
m_cbGridOrigin->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_EXPORT_STEP_BASE::onSelectOrigin ), NULL, this );
m_cbUserOrigin->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_EXPORT_STEP_BASE::onSelectOrigin ), NULL, this );
m_cbBoardCenter->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_EXPORT_STEP_BASE::onSelectOrigin ), NULL, this );
} }

View File

@ -475,7 +475,7 @@
</object> </object>
<object class="sizeritem" expanded="0"> <object class="sizeritem" expanded="0">
<property name="border">5</property> <property name="border">5</property>
<property name="flag">wxALL</property> <property name="flag">wxTOP|wxRIGHT|wxLEFT</property>
<property name="proportion">0</property> <property name="proportion">0</property>
<object class="wxCheckBox" expanded="0"> <object class="wxCheckBox" expanded="0">
<property name="BottomDockable">1</property> <property name="BottomDockable">1</property>
@ -514,7 +514,7 @@
<property name="minimize_button">0</property> <property name="minimize_button">0</property>
<property name="minimum_size"></property> <property name="minimum_size"></property>
<property name="moveable">1</property> <property name="moveable">1</property>
<property name="name">m_cbDrillOrigin</property> <property name="name">m_cbPlotOrigin</property>
<property name="pane_border">1</property> <property name="pane_border">1</property>
<property name="pane_position"></property> <property name="pane_position"></property>
<property name="pane_size"></property> <property name="pane_size"></property>
@ -536,7 +536,7 @@
<property name="window_name"></property> <property name="window_name"></property>
<property name="window_style"></property> <property name="window_style"></property>
<event name="OnChar"></event> <event name="OnChar"></event>
<event name="OnCheckBox"></event> <event name="OnCheckBox">onSelectOrigin</event>
<event name="OnEnterWindow"></event> <event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event> <event name="OnEraseBackground"></event>
<event name="OnKeyDown"></event> <event name="OnKeyDown"></event>
@ -573,7 +573,7 @@
</object> </object>
<object class="sizeritem" expanded="0"> <object class="sizeritem" expanded="0">
<property name="border">5</property> <property name="border">5</property>
<property name="flag">wxALL</property> <property name="flag">wxTOP|wxRIGHT|wxLEFT</property>
<property name="proportion">0</property> <property name="proportion">0</property>
<object class="wxCheckBox" expanded="0"> <object class="wxCheckBox" expanded="0">
<property name="BottomDockable">1</property> <property name="BottomDockable">1</property>
@ -612,7 +612,7 @@
<property name="minimize_button">0</property> <property name="minimize_button">0</property>
<property name="minimum_size"></property> <property name="minimum_size"></property>
<property name="moveable">1</property> <property name="moveable">1</property>
<property name="name">m_cbAuxOrigin</property> <property name="name">m_cbGridOrigin</property>
<property name="pane_border">1</property> <property name="pane_border">1</property>
<property name="pane_position"></property> <property name="pane_position"></property>
<property name="pane_size"></property> <property name="pane_size"></property>
@ -634,7 +634,7 @@
<property name="window_name"></property> <property name="window_name"></property>
<property name="window_style"></property> <property name="window_style"></property>
<event name="OnChar"></event> <event name="OnChar"></event>
<event name="OnCheckBox"></event> <event name="OnCheckBox">onSelectOrigin</event>
<event name="OnEnterWindow"></event> <event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event> <event name="OnEraseBackground"></event>
<event name="OnKeyDown"></event> <event name="OnKeyDown"></event>
@ -671,7 +671,7 @@
</object> </object>
<object class="sizeritem" expanded="0"> <object class="sizeritem" expanded="0">
<property name="border">5</property> <property name="border">5</property>
<property name="flag">wxALL</property> <property name="flag">wxTOP|wxRIGHT|wxLEFT</property>
<property name="proportion">0</property> <property name="proportion">0</property>
<object class="wxCheckBox" expanded="0"> <object class="wxCheckBox" expanded="0">
<property name="BottomDockable">1</property> <property name="BottomDockable">1</property>
@ -732,7 +732,105 @@
<property name="window_name"></property> <property name="window_name"></property>
<property name="window_style"></property> <property name="window_style"></property>
<event name="OnChar"></event> <event name="OnChar"></event>
<event name="OnCheckBox"></event> <event name="OnCheckBox">onSelectOrigin</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 class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxEXPAND</property>
<property name="proportion">1</property>
<object class="spacer" expanded="1">
<property name="height">0</property>
<property name="permission">protected</property>
<property name="width">0</property>
</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">Board center origin</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_cbBoardCenter</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">Use this option if you want to define coordinate origin at board center.</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">onSelectOrigin</event>
<event name="OnEnterWindow"></event> <event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event> <event name="OnEraseBackground"></event>
<event name="OnKeyDown"></event> <event name="OnKeyDown"></event>

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Jun 5 2014) // C++ code generated with wxFormBuilder (version Jul 2 2017)
// http://www.wxformbuilder.org/ // http://www.wxformbuilder.org/
// //
// PLEASE DO "NOT" EDIT THIS FILE! // PLEASE DO "NOT" EDIT THIS FILE!
@ -44,9 +44,10 @@ class DIALOG_EXPORT_STEP_BASE : public DIALOG_SHIM
wxFilePickerCtrl* m_filePickerSTEP; wxFilePickerCtrl* m_filePickerSTEP;
wxStaticLine* m_staticline2; wxStaticLine* m_staticline2;
wxStaticText* m_staticText6; wxStaticText* m_staticText6;
wxCheckBox* m_cbDrillOrigin; wxCheckBox* m_cbPlotOrigin;
wxCheckBox* m_cbAuxOrigin; wxCheckBox* m_cbGridOrigin;
wxCheckBox* m_cbUserOrigin; wxCheckBox* m_cbUserOrigin;
wxCheckBox* m_cbBoardCenter;
wxStaticText* m_staticText2; wxStaticText* m_staticText2;
wxStaticText* m_staticText5; wxStaticText* m_staticText5;
wxChoice* m_STEP_OrgUnitChoice; wxChoice* m_STEP_OrgUnitChoice;
@ -60,6 +61,10 @@ class DIALOG_EXPORT_STEP_BASE : public DIALOG_SHIM
wxStdDialogButtonSizer* m_sdbSizer; wxStdDialogButtonSizer* m_sdbSizer;
wxButton* m_sdbSizerOK; wxButton* m_sdbSizerOK;
wxButton* m_sdbSizerCancel; wxButton* m_sdbSizerCancel;
// Virtual event handlers, overide them in your derived class
virtual void onSelectOrigin( wxCommandEvent& event ) { event.Skip(); }
public: public: