Commit 63724083 authored by charras's avatar charras

Pcbnew: force scale 1 in gerber format, regardless the options value. Solved a...

Pcbnew: force scale 1 in gerber format, regardless the options value. Solved a bug when retrieving plot scale options
parent 2be24e1f
...@@ -258,7 +258,7 @@ void WinEDA_PlotFrame::OnInitDialog( wxInitDialogEvent& event ) ...@@ -258,7 +258,7 @@ void WinEDA_PlotFrame::OnInitDialog( wxInitDialogEvent& event )
{ {
config->Read( OPTKEY_EDGELAYER_GERBER, &g_Exclude_Edges_Pcb ); config->Read( OPTKEY_EDGELAYER_GERBER, &g_Exclude_Edges_Pcb );
config->Read( OPTKEY_XFINESCALE_ADJ, &m_XScaleAdjust ); config->Read( OPTKEY_XFINESCALE_ADJ, &m_XScaleAdjust );
config->Read( OPTKEY_XFINESCALE_ADJ, &m_YScaleAdjust ); config->Read( OPTKEY_YFINESCALE_ADJ, &m_YScaleAdjust );
} }
m_FineAdjustXscaleOpt = new WinEDA_DFloatValueCtrl( this, m_FineAdjustXscaleOpt = new WinEDA_DFloatValueCtrl( this,
...@@ -351,7 +351,7 @@ void WinEDA_PlotFrame::OnInitDialog( wxInitDialogEvent& event ) ...@@ -351,7 +351,7 @@ void WinEDA_PlotFrame::OnInitDialog( wxInitDialogEvent& event )
else else
Plot_Sheet_Ref = false; Plot_Sheet_Ref = false;
// Option d'impression des pads sur toutes les couches // Option to plot pads on silkscreen layers or all layers
m_Plot_Pads_on_Silkscreen = new wxCheckBox( this, ID_PRINT_PAD_ON_SILKSCREEN, m_Plot_Pads_on_Silkscreen = new wxCheckBox( this, ID_PRINT_PAD_ON_SILKSCREEN,
_( "Print pads on silkscreen" ) ); _( "Print pads on silkscreen" ) );
if( config ) if( config )
...@@ -369,7 +369,7 @@ void WinEDA_PlotFrame::OnInitDialog( wxInitDialogEvent& event ) ...@@ -369,7 +369,7 @@ void WinEDA_PlotFrame::OnInitDialog( wxInitDialogEvent& event )
m_Force_Plot_Pads->SetToolTip( _( "Force print/plot pads on ALL layers" ) ); m_Force_Plot_Pads->SetToolTip( _( "Force print/plot pads on ALL layers" ) );
LeftBoxSizer->Add( m_Force_Plot_Pads, 0, wxGROW | wxALL, 1 ); LeftBoxSizer->Add( m_Force_Plot_Pads, 0, wxGROW | wxALL, 1 );
// Options d'impression des textes modules // Options to plot texts on footprints
m_Plot_Text_Value = new wxCheckBox( this, ID_PRINT_VALUE, _( "Print module value" ) ); m_Plot_Text_Value = new wxCheckBox( this, ID_PRINT_VALUE, _( "Print module value" ) );
m_Plot_Text_Value->SetValue( Sel_Texte_Valeur ); m_Plot_Text_Value->SetValue( Sel_Texte_Valeur );
...@@ -450,7 +450,7 @@ void WinEDA_PlotFrame::OnInitDialog( wxInitDialogEvent& event ) ...@@ -450,7 +450,7 @@ void WinEDA_PlotFrame::OnInitDialog( wxInitDialogEvent& event )
m_HPGL_PlotCenter_Opt->SetToolTip( _( "Draw origin ( 0,0 ) in sheet center" ) ); m_HPGL_PlotCenter_Opt->SetToolTip( _( "Draw origin ( 0,0 ) in sheet center" ) );
MidLeftBoxSizer->Add( m_HPGL_PlotCenter_Opt, 0, wxGROW | wxALL, 5 ); MidLeftBoxSizer->Add( m_HPGL_PlotCenter_Opt, 0, wxGROW | wxALL, 5 );
// Mise a jour des activations des menus: // Update options values:
wxCommandEvent cmd_event; wxCommandEvent cmd_event;
SetCommands( cmd_event ); SetCommands( cmd_event );
...@@ -667,11 +667,11 @@ void WinEDA_PlotFrame::Plot( wxCommandEvent& event ) ...@@ -667,11 +667,11 @@ void WinEDA_PlotFrame::Plot( wxCommandEvent& event )
Scale_X *= m_XScaleAdjust; Scale_X *= m_XScaleAdjust;
Scale_Y *= m_YScaleAdjust; Scale_Y *= m_YScaleAdjust;
int format = getFormat();
BaseFileName = m_Parent->GetScreen()->m_FileName; BaseFileName = m_Parent->GetScreen()->m_FileName;
ChangeFileNameExt( BaseFileName, wxT( "-" ) ); ChangeFileNameExt( BaseFileName, wxT( "-" ) );
int format = getFormat();
switch( format ) switch( format )
{ {
case PLOT_FORMAT_POST: case PLOT_FORMAT_POST:
...@@ -680,6 +680,7 @@ void WinEDA_PlotFrame::Plot( wxCommandEvent& event ) ...@@ -680,6 +680,7 @@ void WinEDA_PlotFrame::Plot( wxCommandEvent& event )
default: default:
case PLOT_FORMAT_GERBER: case PLOT_FORMAT_GERBER:
Scale_X = Scale_Y = 1.0; // No scale option allowed in gerber format
ext = wxT( ".pho" ); ext = wxT( ".pho" );
break; break;
...@@ -688,6 +689,12 @@ void WinEDA_PlotFrame::Plot( wxCommandEvent& event ) ...@@ -688,6 +689,12 @@ void WinEDA_PlotFrame::Plot( wxCommandEvent& event )
break; break;
} }
// Test for a reasonnable scale value
if ( Scale_X < 0.01 || Scale_Y < 0.01 )
DisplayInfo(this, _("Warning: Scale option set to a very small value") );
if ( Scale_X > 100.0 || Scale_Y > 100.0 )
DisplayInfo(this, _("Warning: Scale option set to a very large value") );
int mask = 1; int mask = 1;
s_SelectedLayers = 0; s_SelectedLayers = 0;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment