33#define ARG_SIDE "--side"
34#define ARG_FORMAT "--format"
35#define ARG_UNITS "--units"
36#define ARG_NEGATE_BOTTOM_X "--bottom-negate-x"
37#define ARG_USE_DRILL_FILE_ORIGIN "--use-drill-file-origin"
38#define ARG_SMD_ONLY "--smd-only"
39#define ARG_EXCLUDE_FOOTPRINTS_TH "--exclude-fp-th"
40#define ARG_EXCLUDE_DNP "--exclude-dnp"
41#define ARG_GERBER_BOARD_EDGE "--gerber-board-edge"
49 .default_value( std::string(
"both" ) )
50 .help(
UTF8STDSTR(
_(
"Valid options: front,back,both. Gerber format only supports "
51 "\"front\" or \"back\"." ) ) );
54 .default_value( std::string(
"ascii" ) )
55 .help(
UTF8STDSTR(
_(
"Valid options: ascii,csv,gerber" ) ) )
59 .default_value( std::string(
"in" ) )
61 _(
"Output units; ascii or csv format only; valid options: in,mm" ) ) )
65 .help(
UTF8STDSTR(
_(
"Use negative X coordinates for footprints on bottom layer "
66 "(ascii or csv formats only)" ) ) )
70 .help(
UTF8STDSTR(
_(
"Use drill/place file origin (ascii or csv only)" ) ) )
74 .help(
UTF8STDSTR(
_(
"Include only SMD footprints (ascii or csv only)" ) ) )
79 _(
"Exclude all footprints with through-hole pads (ascii or csv only)" ) ) )
84 _(
"Exclude all footprints with the Do Not Populate flag set" ) ) )
88 .help(
UTF8STDSTR(
_(
"Include board edge layer (Gerber only)" ) ) )
101 aPosJob->m_filename = m_argInput;
102 aPosJob->SetOutputPath( m_argOutput );
104 if( !wxFile::Exists( aPosJob->m_filename ) )
106 wxFprintf( stderr,
_(
"Board file does not exist or is not accessible\n" ) );
111 aPosJob->m_smdOnly = m_argParser.get<
bool>(
ARG_SMD_ONLY );
118 if( format == wxS(
"ascii" ) )
122 else if( format == wxS(
"csv" ) )
126 else if( format == wxS(
"gerber" ) )
132 wxFprintf( stderr,
_(
"Invalid format\n" ) );
138 if( units == wxS(
"mm" ) )
142 else if( units == wxS(
"in" ) )
148 wxFprintf( stderr,
_(
"Invalid units specified\n" ) );
154 if( side == wxS(
"both" ) )
158 wxFprintf( stderr,
_(
"\"both\" not supported for Gerber format\n" ) );
164 else if( side == wxS(
"front" ) )
168 else if( side == wxS(
"back" ) )
174 wxFprintf( stderr,
_(
"Invalid side specified\n" ) );
argparse::ArgumentParser m_argParser
int doPerform(KIWAY &aKiway) override
The internal handler that should be overloaded to implement command specific processing and work.
A minimalistic software bus for communications between various DLLs/DSOs (DSOs) within the same KiCad...
int ProcessJob(KIWAY::FACE_T aFace, JOB *aJob)
Instantiate the current locale within a scope in which you are expecting exceptions to be thrown.
#define ARG_USE_DRILL_FILE_ORIGIN
#define ARG_EXCLUDE_FOOTPRINTS_TH
#define ARG_GERBER_BOARD_EDGE
#define ARG_NEGATE_BOTTOM_X
This file contains miscellaneous commonly used macros and functions.
static const int ERR_ARGS
static const int ERR_INVALID_INPUT_FILE
std::vector< FAB_LAYER_COLOR > dummy
wxString From_UTF8(const char *cstring)
int doPerform(KIWAY &aKiway) override
The internal handler that should be overloaded to implement command specific processing and work.