From b0eef3ee289fc90cc7e79d0a2b31698b40ab13dc Mon Sep 17 00:00:00 2001 From: Jeff Young <jeff@rokeby.ie> Date: Sun, 2 Mar 2025 19:26:34 +0000 Subject: [PATCH] Persist some missing jobset arguments. Also adds some missing CLI arguments. Fixes https://gitlab.com/kicad/code/kicad/-/issues/20116 --- common/jobs/job_export_pcb_dxf.cpp | 5 ++--- common/jobs/job_export_pcb_gerber.cpp | 10 ++------- common/jobs/job_export_pcb_pdf.cpp | 14 ------------ common/jobs/job_export_pcb_plot.cpp | 30 +++++++++++++++++++++++-- common/jobs/job_export_pcb_svg.cpp | 11 +-------- kicad/cli/command_pcb_export_dxf.cpp | 20 +++++++++++++++++ kicad/cli/command_pcb_export_gerber.cpp | 20 +++++++++++++++++ 7 files changed, 73 insertions(+), 37 deletions(-) diff --git a/common/jobs/job_export_pcb_dxf.cpp b/common/jobs/job_export_pcb_dxf.cpp index 31cab43b69..58e6429e5d 100644 --- a/common/jobs/job_export_pcb_dxf.cpp +++ b/common/jobs/job_export_pcb_dxf.cpp @@ -43,9 +43,8 @@ JOB_EXPORT_PCB_DXF::JOB_EXPORT_PCB_DXF() : { m_plotDrawingSheet = false; - m_params.emplace_back( - new JOB_PARAM<bool>( "plot_footprint_values", &m_plotFootprintValues, m_plotFootprintValues ) ); - m_params.emplace_back( new JOB_PARAM<bool>( "plot_graphic_items_using_contours", &m_plotGraphicItemsUsingContours, + m_params.emplace_back( new JOB_PARAM<bool>( "plot_graphic_items_using_contours", + &m_plotGraphicItemsUsingContours, m_plotGraphicItemsUsingContours ) ); m_params.emplace_back( new JOB_PARAM<DXF_UNITS>( "units", &m_dxfUnits, m_dxfUnits ) ); m_params.emplace_back( new JOB_PARAM<bool>( "polygon_mode", &m_polygonMode, m_polygonMode ) ); diff --git a/common/jobs/job_export_pcb_gerber.cpp b/common/jobs/job_export_pcb_gerber.cpp index 78c4cb80ef..d4b063fa63 100644 --- a/common/jobs/job_export_pcb_gerber.cpp +++ b/common/jobs/job_export_pcb_gerber.cpp @@ -33,19 +33,13 @@ JOB_EXPORT_PCB_GERBER::JOB_EXPORT_PCB_GERBER( const std::string& aType ) : { m_plotDrawingSheet = false; - m_params.emplace_back( new JOB_PARAM<wxString>( "drawing_sheet", - &m_drawingSheet, - m_drawingSheet ) ); - m_params.emplace_back( new JOB_PARAM<bool>( "plot_footprint_values", - &m_plotFootprintValues, - m_plotFootprintValues ) ); - m_params.emplace_back( new JOB_PARAM<bool>( "include_netlist_attributes", &m_includeNetlistAttributes, m_includeNetlistAttributes ) ); m_params.emplace_back( new JOB_PARAM<bool>( "use_x2_format", &m_useX2Format, m_useX2Format ) ); - m_params.emplace_back( new JOB_PARAM<bool>( "disable_aperture_macros", &m_disableApertureMacros, + m_params.emplace_back( new JOB_PARAM<bool>( "disable_aperture_macros", + &m_disableApertureMacros, m_disableApertureMacros ) ); m_params.emplace_back( new JOB_PARAM<bool>( "use_protel_file_extension", &m_useProtelFileExtension, diff --git a/common/jobs/job_export_pcb_pdf.cpp b/common/jobs/job_export_pcb_pdf.cpp index dceb36bead..e9aaded81d 100644 --- a/common/jobs/job_export_pcb_pdf.cpp +++ b/common/jobs/job_export_pcb_pdf.cpp @@ -46,20 +46,6 @@ JOB_EXPORT_PCB_PDF::JOB_EXPORT_PCB_PDF() : m_params.emplace_back( new JOB_PARAM<wxString>( "color_theme", &m_colorTheme, m_colorTheme ) ); - m_params.emplace_back( new JOB_PARAM<bool>( "mirror", - &m_mirror, m_mirror ) ); - m_params.emplace_back( new JOB_PARAM<bool>( "black_and_white", - &m_blackAndWhite, m_blackAndWhite ) ); - m_params.emplace_back( new JOB_PARAM<bool>( "negative", - &m_negative, m_negative ) ); - m_params.emplace_back( new JOB_PARAM<bool>( "plot_footprint_values", - &m_plotFootprintValues, m_plotFootprintValues ) ); - m_params.emplace_back( new JOB_PARAM<bool>( "plot_pad_numbers", - &m_plotPadNumbers, m_plotPadNumbers ) ); - m_params.emplace_back( new JOB_PARAM<bool>( "sketch_pads_on_fab_layers", - &m_sketchPadsOnFabLayers, m_sketchPadsOnFabLayers ) ); - m_params.emplace_back( new JOB_PARAM<DRILL_MARKS>( "drill_shape", - &m_drillShapeOption, m_drillShapeOption ) ); m_params.emplace_back( new JOB_PARAM<bool>( "pdf_metadata", &m_pdfMetadata, m_pdfMetadata ) ); diff --git a/common/jobs/job_export_pcb_plot.cpp b/common/jobs/job_export_pcb_plot.cpp index 429b220b3f..d82bf08681 100644 --- a/common/jobs/job_export_pcb_plot.cpp +++ b/common/jobs/job_export_pcb_plot.cpp @@ -49,6 +49,31 @@ JOB_EXPORT_PCB_PLOT::JOB_EXPORT_PCB_PLOT( PLOT_FORMAT aFormat, const std::string &m_printMaskLayersToIncludeOnAllLayers, m_printMaskLayersToIncludeOnAllLayers ) ); + m_params.emplace_back( new JOB_PARAM<bool>( "mirror", + &m_mirror, m_mirror ) ); + m_params.emplace_back( new JOB_PARAM<bool>( "black_and_white", + &m_blackAndWhite, m_blackAndWhite ) ); + m_params.emplace_back( new JOB_PARAM<bool>( "negative", + &m_negative, m_negative ) ); + + m_params.emplace_back( new JOB_PARAM<bool>( "plot_footprint_values", + &m_plotFootprintValues, m_plotFootprintValues ) ); + m_params.emplace_back( new JOB_PARAM<bool>( "plot_ref_des", + &m_plotRefDes, m_plotRefDes ) ); + + m_params.emplace_back( new JOB_PARAM<bool>( "hide_dnp_footprints_on_fab_layers", + &m_hideDNPFPsOnFabLayers, + m_hideDNPFPsOnFabLayers ) ); + m_params.emplace_back( new JOB_PARAM<bool>( "sketch_dnp_footprints_on_fab_layers", + &m_sketchDNPFPsOnFabLayers, + m_sketchDNPFPsOnFabLayers ) ); + m_params.emplace_back( new JOB_PARAM<bool>( "crossout_dnp_footprints_on_fab_layers", + &m_crossoutDNPFPsOnFabLayers, + m_crossoutDNPFPsOnFabLayers ) ); + + m_params.emplace_back( new JOB_PARAM<bool>( "sketch_pads_on_fab_layers", + &m_sketchPadsOnFabLayers, + m_sketchPadsOnFabLayers ) ); m_params.emplace_back( new JOB_PARAM<bool>( "plot_pad_numbers", &m_plotPadNumbers, m_plotPadNumbers ) ); @@ -59,11 +84,12 @@ JOB_EXPORT_PCB_PLOT::JOB_EXPORT_PCB_PLOT( PLOT_FORMAT aFormat, const std::string &m_subtractSolderMaskFromSilk, m_subtractSolderMaskFromSilk ) ); - m_params.emplace_back( new JOB_PARAM<bool>( "plot_ref_des", &m_plotRefDes, m_plotRefDes ) ); - m_params.emplace_back( new JOB_PARAM<bool>( "use_drill_origin", &m_useDrillOrigin, m_useDrillOrigin ) ); + m_params.emplace_back( new JOB_PARAM<DRILL_MARKS>( "drill_shape", + &m_drillShapeOption, m_drillShapeOption ) ); + m_params.emplace_back( new JOB_PARAM<wxString>( "drawing_sheet", &m_drawingSheet, m_drawingSheet ) ); } \ No newline at end of file diff --git a/common/jobs/job_export_pcb_svg.cpp b/common/jobs/job_export_pcb_svg.cpp index 321c89ddeb..3c51729d08 100644 --- a/common/jobs/job_export_pcb_svg.cpp +++ b/common/jobs/job_export_pcb_svg.cpp @@ -37,16 +37,7 @@ JOB_EXPORT_PCB_SVG::JOB_EXPORT_PCB_SVG() : m_plotDrawingSheet = true; m_params.emplace_back( new JOB_PARAM<wxString>( "color_theme", &m_colorTheme, m_colorTheme ) ); - m_params.emplace_back( new JOB_PARAM<bool>( "mirror", &m_mirror, m_mirror ) ); - m_params.emplace_back( - new JOB_PARAM<bool>( "black_and_white", &m_blackAndWhite, m_blackAndWhite ) ); - m_params.emplace_back( new JOB_PARAM<bool>( "negative", &m_negative, m_negative ) ); - m_params.emplace_back( new JOB_PARAM<bool>( - "sketch_pads_on_fab_layers", &m_sketchPadsOnFabLayers, m_sketchPadsOnFabLayers ) ); - m_params.emplace_back( - new JOB_PARAM<int>( "page_size_mode", &m_pageSizeMode, m_pageSizeMode ) ); - m_params.emplace_back( - new JOB_PARAM<DRILL_MARKS>( "drill_shape", &m_drillShapeOption, m_drillShapeOption ) ); + m_params.emplace_back( new JOB_PARAM<int>( "page_size_mode", &m_pageSizeMode, m_pageSizeMode ) ); m_params.emplace_back( new JOB_PARAM<unsigned int>( "precision", &m_precision, m_precision ) ); m_params.emplace_back( new JOB_PARAM<GEN_MODE>( "gen_mode", &m_genMode, m_genMode ) ); } diff --git a/kicad/cli/command_pcb_export_dxf.cpp b/kicad/cli/command_pcb_export_dxf.cpp index ea30c4d94f..8019cf0e20 100644 --- a/kicad/cli/command_pcb_export_dxf.cpp +++ b/kicad/cli/command_pcb_export_dxf.cpp @@ -53,6 +53,22 @@ CLI::PCB_EXPORT_DXF_COMMAND::PCB_EXPORT_DXF_COMMAND() : PCB_EXPORT_BASE_COMMAND( .help( UTF8STDSTR( _( "Exclude the value text" ) ) ) .flag(); + m_argParser.add_argument( "--sp", ARG_SKETCH_PADS_ON_FAB_LAYERS ) + .help( UTF8STDSTR( _( ARG_SKETCH_PADS_ON_FAB_LAYERS_DESC ) ) ) + .flag(); + + m_argParser.add_argument( "--hdnp", ARG_HIDE_DNP_FPS_ON_FAB_LAYERS ) + .help( UTF8STDSTR( _( ARG_HIDE_DNP_FPS_ON_FAB_LAYERS_DESC ) ) ) + .flag(); + + m_argParser.add_argument( "--sdnp", ARG_SKETCH_DNP_FPS_ON_FAB_LAYERS ) + .help( UTF8STDSTR( _( ARG_SKETCH_DNP_FPS_ON_FAB_LAYERS_DESC ) ) ) + .flag(); + + m_argParser.add_argument( "--cdnp", ARG_CROSSOUT_DNP_FPS_ON_FAB_LAYERS ) + .help( UTF8STDSTR( _( ARG_CROSSOUT_DNP_FPS_ON_FAB_LAYERS_DESC ) ) ) + .flag(); + m_argParser.add_argument( ARG_SUBTRACT_SOLDERMASK ) .help( UTF8STDSTR( _( "Subtract soldermask from silkscreen" ) ) ) .flag(); @@ -117,6 +133,10 @@ int CLI::PCB_EXPORT_DXF_COMMAND::doPerform( KIWAY& aKiway ) dxfJob->m_filename = m_argInput; dxfJob->SetConfiguredOutputPath( m_argOutput ); dxfJob->m_drawingSheet = m_argDrawingSheet; + dxfJob->m_sketchPadsOnFabLayers = m_argParser.get<bool>( ARG_SKETCH_PADS_ON_FAB_LAYERS ); + dxfJob->m_hideDNPFPsOnFabLayers = m_argParser.get<bool>( ARG_HIDE_DNP_FPS_ON_FAB_LAYERS ); + dxfJob->m_sketchDNPFPsOnFabLayers = m_argParser.get<bool>( ARG_SKETCH_DNP_FPS_ON_FAB_LAYERS ); + dxfJob->m_crossoutDNPFPsOnFabLayers = m_argParser.get<bool>( ARG_CROSSOUT_DNP_FPS_ON_FAB_LAYERS ); dxfJob->SetVarOverrides( m_argDefineVars ); if( !wxFile::Exists( dxfJob->m_filename ) ) diff --git a/kicad/cli/command_pcb_export_gerber.cpp b/kicad/cli/command_pcb_export_gerber.cpp index 5834ae2101..ebe6aa6da0 100644 --- a/kicad/cli/command_pcb_export_gerber.cpp +++ b/kicad/cli/command_pcb_export_gerber.cpp @@ -53,6 +53,22 @@ CLI::PCB_EXPORT_GERBER_COMMAND::PCB_EXPORT_GERBER_COMMAND( const std::string& aN .help( UTF8STDSTR( _( "Include the border and title block" ) ) ) .flag(); + m_argParser.add_argument( "--sp", ARG_SKETCH_PADS_ON_FAB_LAYERS ) + .help( UTF8STDSTR( _( ARG_SKETCH_PADS_ON_FAB_LAYERS_DESC ) ) ) + .flag(); + + m_argParser.add_argument( "--hdnp", ARG_HIDE_DNP_FPS_ON_FAB_LAYERS ) + .help( UTF8STDSTR( _( ARG_HIDE_DNP_FPS_ON_FAB_LAYERS_DESC ) ) ) + .flag(); + + m_argParser.add_argument( "--sdnp", ARG_SKETCH_DNP_FPS_ON_FAB_LAYERS ) + .help( UTF8STDSTR( _( ARG_SKETCH_DNP_FPS_ON_FAB_LAYERS_DESC ) ) ) + .flag(); + + m_argParser.add_argument( "--cdnp", ARG_CROSSOUT_DNP_FPS_ON_FAB_LAYERS ) + .help( UTF8STDSTR( _( ARG_CROSSOUT_DNP_FPS_ON_FAB_LAYERS_DESC ) ) ) + .flag(); + m_argParser.add_argument( ARG_NO_X2 ) .help( UTF8STDSTR( _( "Do not use the extended X2 format" ) ) ) .flag(); @@ -100,6 +116,10 @@ int CLI::PCB_EXPORT_GERBER_COMMAND::populateJob( JOB_EXPORT_PCB_GERBER* aJob ) aJob->m_filename = m_argInput; aJob->SetConfiguredOutputPath( m_argOutput ); aJob->m_drawingSheet = m_argDrawingSheet; + aJob->m_sketchPadsOnFabLayers = m_argParser.get<bool>( ARG_SKETCH_PADS_ON_FAB_LAYERS ); + aJob->m_hideDNPFPsOnFabLayers = m_argParser.get<bool>( ARG_HIDE_DNP_FPS_ON_FAB_LAYERS ); + aJob->m_sketchDNPFPsOnFabLayers = m_argParser.get<bool>( ARG_SKETCH_DNP_FPS_ON_FAB_LAYERS ); + aJob->m_crossoutDNPFPsOnFabLayers = m_argParser.get<bool>( ARG_CROSSOUT_DNP_FPS_ON_FAB_LAYERS ); aJob->SetVarOverrides( m_argDefineVars ); aJob->m_plotFootprintValues = !m_argParser.get<bool>( ARG_EXCLUDE_VALUE );