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" ) )
60 .help(
UTF8STDSTR(
_(
"Output units; ascii or csv format only; valid options: "
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)" ) ) )
83 .help(
UTF8STDSTR(
_(
"Exclude all footprints with the Do Not Populate flag set" ) ) )
87 .help(
UTF8STDSTR(
_(
"Include board edge layer (Gerber only)" ) ) )
101 aPosJob->m_filename = m_argInput;
102 aPosJob->SetConfiguredOutputPath( 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_singleFile =
true;
112 aPosJob->m_nakedFilename =
true;
113 aPosJob->m_smdOnly = m_argParser.get<
bool>(
ARG_SMD_ONLY );
121 if( format == wxS(
"ascii" ) )
125 else if( format == wxS(
"csv" ) )
129 else if( format == wxS(
"gerber" ) )
135 wxFprintf( stderr,
_(
"Invalid format\n" ) );
141 if( units == wxS(
"mm" ) )
145 else if( units == wxS(
"in" ) )
151 wxFprintf( stderr,
_(
"Invalid units specified\n" ) );
157 if( side == wxS(
"both" ) )
161 wxFprintf( stderr,
_(
"\"both\" not supported for Gerber format\n" ) );
167 else if( side == wxS(
"front" ) )
171 else if( side == wxS(
"back" ) )
177 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, REPORTER *aReporter=nullptr)
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.