Add SMD and TH settings to config, and get rid of intermediate vars.
Fixes https://gitlab.com/kicad/code/kicad/issues/12715
This commit is contained in:
parent
4778122aa0
commit
fa2a36b74e
|
@ -35,7 +35,6 @@
|
||||||
#include <reporter.h>
|
#include <reporter.h>
|
||||||
#include <tools/board_editor_control.h>
|
#include <tools/board_editor_control.h>
|
||||||
#include <board.h>
|
#include <board.h>
|
||||||
#include <footprint.h>
|
|
||||||
#include <wildcards_and_files_ext.h>
|
#include <wildcards_and_files_ext.h>
|
||||||
#include <kiface_base.h>
|
#include <kiface_base.h>
|
||||||
#include "widgets/wx_html_report_panel.h"
|
#include "widgets/wx_html_report_panel.h"
|
||||||
|
@ -159,28 +158,13 @@ private:
|
||||||
return m_excludeTH->GetValue();
|
return m_excludeTH->GetValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
PCB_EDIT_FRAME* m_parent;
|
PCB_EDIT_FRAME* m_parent;
|
||||||
PCB_PLOT_PARAMS m_plotOpts;
|
PCB_PLOT_PARAMS m_plotOpts;
|
||||||
REPORTER* m_reporter;
|
REPORTER* m_reporter;
|
||||||
|
|
||||||
static int m_unitsOpt;
|
|
||||||
static int m_fileOpt;
|
|
||||||
static int m_fileFormat;
|
|
||||||
static bool m_includeBoardEdge;
|
|
||||||
static bool m_excludeTHOpt;
|
|
||||||
static bool m_onlySMDOpt;
|
|
||||||
static bool m_negateBottomX;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
// Static members to remember choices
|
|
||||||
int DIALOG_GEN_FOOTPRINT_POSITION::m_fileOpt = 0;
|
|
||||||
int DIALOG_GEN_FOOTPRINT_POSITION::m_fileFormat = 0;
|
|
||||||
bool DIALOG_GEN_FOOTPRINT_POSITION::m_includeBoardEdge = false;
|
|
||||||
bool DIALOG_GEN_FOOTPRINT_POSITION::m_excludeTHOpt = false;
|
|
||||||
bool DIALOG_GEN_FOOTPRINT_POSITION::m_onlySMDOpt = false;
|
|
||||||
bool DIALOG_GEN_FOOTPRINT_POSITION::m_negateBottomX = false;
|
|
||||||
|
|
||||||
|
|
||||||
void DIALOG_GEN_FOOTPRINT_POSITION::initDialog()
|
void DIALOG_GEN_FOOTPRINT_POSITION::initDialog()
|
||||||
{
|
{
|
||||||
|
@ -188,24 +172,20 @@ void DIALOG_GEN_FOOTPRINT_POSITION::initDialog()
|
||||||
|
|
||||||
PCBNEW_SETTINGS* cfg = m_parent->GetPcbNewSettings();
|
PCBNEW_SETTINGS* cfg = m_parent->GetPcbNewSettings();
|
||||||
|
|
||||||
m_units = cfg->m_PlaceFile.units == 0 ? EDA_UNITS::INCHES : EDA_UNITS::MILLIMETRES;
|
m_units = cfg->m_PlaceFile.units == 0 ? EDA_UNITS::INCHES : EDA_UNITS::MILLIMETRES;
|
||||||
m_fileOpt = cfg->m_PlaceFile.file_options;
|
|
||||||
m_fileFormat = cfg->m_PlaceFile.file_format;
|
|
||||||
m_includeBoardEdge = cfg->m_PlaceFile.include_board_edge;
|
|
||||||
m_negateBottomX = cfg->m_PlaceFile.negate_xcoord;
|
|
||||||
|
|
||||||
// Output directory
|
// Output directory
|
||||||
m_outputDirectoryName->SetValue( m_plotOpts.GetOutputDirectory() );
|
m_outputDirectoryName->SetValue( m_plotOpts.GetOutputDirectory() );
|
||||||
|
|
||||||
// Update Options
|
// Update Options
|
||||||
m_radioBoxUnits->SetSelection( cfg->m_PlaceFile.units );
|
m_radioBoxUnits->SetSelection( cfg->m_PlaceFile.units );
|
||||||
m_radioBoxFilesCount->SetSelection( m_fileOpt );
|
m_radioBoxFilesCount->SetSelection( cfg->m_PlaceFile.file_options );
|
||||||
m_rbFormat->SetSelection( m_fileFormat );
|
m_rbFormat->SetSelection( cfg->m_PlaceFile.file_format );
|
||||||
m_cbIncludeBoardEdge->SetValue( m_includeBoardEdge );
|
m_cbIncludeBoardEdge->SetValue( cfg->m_PlaceFile.include_board_edge );
|
||||||
m_useDrillPlaceOrigin->SetValue( cfg->m_PlaceFile.use_aux_origin );
|
m_useDrillPlaceOrigin->SetValue( cfg->m_PlaceFile.use_aux_origin );
|
||||||
m_onlySMD->SetValue( m_onlySMDOpt );
|
m_onlySMD->SetValue( cfg->m_PlaceFile.only_SMD );
|
||||||
m_negateXcb->SetValue( m_negateBottomX );
|
m_negateXcb->SetValue( cfg->m_PlaceFile.negate_xcoord );
|
||||||
m_excludeTH->SetValue( m_excludeTHOpt );
|
m_excludeTH->SetValue( cfg->m_PlaceFile.exclude_TH );
|
||||||
|
|
||||||
// Update sizes and sizers:
|
// Update sizes and sizers:
|
||||||
m_messagesPanel->MsgPanelSetMinSize( wxSize( -1, 160 ) );
|
m_messagesPanel->MsgPanelSetMinSize( wxSize( -1, 160 ) );
|
||||||
|
@ -225,8 +205,7 @@ void DIALOG_GEN_FOOTPRINT_POSITION::OnOutputDirectoryBrowseClicked( wxCommandEve
|
||||||
|
|
||||||
wxFileName dirName = wxFileName::DirName( dirDialog.GetPath() );
|
wxFileName dirName = wxFileName::DirName( dirDialog.GetPath() );
|
||||||
|
|
||||||
wxMessageDialog dialog( this, _( "Use a relative path?"),
|
wxMessageDialog dialog( this, _( "Use a relative path?"), _( "Plot Output Directory" ),
|
||||||
_( "Plot Output Directory" ),
|
|
||||||
wxYES_NO | wxICON_QUESTION | wxYES_DEFAULT );
|
wxYES_NO | wxICON_QUESTION | wxYES_DEFAULT );
|
||||||
|
|
||||||
if( dialog.ShowModal() == wxID_YES )
|
if( dialog.ShowModal() == wxID_YES )
|
||||||
|
@ -245,22 +224,17 @@ void DIALOG_GEN_FOOTPRINT_POSITION::OnOutputDirectoryBrowseClicked( wxCommandEve
|
||||||
|
|
||||||
void DIALOG_GEN_FOOTPRINT_POSITION::OnGenerate( wxCommandEvent& event )
|
void DIALOG_GEN_FOOTPRINT_POSITION::OnGenerate( wxCommandEvent& event )
|
||||||
{
|
{
|
||||||
m_fileOpt = m_radioBoxFilesCount->GetSelection();
|
PCBNEW_SETTINGS* cfg = m_parent->GetPcbNewSettings();
|
||||||
m_fileFormat = m_rbFormat->GetSelection();
|
|
||||||
m_includeBoardEdge = m_cbIncludeBoardEdge->GetValue();
|
|
||||||
m_onlySMDOpt = m_onlySMD->GetValue();
|
|
||||||
m_negateBottomX = m_negateXcb->GetValue();
|
|
||||||
m_excludeTHOpt = m_excludeTH->GetValue();
|
|
||||||
|
|
||||||
auto cfg = m_parent->GetPcbNewSettings();
|
|
||||||
m_units = m_radioBoxUnits->GetSelection() == 0 ? EDA_UNITS::INCHES : EDA_UNITS::MILLIMETRES;
|
m_units = m_radioBoxUnits->GetSelection() == 0 ? EDA_UNITS::INCHES : EDA_UNITS::MILLIMETRES;
|
||||||
|
|
||||||
cfg->m_PlaceFile.units = m_units == EDA_UNITS::INCHES ? 0 : 1;
|
cfg->m_PlaceFile.units = m_units == EDA_UNITS::INCHES ? 0 : 1;
|
||||||
cfg->m_PlaceFile.file_options = m_fileOpt;
|
cfg->m_PlaceFile.file_options = m_radioBoxFilesCount->GetSelection();
|
||||||
cfg->m_PlaceFile.file_format = m_fileFormat;
|
cfg->m_PlaceFile.file_format = m_rbFormat->GetSelection();
|
||||||
cfg->m_PlaceFile.include_board_edge = m_includeBoardEdge;
|
cfg->m_PlaceFile.include_board_edge = m_cbIncludeBoardEdge->GetValue();
|
||||||
|
cfg->m_PlaceFile.exclude_TH = m_excludeTH->GetValue();
|
||||||
|
cfg->m_PlaceFile.only_SMD = m_onlySMD->GetValue();
|
||||||
cfg->m_PlaceFile.use_aux_origin = m_useDrillPlaceOrigin->GetValue();
|
cfg->m_PlaceFile.use_aux_origin = m_useDrillPlaceOrigin->GetValue();
|
||||||
cfg->m_PlaceFile.negate_xcoord = m_negateBottomX;
|
cfg->m_PlaceFile.negate_xcoord = m_negateXcb->GetValue();
|
||||||
|
|
||||||
// Set output directory and replace backslashes with forward ones
|
// Set output directory and replace backslashes with forward ones
|
||||||
// (Keep unix convention in cfg files)
|
// (Keep unix convention in cfg files)
|
||||||
|
@ -271,7 +245,7 @@ void DIALOG_GEN_FOOTPRINT_POSITION::OnGenerate( wxCommandEvent& event )
|
||||||
m_plotOpts.SetOutputDirectory( dirStr );
|
m_plotOpts.SetOutputDirectory( dirStr );
|
||||||
m_parent->SetPlotSettings( m_plotOpts );
|
m_parent->SetPlotSettings( m_plotOpts );
|
||||||
|
|
||||||
if( m_fileFormat == 2 )
|
if( m_rbFormat->GetSelection() == 2 )
|
||||||
CreateGerberFiles();
|
CreateGerberFiles();
|
||||||
else
|
else
|
||||||
CreateAsciiFiles();
|
CreateAsciiFiles();
|
||||||
|
@ -306,8 +280,7 @@ bool DIALOG_GEN_FOOTPRINT_POSITION::CreateGerberFiles()
|
||||||
|
|
||||||
if( !EnsureFileDirectoryExists( &outputDir, boardFilename, m_reporter ) )
|
if( !EnsureFileDirectoryExists( &outputDir, boardFilename, m_reporter ) )
|
||||||
{
|
{
|
||||||
msg.Printf( _( "Could not write plot files to folder '%s'." ),
|
msg.Printf( _( "Could not write plot files to folder '%s'." ), outputDir.GetPath() );
|
||||||
outputDir.GetPath() );
|
|
||||||
DisplayError( this, msg );
|
DisplayError( this, msg );
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -320,7 +293,7 @@ bool DIALOG_GEN_FOOTPRINT_POSITION::CreateGerberFiles()
|
||||||
PLACEFILE_GERBER_WRITER exporter( brd );
|
PLACEFILE_GERBER_WRITER exporter( brd );
|
||||||
wxString filename = exporter.GetPlaceFileName( fn.GetFullPath(), F_Cu );
|
wxString filename = exporter.GetPlaceFileName( fn.GetFullPath(), F_Cu );
|
||||||
|
|
||||||
int fpcount = exporter.CreatePlaceFile( filename, F_Cu, m_includeBoardEdge );
|
int fpcount = exporter.CreatePlaceFile( filename, F_Cu, m_cbIncludeBoardEdge->GetValue() );
|
||||||
|
|
||||||
if( fpcount < 0 )
|
if( fpcount < 0 )
|
||||||
{
|
{
|
||||||
|
@ -341,7 +314,7 @@ bool DIALOG_GEN_FOOTPRINT_POSITION::CreateGerberFiles()
|
||||||
|
|
||||||
filename = exporter.GetPlaceFileName( fn.GetFullPath(), B_Cu );
|
filename = exporter.GetPlaceFileName( fn.GetFullPath(), B_Cu );
|
||||||
|
|
||||||
fpcount = exporter.CreatePlaceFile( filename, B_Cu, m_includeBoardEdge );
|
fpcount = exporter.CreatePlaceFile( filename, B_Cu, m_cbIncludeBoardEdge->GetValue() );
|
||||||
|
|
||||||
if( fpcount < 0 )
|
if( fpcount < 0 )
|
||||||
{
|
{
|
||||||
|
@ -374,7 +347,7 @@ bool DIALOG_GEN_FOOTPRINT_POSITION::CreateAsciiFiles()
|
||||||
wxFileName fn;
|
wxFileName fn;
|
||||||
wxString msg;
|
wxString msg;
|
||||||
bool singleFile = OneFileOnly();
|
bool singleFile = OneFileOnly();
|
||||||
bool useCSVfmt = m_fileFormat == 1;
|
bool useCSVfmt = m_rbFormat->GetSelection() == 1;
|
||||||
bool useAuxOrigin = m_useDrillPlaceOrigin->GetValue();
|
bool useAuxOrigin = m_useDrillPlaceOrigin->GetValue();
|
||||||
int fullcount = 0;
|
int fullcount = 0;
|
||||||
int topSide = true;
|
int topSide = true;
|
||||||
|
|
|
@ -236,6 +236,8 @@ public:
|
||||||
int file_options;
|
int file_options;
|
||||||
int file_format;
|
int file_format;
|
||||||
bool include_board_edge;
|
bool include_board_edge;
|
||||||
|
bool exclude_TH;
|
||||||
|
bool only_SMD;
|
||||||
bool use_aux_origin;
|
bool use_aux_origin;
|
||||||
bool negate_xcoord;
|
bool negate_xcoord;
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue