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" ) )
51 "Valid options: front,back,both. Gerber format only supports \"both\"." ) ) );
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)" ) ) )
67 .implicit_value(
true )
68 .default_value(
false );
71 .help(
UTF8STDSTR(
_(
"Use drill/place file origin (ascii or csv only)" ) ) )
72 .implicit_value(
true )
73 .default_value(
false );
76 .help(
UTF8STDSTR(
_(
"Include only SMD footprints (ascii or csv only)" ) ) )
77 .implicit_value(
true )
78 .default_value(
false );
82 _(
"Exclude all footprints with through-hole pads (ascii or csv only)" ) ) )
83 .implicit_value(
true )
84 .default_value(
false );
88 _(
"Exclude all footprints with the Do Not Populate flag set" ) ) )
89 .implicit_value(
true )
90 .default_value(
false );
93 .help(
UTF8STDSTR(
_(
"Include board edge layer (Gerber only)" ) ) )
94 .implicit_value(
true )
95 .default_value(
false );
107 aPosJob->m_filename = m_argInput;
108 aPosJob->m_outputFile = m_argOutput;
110 if( !wxFile::Exists( aPosJob->m_filename ) )
112 wxFprintf( stderr,
_(
"Board file does not exist or is not accessible\n" ) );
117 aPosJob->m_smdOnly = m_argParser.get<
bool>(
ARG_SMD_ONLY );
124 if( format == wxS(
"ascii" ) )
128 else if( format == wxS(
"csv" ) )
132 else if( format == wxS(
"gerber" ) )
138 wxFprintf( stderr,
_(
"Invalid format\n" ) );
144 if( units == wxS(
"mm" ) )
148 else if( units == wxS(
"in" ) )
154 wxFprintf( stderr,
_(
"Invalid units specified\n" ) );
160 if( side == wxS(
"both" ) )
164 wxFprintf( stderr,
_(
"\"both\" not supported for Gerber format\n" ) );
170 else if( side == wxS(
"front" ) )
174 else if( side == wxS(
"back" ) )
180 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 *job)
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.