diff --git a/src/kicadcliwrapper/generated/kicad_cli.py b/src/kicadcliwrapper/generated/kicad_cli.py index b29abfe..0aa55dd 100644 --- a/src/kicadcliwrapper/generated/kicad_cli.py +++ b/src/kicadcliwrapper/generated/kicad_cli.py @@ -60,7 +60,7 @@ class export: class svg: """ Args: - INPUT_DIR: Input directory + INPUT_FILE_OR_DIR: Input file or directory output: Output directory [nargs=0..1] [default: ""] layers: Comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""] define_var: Overrides or adds project variables, can be used multiple times to declare multiple variables. @@ -75,8 +75,8 @@ class svg: """ # Arguments (Required) - INPUT_DIR: str - """Input directory""" + INPUT_FILE_OR_DIR: str + """Input file or directory""" # Arguments (Optional) output: str | None = None """Output directory [nargs=0..1] [default: ""]""" @@ -106,15 +106,15 @@ class svg: class upgrade: """ Args: - INPUT_DIR: Input directory + INPUT_FILE_OR_DIR: Input file or directory output: Output directory [nargs=0..1] [default: ""] help: Shows help message and exits force: Forces the footprint library to be resaved regardless of versioning """ # Arguments (Required) - INPUT_DIR: str - """Input directory""" + INPUT_FILE_OR_DIR: str + """Input file or directory""" # Arguments (Optional) output: str | None = None """Output directory [nargs=0..1] [default: ""]""" @@ -171,7 +171,7 @@ class pcb: help: Shows help message and exits """ - cmd: "drc | export | render" + cmd: "drc | export | _import | render | upgrade" # Arguments (Required) # Arguments (Optional) # Flags @@ -196,6 +196,8 @@ class drc: severity_warning: Report all DRC warning level violations, this can be combined with the other severity arguments severity_exclusions: Report all excluded DRC violations, this can be combined with the other severity arguments exit_code_violations: Return a nonzero exit code if DRC violations exist + refill_zones: Refill zones before running DRC + save_board: Save the board after DRC, must be used with --refill-zones """ # Arguments (Required) @@ -227,6 +229,10 @@ class drc: """Report all excluded DRC violations, this can be combined with the other severity arguments""" exit_code_violations: bool = False """Return a nonzero exit code if DRC violations exist""" + refill_zones: bool = False + """Refill zones before running DRC""" + save_board: bool = False + """Save the board after DRC, must be used with --refill-zones""" @dataclass class export: @@ -235,7 +241,7 @@ class export: help: Shows help message and exits """ - cmd: "brep | drill | dxf | gencad | gerber | gerbers | glb | ipc2581 | ipcd356 | odb | pdf | ply | pos | step | stl | svg | vrml | xao" + cmd: "_3dpdf | brep | drill | dxf | gencad | gerbers | glb | hpgl | ipc2581 | ipcd356 | odb | pdf | ply | pos | ps | stats | step | stl | stpz | svg | u3d | vrml | xao" # Arguments (Required) # Arguments (Optional) # Flags @@ -243,6 +249,100 @@ class export: """Shows help message and exits""" # Commands + @dataclass + class _3dpdf: + """ + Args: + INPUT_FILE: Input file + output: Output file [nargs=0..1] [default: ""] + define_var: Overrides or adds project variables, can be used multiple times to declare multiple variables. + variant: The variant name(s) to output, can be used multiple times to specify multiple variants. + component_filter: Only include component 3D models matching this list of reference designators (comma-separated, wildcards supported) [nargs=0..1] [default: ""] + min_distance: Minimum distance between points to treat them as separate ones [nargs=0..1] [default: "0.01mm"] + net_filter: Only include copper items belonging to nets matching this wildcard [nargs=0..1] [default: ""] + user_origin: User-specified output origin ex. 1x1in, 1x1inch, 25.4x25.4mm (default unit mm) [nargs=0..1] [default: ""] + help: Shows help message and exits + force: Overwrite output file + no_unspecified: Exclude 3D models for components with 'Unspecified' footprint type + no_dnp: Exclude 3D models for components with 'Do not populate' attribute + grid_origin: Use Grid Origin for output origin + drill_origin: Use Drill Origin for output origin + subst_models: Substitute STEP or IGS models with the same name in place of VRML models + board_only: Only generate a board with no components + cut_vias_in_body: Cut via holes in board body even if conductor layers are not exported. + no_board_body: Exclude board body + no_components: Exclude 3D models for components + include_tracks: Export tracks and vias + include_pads: Export pads + include_zones: Export zones + include_inner_copper: Export elements on inner copper layers + include_silkscreen: Export silkscreen graphics as a set of flat faces + include_soldermask: Export soldermask layers as a set of flat faces + fuse_shapes: Fuse overlapping geometry together + fill_all_vias: Don't cut via holes in conductor layers. + no_extra_pad_thickness: Disable extra pad thickness (pads will have normal thickness) + """ + + # Arguments (Required) + INPUT_FILE: str + """Input file""" + # Arguments (Optional) + output: str | None = None + """Output file [nargs=0..1] [default: ""]""" + define_var: str | None = None + """Overrides or adds project variables, can be used multiple times to declare multiple variables.""" + variant: str | None = None + """The variant name(s) to output, can be used multiple times to specify multiple variants.""" + component_filter: str | None = None + """Only include component 3D models matching this list of reference designators (comma-separated, wildcards supported) [nargs=0..1] [default: ""]""" + min_distance: str | None = None + """Minimum distance between points to treat them as separate ones [nargs=0..1] [default: "0.01mm"]""" + net_filter: str | None = None + """Only include copper items belonging to nets matching this wildcard [nargs=0..1] [default: ""]""" + user_origin: str | None = None + """User-specified output origin ex. 1x1in, 1x1inch, 25.4x25.4mm (default unit mm) [nargs=0..1] [default: ""]""" + # Flags + help: bool = False + """Shows help message and exits""" + force: bool = False + """Overwrite output file""" + no_unspecified: bool = False + """Exclude 3D models for components with 'Unspecified' footprint type""" + no_dnp: bool = False + """Exclude 3D models for components with 'Do not populate' attribute""" + grid_origin: bool = False + """Use Grid Origin for output origin""" + drill_origin: bool = False + """Use Drill Origin for output origin""" + subst_models: bool = False + """Substitute STEP or IGS models with the same name in place of VRML models""" + board_only: bool = False + """Only generate a board with no components""" + cut_vias_in_body: bool = False + """Cut via holes in board body even if conductor layers are not exported.""" + no_board_body: bool = False + """Exclude board body""" + no_components: bool = False + """Exclude 3D models for components""" + include_tracks: bool = False + """Export tracks and vias""" + include_pads: bool = False + """Export pads""" + include_zones: bool = False + """Export zones""" + include_inner_copper: bool = False + """Export elements on inner copper layers""" + include_silkscreen: bool = False + """Export silkscreen graphics as a set of flat faces""" + include_soldermask: bool = False + """Export soldermask layers as a set of flat faces""" + fuse_shapes: bool = False + """Fuse overlapping geometry together""" + fill_all_vias: bool = False + """Don't cut via holes in conductor layers.""" + no_extra_pad_thickness: bool = False + """Disable extra pad thickness (pads will have normal thickness)""" + @dataclass class brep: """ @@ -250,6 +350,7 @@ class brep: INPUT_FILE: Input file output: Output file [nargs=0..1] [default: ""] define_var: Overrides or adds project variables, can be used multiple times to declare multiple variables. + variant: The variant name(s) to output, can be used multiple times to specify multiple variants. component_filter: Only include component 3D models matching this list of reference designators (comma-separated, wildcards supported) [nargs=0..1] [default: ""] min_distance: Minimum distance between points to treat them as separate ones [nargs=0..1] [default: "0.01mm"] net_filter: Only include copper items belonging to nets matching this wildcard [nargs=0..1] [default: ""] @@ -273,6 +374,7 @@ class brep: include_soldermask: Export soldermask layers as a set of flat faces fuse_shapes: Fuse overlapping geometry together fill_all_vias: Don't cut via holes in conductor layers. + no_extra_pad_thickness: Disable extra pad thickness (pads will have normal thickness) """ # Arguments (Required) @@ -283,6 +385,8 @@ class brep: """Output file [nargs=0..1] [default: ""]""" define_var: str | None = None """Overrides or adds project variables, can be used multiple times to declare multiple variables.""" + variant: str | None = None + """The variant name(s) to output, can be used multiple times to specify multiple variants.""" component_filter: str | None = None """Only include component 3D models matching this list of reference designators (comma-separated, wildcards supported) [nargs=0..1] [default: ""]""" min_distance: str | None = None @@ -330,6 +434,8 @@ class brep: """Fuse overlapping geometry together""" fill_all_vias: bool = False """Don't cut via holes in conductor layers.""" + no_extra_pad_thickness: bool = False + """Disable extra pad thickness (pads will have normal thickness)""" @dataclass class drill: @@ -338,17 +444,20 @@ class drill: INPUT_FILE: Input file output: Output directory [nargs=0..1] [default: ""] format: Valid options excellon, gerber. [nargs=0..1] [default: "excellon"] - drill_origin: Valid options are: absolute,plot [nargs=0..1] [default: "absolute"] - excellon_zeros_format: Valid options are: decimal,suppressleading,suppresstrailing,keep. [nargs=0..1] [default: "decimal"] - excellon_oval_format: Valid options are: route,alternate. [nargs=0..1] [default: "alternate"] - excellon_units: Output units, valid options:in,mm [nargs=0..1] [default: "mm"] - map_format: Valid options: pdf,gerberx2,ps,dxf,svg [nargs=0..1] [default: "pdf"] + drill_origin: Valid options are: absolute, plot [nargs=0..1] [default: "absolute"] + excellon_zeros_format: Valid options are: decimal, suppressleading, suppresstrailing, keep. [nargs=0..1] [default: "decimal"] + excellon_oval_format: Valid options are: route, alternate. [nargs=0..1] [default: "alternate"] + excellon_units: Output units, valid options: in, mm [nargs=0..1] [default: "mm"] + report_path: Report output file path [nargs=0..1] [default: ""] + map_format: Valid options: pdf, gerberx2, ps, dxf, svg [nargs=0..1] [default: "pdf"] gerber_precision: Precision of Gerber coordinates (5 or 6) [nargs=0..1] [default: 6] help: Shows help message and exits excellon_mirror_y: Mirror Y axis excellon_min_header: Minimal header excellon_separate_th: Generate independent files for NPTH and PTH holes generate_map: Generate map / summary of drill hits + generate_report: Generate report of drill hits + generate_tenting: Generate a file specifically for tenting """ # Arguments (Required) @@ -360,15 +469,17 @@ class drill: format: str | None = None """Valid options excellon, gerber. [nargs=0..1] [default: "excellon"]""" drill_origin: str | None = None - """Valid options are: absolute,plot [nargs=0..1] [default: "absolute"]""" + """Valid options are: absolute, plot [nargs=0..1] [default: "absolute"]""" excellon_zeros_format: str | None = None - """Valid options are: decimal,suppressleading,suppresstrailing,keep. [nargs=0..1] [default: "decimal"]""" + """Valid options are: decimal, suppressleading, suppresstrailing, keep. [nargs=0..1] [default: "decimal"]""" excellon_oval_format: str | None = None - """Valid options are: route,alternate. [nargs=0..1] [default: "alternate"]""" + """Valid options are: route, alternate. [nargs=0..1] [default: "alternate"]""" excellon_units: str | None = None - """Output units, valid options:in,mm [nargs=0..1] [default: "mm"]""" + """Output units, valid options: in, mm [nargs=0..1] [default: "mm"]""" + report_path: str | None = None + """Report output file path [nargs=0..1] [default: ""]""" map_format: str | None = None - """Valid options: pdf,gerberx2,ps,dxf,svg [nargs=0..1] [default: "pdf"]""" + """Valid options: pdf, gerberx2, ps, dxf, svg [nargs=0..1] [default: "pdf"]""" gerber_precision: str | None = None """Precision of Gerber coordinates (5 or 6) [nargs=0..1] [default: 6]""" # Flags @@ -382,19 +493,25 @@ class drill: """Generate independent files for NPTH and PTH holes""" generate_map: bool = False """Generate map / summary of drill hits""" + generate_report: bool = False + """Generate report of drill hits""" + generate_tenting: bool = False + """Generate a file specifically for tenting""" @dataclass class dxf: """ Args: INPUT_FILE: Input file - output: Output file [nargs=0..1] [default: ""] + output: Output directory [nargs=0..1] [default: ""] layers: Comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""] + common_layers: Layers to include on each plot, comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""] drawing_sheet: Path to drawing sheet, this overrides any existing project defined sheet when used [nargs=0..1] [default: ""] define_var: Overrides or adds project variables, can be used multiple times to declare multiple variables. output_units: Output units, valid options: mm, in [nargs=0..1] [default: "in"] drill_shape_opt: Set pad/via drill shape option (0 = no shape, 1 = small shape, 2 = actual shape) [nargs=0..1] [default: 2] - common_layers: Layers to include on each plot, comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""] + scale: Scale for the PCB, not for the border and title. Use 0 for autoscale [nargs=0..1] [default: 1] + variant: The variant name(s) to output, can be used multiple times to specify multiple variants. help: Shows help message and exits exclude_refdes: Exclude the reference designator text exclude_value: Exclude the value text @@ -408,7 +525,7 @@ class dxf: include_border_title: Include the border and title block mode_single: Generates a single file with the output arg path acting as the complete directory and filename path. COMMON_LAYER_LIST does not function in this mode. Instead LAYER_LIST controls all layers plotted. mode_multi: Generates one or more files with behavior similar to the KiCad GUI plotting. The given output path specifies a directory in which files may be output. - plot_invisible_text: Deprecated. Has no effect. + check_zones: Check and refill zones if required """ # Arguments (Required) @@ -416,9 +533,11 @@ class dxf: """Input file""" # Arguments (Optional) output: str | None = None - """Output file [nargs=0..1] [default: ""]""" + """Output directory [nargs=0..1] [default: ""]""" layers: str | None = None """Comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""]""" + common_layers: str | None = None + """Layers to include on each plot, comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""]""" drawing_sheet: str | None = None """Path to drawing sheet, this overrides any existing project defined sheet when used [nargs=0..1] [default: ""]""" define_var: str | None = None @@ -427,8 +546,10 @@ class dxf: """Output units, valid options: mm, in [nargs=0..1] [default: "in"]""" drill_shape_opt: str | None = None """Set pad/via drill shape option (0 = no shape, 1 = small shape, 2 = actual shape) [nargs=0..1] [default: 2]""" - common_layers: str | None = None - """Layers to include on each plot, comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""]""" + scale: str | None = None + """Scale for the PCB, not for the border and title. Use 0 for autoscale [nargs=0..1] [default: 1]""" + variant: str | None = None + """The variant name(s) to output, can be used multiple times to specify multiple variants.""" # Flags help: bool = False """Shows help message and exits""" @@ -456,15 +577,15 @@ class dxf: """Generates a single file with the output arg path acting as the complete directory and filename path. COMMON_LAYER_LIST does not function in this mode. Instead LAYER_LIST controls all layers plotted.""" mode_multi: bool = False """Generates one or more files with behavior similar to the KiCad GUI plotting. The given output path specifies a directory in which files may be output.""" - plot_invisible_text: bool = False - """Deprecated. Has no effect.""" + check_zones: bool = False + """Check and refill zones if required""" @dataclass class gencad: """ Args: INPUT_FILE: Input file - output: Output file [nargs=0..1] [default: ""] + output: Output directory [nargs=0..1] [default: ""] define_var: Overrides or adds project variables, can be used multiple times to declare multiple variables. help: Shows help message and exits flip_bottom_pads: Flip bottom footprint padstacks @@ -479,7 +600,7 @@ class gencad: """Input file""" # Arguments (Optional) output: str | None = None - """Output file [nargs=0..1] [default: ""]""" + """Output directory [nargs=0..1] [default: ""]""" define_var: str | None = None """Overrides or adds project variables, can be used multiple times to declare multiple variables.""" # Flags @@ -496,94 +617,18 @@ class gencad: store_origin_coord: bool = False """Save the origin coordinates in the file""" - @dataclass - class gerber: - """ - Args: - INPUT_FILE: Input file - output: Output file [nargs=0..1] [default: ""] - layers: Comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""] - drawing_sheet: Path to drawing sheet, this overrides any existing project defined sheet when used [nargs=0..1] [default: ""] - define_var: Overrides or adds project variables, can be used multiple times to declare multiple variables. - common_layers: Layers to include on each plot, comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""] - precision: Precision of Gerber coordinates, valid options: 5 or 6 [nargs=0..1] [default: 6] - help: Shows help message and exits - exclude_refdes: Exclude the reference designator text - exclude_value: Exclude the value text - include_border_title: Include the border and title block - sketch_pads_on_fab_layers: Draw pad outlines and their numbers on front and back fab layers - hide_DNP_footprints_on_fab_layers: Don't plot text & graphics of DNP footprints on fab layers - sketch_DNP_footprints_on_fab_layers: Plot graphics of DNP footprints in sketch mode on fab layers - crossout_DNP_footprints_on_fab_layers: Plot an 'X' over the courtyard of DNP footprints on fab layers, and strikeout their reference designators - no_x2: Do not use the extended X2 format - no_netlist: Do not generate netlist attributes - subtract_soldermask: Subtract soldermask from silkscreen - disable_aperture_macros: Disable aperture macros - use_drill_file_origin: Use drill/place file origin - no_protel_ext: Use KiCad Gerber file extension - plot_invisible_text: Deprecated. Has no effect. - """ - - # Arguments (Required) - INPUT_FILE: str - """Input file""" - # Arguments (Optional) - output: str | None = None - """Output file [nargs=0..1] [default: ""]""" - layers: str | None = None - """Comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""]""" - drawing_sheet: str | None = None - """Path to drawing sheet, this overrides any existing project defined sheet when used [nargs=0..1] [default: ""]""" - define_var: str | None = None - """Overrides or adds project variables, can be used multiple times to declare multiple variables.""" - common_layers: str | None = None - """Layers to include on each plot, comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""]""" - precision: str | None = None - """Precision of Gerber coordinates, valid options: 5 or 6 [nargs=0..1] [default: 6]""" - # Flags - help: bool = False - """Shows help message and exits""" - exclude_refdes: bool = False - """Exclude the reference designator text""" - exclude_value: bool = False - """Exclude the value text""" - include_border_title: bool = False - """Include the border and title block""" - sketch_pads_on_fab_layers: bool = False - """Draw pad outlines and their numbers on front and back fab layers""" - hide_DNP_footprints_on_fab_layers: bool = False - """Don't plot text & graphics of DNP footprints on fab layers""" - sketch_DNP_footprints_on_fab_layers: bool = False - """Plot graphics of DNP footprints in sketch mode on fab layers""" - crossout_DNP_footprints_on_fab_layers: bool = False - """Plot an 'X' over the courtyard of DNP footprints on fab layers, and strikeout their reference designators""" - no_x2: bool = False - """Do not use the extended X2 format""" - no_netlist: bool = False - """Do not generate netlist attributes""" - subtract_soldermask: bool = False - """Subtract soldermask from silkscreen""" - disable_aperture_macros: bool = False - """Disable aperture macros""" - use_drill_file_origin: bool = False - """Use drill/place file origin""" - no_protel_ext: bool = False - """Use KiCad Gerber file extension""" - plot_invisible_text: bool = False - """Deprecated. Has no effect.""" - @dataclass class gerbers: """ Args: INPUT_FILE: Input file - output: Output file [nargs=0..1] [default: ""] + output: Output directory [nargs=0..1] [default: ""] layers: Comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""] + common_layers: Layers to include on each plot, comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""] drawing_sheet: Path to drawing sheet, this overrides any existing project defined sheet when used [nargs=0..1] [default: ""] define_var: Overrides or adds project variables, can be used multiple times to declare multiple variables. - common_layers: Layers to include on each plot, comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""] precision: Precision of Gerber coordinates, valid options: 5 or 6 [nargs=0..1] [default: 6] - common_layers: Layers to include on each plot, comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""] + variant: The variant name(s) to output, can be used multiple times to specify multiple variants. help: Shows help message and exits exclude_refdes: Exclude the reference designator text exclude_value: Exclude the value text @@ -598,7 +643,7 @@ class gerbers: disable_aperture_macros: Disable aperture macros use_drill_file_origin: Use drill/place file origin no_protel_ext: Use KiCad Gerber file extension - plot_invisible_text: Deprecated. Has no effect. + check_zones: Check and refill zones if required board_plot_params: Use the Gerber plot settings already configured in the board file """ @@ -607,19 +652,19 @@ class gerbers: """Input file""" # Arguments (Optional) output: str | None = None - """Output file [nargs=0..1] [default: ""]""" + """Output directory [nargs=0..1] [default: ""]""" layers: str | None = None """Comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""]""" + common_layers: str | None = None + """Layers to include on each plot, comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""]""" drawing_sheet: str | None = None """Path to drawing sheet, this overrides any existing project defined sheet when used [nargs=0..1] [default: ""]""" define_var: str | None = None """Overrides or adds project variables, can be used multiple times to declare multiple variables.""" - common_layers: str | None = None - """Layers to include on each plot, comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""]""" precision: str | None = None """Precision of Gerber coordinates, valid options: 5 or 6 [nargs=0..1] [default: 6]""" - common_layers: str | None = None - """Layers to include on each plot, comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""]""" + variant: str | None = None + """The variant name(s) to output, can be used multiple times to specify multiple variants.""" # Flags help: bool = False """Shows help message and exits""" @@ -649,8 +694,8 @@ class gerbers: """Use drill/place file origin""" no_protel_ext: bool = False """Use KiCad Gerber file extension""" - plot_invisible_text: bool = False - """Deprecated. Has no effect.""" + check_zones: bool = False + """Check and refill zones if required""" board_plot_params: bool = False """Use the Gerber plot settings already configured in the board file""" @@ -661,6 +706,7 @@ class glb: INPUT_FILE: Input file output: Output file [nargs=0..1] [default: ""] define_var: Overrides or adds project variables, can be used multiple times to declare multiple variables. + variant: The variant name(s) to output, can be used multiple times to specify multiple variants. component_filter: Only include component 3D models matching this list of reference designators (comma-separated, wildcards supported) [nargs=0..1] [default: ""] min_distance: Minimum distance between points to treat them as separate ones [nargs=0..1] [default: "0.01mm"] net_filter: Only include copper items belonging to nets matching this wildcard [nargs=0..1] [default: ""] @@ -684,6 +730,7 @@ class glb: include_soldermask: Export soldermask layers as a set of flat faces fuse_shapes: Fuse overlapping geometry together fill_all_vias: Don't cut via holes in conductor layers. + no_extra_pad_thickness: Disable extra pad thickness (pads will have normal thickness) """ # Arguments (Required) @@ -694,6 +741,8 @@ class glb: """Output file [nargs=0..1] [default: ""]""" define_var: str | None = None """Overrides or adds project variables, can be used multiple times to declare multiple variables.""" + variant: str | None = None + """The variant name(s) to output, can be used multiple times to specify multiple variants.""" component_filter: str | None = None """Only include component 3D models matching this list of reference designators (comma-separated, wildcards supported) [nargs=0..1] [default: ""]""" min_distance: str | None = None @@ -741,6 +790,27 @@ class glb: """Fuse overlapping geometry together""" fill_all_vias: bool = False """Don't cut via holes in conductor layers.""" + no_extra_pad_thickness: bool = False + """Disable extra pad thickness (pads will have normal thickness)""" + + @dataclass + class hpgl: + """ + Args: + INPUT_FILE: Input file + output: Output directory [nargs=0..1] [default: ""] + help: Shows help message and exits + """ + + # Arguments (Required) + INPUT_FILE: str + """Input file""" + # Arguments (Optional) + output: str | None = None + """Output directory [nargs=0..1] [default: ""]""" + # Flags + help: bool = False + """Shows help message and exits""" @dataclass class ipc2581: @@ -758,6 +828,8 @@ class ipc2581: bom_col_mfg: Name of the part field to use for the Bill of Material Manufacturer Column [nargs=0..1] [default: ""] bom_col_dist_pn: Name of the part field to use for the Bill of Material Distributor Part Number Column [nargs=0..1] [default: ""] bom_col_dist: Name to insert into Bill of Material Distributor Column [nargs=0..1] [default: ""] + bom_rev: BOM revision to use in the output file. Defaults to schematic revision from the project file [nargs=0..1] [default: ""] + variant: The variant name(s) to output, can be used multiple times to specify multiple variants. help: Shows help message and exits compress: Compress the output """ @@ -788,6 +860,10 @@ class ipc2581: """Name of the part field to use for the Bill of Material Distributor Part Number Column [nargs=0..1] [default: ""]""" bom_col_dist: str | None = None """Name to insert into Bill of Material Distributor Column [nargs=0..1] [default: ""]""" + bom_rev: str | None = None + """BOM revision to use in the output file. Defaults to schematic revision from the project file [nargs=0..1] [default: ""]""" + variant: str | None = None + """The variant name(s) to output, can be used multiple times to specify multiple variants.""" # Flags help: bool = False """Shows help message and exits""" @@ -824,6 +900,7 @@ class odb: precision: Precision [nargs=0..1] [default: 2] compression: Compression mode [nargs=0..1] [default: "zip"] units: Units [nargs=0..1] [default: "mm"] + variant: The variant name(s) to output, can be used multiple times to specify multiple variants. help: Shows help message and exits """ @@ -843,22 +920,263 @@ class odb: """Compression mode [nargs=0..1] [default: "zip"]""" units: str | None = None """Units [nargs=0..1] [default: "mm"]""" + variant: str | None = None + """The variant name(s) to output, can be used multiple times to specify multiple variants.""" # Flags help: bool = False """Shows help message and exits""" @dataclass class pdf: + """ + Args: + INPUT_FILE: Input file + output: Output directory [nargs=0..1] [default: ""] + layers: Comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""] + common_layers: Layers to include on each plot, comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""] + drawing_sheet: Path to drawing sheet, this overrides any existing project defined sheet when used [nargs=0..1] [default: ""] + define_var: Overrides or adds project variables, can be used multiple times to declare multiple variables. + theme: Color theme to use (will default to PCB Editor settings) [nargs=0..1] [default: ""] + drill_shape_opt: Set pad/via drill shape option (0 = no shape, 1 = small shape, 2 = actual shape) [nargs=0..1] [default: 2] + scale: Scale for the PCB, not for the border and title. Use 0 for autoscale [nargs=0..1] [default: 1] + bg_color: Background color, can be in hex #rrggbb, #rrggbbaa; or css rgb(r,g,b), rgba(r,g,b,a) format [nargs=0..1] [default: ""] + variant: The variant name(s) to output, can be used multiple times to specify multiple variants. + help: Shows help message and exits + mirror: Mirror the board (useful for trying to show bottom layers) + exclude_refdes: Exclude the reference designator text + exclude_value: Exclude the value text + include_border_title: Include the border and title block + subtract_soldermask: Subtract soldermask from silkscreen + sketch_pads_on_fab_layers: Draw pad outlines and their numbers on front and back fab layers + hide_DNP_footprints_on_fab_layers: Don't plot text & graphics of DNP footprints on fab layers + sketch_DNP_footprints_on_fab_layers: Plot graphics of DNP footprints in sketch mode on fab layers + crossout_DNP_footprints_on_fab_layers: Plot an 'X' over the courtyard of DNP footprints on fab layers, and strikeout their reference designators + negative: Plot as negative (useful for directly etching from the export) + black_and_white: Black and white only + mode_single: Generates a single file with the output arg path acting as the complete directory and filename path. COMMON_LAYER_LIST does not function in this mode. Instead LAYER_LIST controls all layers plotted. + mode_separate: Plot the layers to individual PDF files + mode_multipage: Plot the layers to a single PDF file with multiple pages + check_zones: Check and refill zones if required + """ + + # Arguments (Required) + INPUT_FILE: str + """Input file""" + # Arguments (Optional) + output: str | None = None + """Output directory [nargs=0..1] [default: ""]""" + layers: str | None = None + """Comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""]""" + common_layers: str | None = None + """Layers to include on each plot, comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""]""" + drawing_sheet: str | None = None + """Path to drawing sheet, this overrides any existing project defined sheet when used [nargs=0..1] [default: ""]""" + define_var: str | None = None + """Overrides or adds project variables, can be used multiple times to declare multiple variables.""" + theme: str | None = None + """Color theme to use (will default to PCB Editor settings) [nargs=0..1] [default: ""]""" + drill_shape_opt: str | None = None + """Set pad/via drill shape option (0 = no shape, 1 = small shape, 2 = actual shape) [nargs=0..1] [default: 2]""" + scale: str | None = None + """Scale for the PCB, not for the border and title. Use 0 for autoscale [nargs=0..1] [default: 1]""" + bg_color: str | None = None + """Background color, can be in hex #rrggbb, #rrggbbaa; or css rgb(r,g,b), rgba(r,g,b,a) format [nargs=0..1] [default: ""]""" + variant: str | None = None + """The variant name(s) to output, can be used multiple times to specify multiple variants.""" + # Flags + help: bool = False + """Shows help message and exits""" + mirror: bool = False + """Mirror the board (useful for trying to show bottom layers)""" + exclude_refdes: bool = False + """Exclude the reference designator text""" + exclude_value: bool = False + """Exclude the value text""" + include_border_title: bool = False + """Include the border and title block""" + subtract_soldermask: bool = False + """Subtract soldermask from silkscreen""" + sketch_pads_on_fab_layers: bool = False + """Draw pad outlines and their numbers on front and back fab layers""" + hide_DNP_footprints_on_fab_layers: bool = False + """Don't plot text & graphics of DNP footprints on fab layers""" + sketch_DNP_footprints_on_fab_layers: bool = False + """Plot graphics of DNP footprints in sketch mode on fab layers""" + crossout_DNP_footprints_on_fab_layers: bool = False + """Plot an 'X' over the courtyard of DNP footprints on fab layers, and strikeout their reference designators""" + negative: bool = False + """Plot as negative (useful for directly etching from the export)""" + black_and_white: bool = False + """Black and white only""" + mode_single: bool = False + """Generates a single file with the output arg path acting as the complete directory and filename path. COMMON_LAYER_LIST does not function in this mode. Instead LAYER_LIST controls all layers plotted.""" + mode_separate: bool = False + """Plot the layers to individual PDF files""" + mode_multipage: bool = False + """Plot the layers to a single PDF file with multiple pages""" + check_zones: bool = False + """Check and refill zones if required""" + + @dataclass + class ply: """ Args: INPUT_FILE: Input file output: Output file [nargs=0..1] [default: ""] + define_var: Overrides or adds project variables, can be used multiple times to declare multiple variables. + variant: The variant name(s) to output, can be used multiple times to specify multiple variants. + component_filter: Only include component 3D models matching this list of reference designators (comma-separated, wildcards supported) [nargs=0..1] [default: ""] + min_distance: Minimum distance between points to treat them as separate ones [nargs=0..1] [default: "0.01mm"] + net_filter: Only include copper items belonging to nets matching this wildcard [nargs=0..1] [default: ""] + user_origin: User-specified output origin ex. 1x1in, 1x1inch, 25.4x25.4mm (default unit mm) [nargs=0..1] [default: ""] + help: Shows help message and exits + force: Overwrite output file + no_unspecified: Exclude 3D models for components with 'Unspecified' footprint type + no_dnp: Exclude 3D models for components with 'Do not populate' attribute + grid_origin: Use Grid Origin for output origin + drill_origin: Use Drill Origin for output origin + subst_models: Substitute STEP or IGS models with the same name in place of VRML models + board_only: Only generate a board with no components + cut_vias_in_body: Cut via holes in board body even if conductor layers are not exported. + no_board_body: Exclude board body + no_components: Exclude 3D models for components + include_tracks: Export tracks and vias + include_pads: Export pads + include_zones: Export zones + include_inner_copper: Export elements on inner copper layers + include_silkscreen: Export silkscreen graphics as a set of flat faces + include_soldermask: Export soldermask layers as a set of flat faces + fuse_shapes: Fuse overlapping geometry together + fill_all_vias: Don't cut via holes in conductor layers. + no_extra_pad_thickness: Disable extra pad thickness (pads will have normal thickness) + """ + + # Arguments (Required) + INPUT_FILE: str + """Input file""" + # Arguments (Optional) + output: str | None = None + """Output file [nargs=0..1] [default: ""]""" + define_var: str | None = None + """Overrides or adds project variables, can be used multiple times to declare multiple variables.""" + variant: str | None = None + """The variant name(s) to output, can be used multiple times to specify multiple variants.""" + component_filter: str | None = None + """Only include component 3D models matching this list of reference designators (comma-separated, wildcards supported) [nargs=0..1] [default: ""]""" + min_distance: str | None = None + """Minimum distance between points to treat them as separate ones [nargs=0..1] [default: "0.01mm"]""" + net_filter: str | None = None + """Only include copper items belonging to nets matching this wildcard [nargs=0..1] [default: ""]""" + user_origin: str | None = None + """User-specified output origin ex. 1x1in, 1x1inch, 25.4x25.4mm (default unit mm) [nargs=0..1] [default: ""]""" + # Flags + help: bool = False + """Shows help message and exits""" + force: bool = False + """Overwrite output file""" + no_unspecified: bool = False + """Exclude 3D models for components with 'Unspecified' footprint type""" + no_dnp: bool = False + """Exclude 3D models for components with 'Do not populate' attribute""" + grid_origin: bool = False + """Use Grid Origin for output origin""" + drill_origin: bool = False + """Use Drill Origin for output origin""" + subst_models: bool = False + """Substitute STEP or IGS models with the same name in place of VRML models""" + board_only: bool = False + """Only generate a board with no components""" + cut_vias_in_body: bool = False + """Cut via holes in board body even if conductor layers are not exported.""" + no_board_body: bool = False + """Exclude board body""" + no_components: bool = False + """Exclude 3D models for components""" + include_tracks: bool = False + """Export tracks and vias""" + include_pads: bool = False + """Export pads""" + include_zones: bool = False + """Export zones""" + include_inner_copper: bool = False + """Export elements on inner copper layers""" + include_silkscreen: bool = False + """Export silkscreen graphics as a set of flat faces""" + include_soldermask: bool = False + """Export soldermask layers as a set of flat faces""" + fuse_shapes: bool = False + """Fuse overlapping geometry together""" + fill_all_vias: bool = False + """Don't cut via holes in conductor layers.""" + no_extra_pad_thickness: bool = False + """Disable extra pad thickness (pads will have normal thickness)""" + + @dataclass + class pos: + """ + Args: + INPUT_FILE: Input file + output: Output file [nargs=0..1] [default: ""] + side: Valid options: front, back, both. Gerber format only supports "front" or "back". [nargs=0..1] [default: "both"] + format: Valid options: ascii, csv, gerber [nargs=0..1] [default: "ascii"] + units: Output units; ascii or csv format only; valid options: in, mm [nargs=0..1] [default: "in"] + variant: The variant name(s) to output, can be used multiple times to specify multiple variants. + help: Shows help message and exits + bottom_negate_x: Use negative X coordinates for footprints on bottom layer (ascii or csv formats only) + use_drill_file_origin: Use drill/place file origin (ascii or csv only) + smd_only: Include only SMD footprints (ascii or csv only) + exclude_fp_th: Exclude all footprints with through-hole pads (ascii or csv only) + exclude_dnp: Exclude all footprints with the Do Not Populate flag set + gerber_board_edge: Include board edge layer (Gerber only) + """ + + # Arguments (Required) + INPUT_FILE: str + """Input file""" + # Arguments (Optional) + output: str | None = None + """Output file [nargs=0..1] [default: ""]""" + side: str | None = None + """Valid options: front, back, both. Gerber format only supports "front" or "back". [nargs=0..1] [default: "both"]""" + format: str | None = None + """Valid options: ascii, csv, gerber [nargs=0..1] [default: "ascii"]""" + units: str | None = None + """Output units; ascii or csv format only; valid options: in, mm [nargs=0..1] [default: "in"]""" + variant: str | None = None + """The variant name(s) to output, can be used multiple times to specify multiple variants.""" + # Flags + help: bool = False + """Shows help message and exits""" + bottom_negate_x: bool = False + """Use negative X coordinates for footprints on bottom layer (ascii or csv formats only)""" + use_drill_file_origin: bool = False + """Use drill/place file origin (ascii or csv only)""" + smd_only: bool = False + """Include only SMD footprints (ascii or csv only)""" + exclude_fp_th: bool = False + """Exclude all footprints with through-hole pads (ascii or csv only)""" + exclude_dnp: bool = False + """Exclude all footprints with the Do Not Populate flag set""" + gerber_board_edge: bool = False + """Include board edge layer (Gerber only)""" + + @dataclass + class ps: + """ + Args: + INPUT_FILE: Input file + output: Output directory [nargs=0..1] [default: ""] layers: Comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""] + common_layers: Layers to include on each plot, comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""] drawing_sheet: Path to drawing sheet, this overrides any existing project defined sheet when used [nargs=0..1] [default: ""] define_var: Overrides or adds project variables, can be used multiple times to declare multiple variables. theme: Color theme to use (will default to PCB Editor settings) [nargs=0..1] [default: ""] drill_shape_opt: Set pad/via drill shape option (0 = no shape, 1 = small shape, 2 = actual shape) [nargs=0..1] [default: 2] - common_layers: Layers to include on each plot, comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""] + track_width_correction: Track width correction [mm]. Used to compensate errors in track widths, pad and via sizes. [nargs=0..1] [default: 0] + x_scale_factor: X scale adjust for exact scale. [nargs=0..1] [default: 1] + y_scale_factor: Y scale adjust for exact scale. [nargs=0..1] [default: 1] + scale: Scale for the PCB, not for the border and title. Use 0 for autoscale [nargs=0..1] [default: 1] + variant: The variant name(s) to output, can be used multiple times to specify multiple variants. help: Shows help message and exits mirror: Mirror the board (useful for trying to show bottom layers) exclude_refdes: Exclude the reference designator text @@ -871,10 +1189,10 @@ class pdf: crossout_DNP_footprints_on_fab_layers: Plot an 'X' over the courtyard of DNP footprints on fab layers, and strikeout their reference designators negative: Plot as negative (useful for directly etching from the export) black_and_white: Black and white only - plot_invisible_text: Deprecated. Has no effect. mode_single: Generates a single file with the output arg path acting as the complete directory and filename path. COMMON_LAYER_LIST does not function in this mode. Instead LAYER_LIST controls all layers plotted. - mode_separate: Plot the layers to individual PDF files - mode_multipage: Plot the layers to a single PDF file with multiple pages + mode_multi: Generates one or more files with behavior similar to the KiCad GUI plotting. The given output path specifies a directory in which files may be output. + force_a4: Force A4 paper size. + check_zones: Check and refill zones if required """ # Arguments (Required) @@ -882,9 +1200,11 @@ class pdf: """Input file""" # Arguments (Optional) output: str | None = None - """Output file [nargs=0..1] [default: ""]""" + """Output directory [nargs=0..1] [default: ""]""" layers: str | None = None """Comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""]""" + common_layers: str | None = None + """Layers to include on each plot, comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""]""" drawing_sheet: str | None = None """Path to drawing sheet, this overrides any existing project defined sheet when used [nargs=0..1] [default: ""]""" define_var: str | None = None @@ -893,8 +1213,16 @@ class pdf: """Color theme to use (will default to PCB Editor settings) [nargs=0..1] [default: ""]""" drill_shape_opt: str | None = None """Set pad/via drill shape option (0 = no shape, 1 = small shape, 2 = actual shape) [nargs=0..1] [default: 2]""" - common_layers: str | None = None - """Layers to include on each plot, comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""]""" + track_width_correction: str | None = None + """Track width correction [mm]. Used to compensate errors in track widths, pad and via sizes. [nargs=0..1] [default: 0]""" + x_scale_factor: str | None = None + """X scale adjust for exact scale. [nargs=0..1] [default: 1]""" + y_scale_factor: str | None = None + """Y scale adjust for exact scale. [nargs=0..1] [default: 1]""" + scale: str | None = None + """Scale for the PCB, not for the border and title. Use 0 for autoscale [nargs=0..1] [default: 1]""" + variant: str | None = None + """The variant name(s) to output, can be used multiple times to specify multiple variants.""" # Flags help: bool = False """Shows help message and exits""" @@ -920,22 +1248,57 @@ class pdf: """Plot as negative (useful for directly etching from the export)""" black_and_white: bool = False """Black and white only""" - plot_invisible_text: bool = False - """Deprecated. Has no effect.""" mode_single: bool = False """Generates a single file with the output arg path acting as the complete directory and filename path. COMMON_LAYER_LIST does not function in this mode. Instead LAYER_LIST controls all layers plotted.""" - mode_separate: bool = False - """Plot the layers to individual PDF files""" - mode_multipage: bool = False - """Plot the layers to a single PDF file with multiple pages""" + mode_multi: bool = False + """Generates one or more files with behavior similar to the KiCad GUI plotting. The given output path specifies a directory in which files may be output.""" + force_a4: bool = False + """Force A4 paper size.""" + check_zones: bool = False + """Check and refill zones if required""" @dataclass - class ply: + class stats: + """ + Args: + INPUT_FILE: Input file + output: Output file [nargs=0..1] [default: ""] + format: Output file format, options: json, report [nargs=0..1] [default: "report"] + units: Report units; valid options: in, mm [nargs=0..1] [default: "mm"] + help: Shows help message and exits + exclude_footprints_without_pads: Exclude footprints without pads + subtract_holes_from_board: Subtract holes from the board area + subtract_holes_from_copper: Subtract holes from copper areas + """ + + # Arguments (Required) + INPUT_FILE: str + """Input file""" + # Arguments (Optional) + output: str | None = None + """Output file [nargs=0..1] [default: ""]""" + format: str | None = None + """Output file format, options: json, report [nargs=0..1] [default: "report"]""" + units: str | None = None + """Report units; valid options: in, mm [nargs=0..1] [default: "mm"]""" + # Flags + help: bool = False + """Shows help message and exits""" + exclude_footprints_without_pads: bool = False + """Exclude footprints without pads""" + subtract_holes_from_board: bool = False + """Subtract holes from the board area""" + subtract_holes_from_copper: bool = False + """Subtract holes from copper areas""" + + @dataclass + class step: """ Args: INPUT_FILE: Input file output: Output file [nargs=0..1] [default: ""] define_var: Overrides or adds project variables, can be used multiple times to declare multiple variables. + variant: The variant name(s) to output, can be used multiple times to specify multiple variants. component_filter: Only include component 3D models matching this list of reference designators (comma-separated, wildcards supported) [nargs=0..1] [default: ""] min_distance: Minimum distance between points to treat them as separate ones [nargs=0..1] [default: "0.01mm"] net_filter: Only include copper items belonging to nets matching this wildcard [nargs=0..1] [default: ""] @@ -959,6 +1322,8 @@ class ply: include_soldermask: Export soldermask layers as a set of flat faces fuse_shapes: Fuse overlapping geometry together fill_all_vias: Don't cut via holes in conductor layers. + no_extra_pad_thickness: Disable extra pad thickness (pads will have normal thickness) + no_optimize_step: Do not optimize STEP file (enables writing parametric curves) """ # Arguments (Required) @@ -969,6 +1334,8 @@ class ply: """Output file [nargs=0..1] [default: ""]""" define_var: str | None = None """Overrides or adds project variables, can be used multiple times to declare multiple variables.""" + variant: str | None = None + """The variant name(s) to output, can be used multiple times to specify multiple variants.""" component_filter: str | None = None """Only include component 3D models matching this list of reference designators (comma-separated, wildcards supported) [nargs=0..1] [default: ""]""" min_distance: str | None = None @@ -1016,60 +1383,19 @@ class ply: """Fuse overlapping geometry together""" fill_all_vias: bool = False """Don't cut via holes in conductor layers.""" + no_extra_pad_thickness: bool = False + """Disable extra pad thickness (pads will have normal thickness)""" + no_optimize_step: bool = False + """Do not optimize STEP file (enables writing parametric curves)""" @dataclass - class pos: - """ - Args: - INPUT_FILE: Input file - output: Output file [nargs=0..1] [default: ""] - side: Valid options: front,back,both. Gerber format only supports "front" or "back". [nargs=0..1] [default: "both"] - format: Valid options: ascii,csv,gerber [nargs=0..1] [default: "ascii"] - units: Output units; ascii or csv format only; valid options: in,mm [nargs=0..1] [default: "in"] - help: Shows help message and exits - bottom_negate_x: Use negative X coordinates for footprints on bottom layer (ascii or csv formats only) - use_drill_file_origin: Use drill/place file origin (ascii or csv only) - smd_only: Include only SMD footprints (ascii or csv only) - exclude_fp_th: Exclude all footprints with through-hole pads (ascii or csv only) - exclude_dnp: Exclude all footprints with the Do Not Populate flag set - gerber_board_edge: Include board edge layer (Gerber only) - """ - - # Arguments (Required) - INPUT_FILE: str - """Input file""" - # Arguments (Optional) - output: str | None = None - """Output file [nargs=0..1] [default: ""]""" - side: str | None = None - """Valid options: front,back,both. Gerber format only supports "front" or "back". [nargs=0..1] [default: "both"]""" - format: str | None = None - """Valid options: ascii,csv,gerber [nargs=0..1] [default: "ascii"]""" - units: str | None = None - """Output units; ascii or csv format only; valid options: in,mm [nargs=0..1] [default: "in"]""" - # Flags - help: bool = False - """Shows help message and exits""" - bottom_negate_x: bool = False - """Use negative X coordinates for footprints on bottom layer (ascii or csv formats only)""" - use_drill_file_origin: bool = False - """Use drill/place file origin (ascii or csv only)""" - smd_only: bool = False - """Include only SMD footprints (ascii or csv only)""" - exclude_fp_th: bool = False - """Exclude all footprints with through-hole pads (ascii or csv only)""" - exclude_dnp: bool = False - """Exclude all footprints with the Do Not Populate flag set""" - gerber_board_edge: bool = False - """Include board edge layer (Gerber only)""" - - @dataclass - class step: + class stl: """ Args: INPUT_FILE: Input file output: Output file [nargs=0..1] [default: ""] define_var: Overrides or adds project variables, can be used multiple times to declare multiple variables. + variant: The variant name(s) to output, can be used multiple times to specify multiple variants. component_filter: Only include component 3D models matching this list of reference designators (comma-separated, wildcards supported) [nargs=0..1] [default: ""] min_distance: Minimum distance between points to treat them as separate ones [nargs=0..1] [default: "0.01mm"] net_filter: Only include copper items belonging to nets matching this wildcard [nargs=0..1] [default: ""] @@ -1093,7 +1419,7 @@ class step: include_soldermask: Export soldermask layers as a set of flat faces fuse_shapes: Fuse overlapping geometry together fill_all_vias: Don't cut via holes in conductor layers. - no_optimize_step: Do not optimize STEP file (enables writing parametric curves) + no_extra_pad_thickness: Disable extra pad thickness (pads will have normal thickness) """ # Arguments (Required) @@ -1104,6 +1430,8 @@ class step: """Output file [nargs=0..1] [default: ""]""" define_var: str | None = None """Overrides or adds project variables, can be used multiple times to declare multiple variables.""" + variant: str | None = None + """The variant name(s) to output, can be used multiple times to specify multiple variants.""" component_filter: str | None = None """Only include component 3D models matching this list of reference designators (comma-separated, wildcards supported) [nargs=0..1] [default: ""]""" min_distance: str | None = None @@ -1151,16 +1479,17 @@ class step: """Fuse overlapping geometry together""" fill_all_vias: bool = False """Don't cut via holes in conductor layers.""" - no_optimize_step: bool = False - """Do not optimize STEP file (enables writing parametric curves)""" + no_extra_pad_thickness: bool = False + """Disable extra pad thickness (pads will have normal thickness)""" @dataclass - class stl: + class stpz: """ Args: INPUT_FILE: Input file output: Output file [nargs=0..1] [default: ""] define_var: Overrides or adds project variables, can be used multiple times to declare multiple variables. + variant: The variant name(s) to output, can be used multiple times to specify multiple variants. component_filter: Only include component 3D models matching this list of reference designators (comma-separated, wildcards supported) [nargs=0..1] [default: ""] min_distance: Minimum distance between points to treat them as separate ones [nargs=0..1] [default: "0.01mm"] net_filter: Only include copper items belonging to nets matching this wildcard [nargs=0..1] [default: ""] @@ -1184,6 +1513,8 @@ class stl: include_soldermask: Export soldermask layers as a set of flat faces fuse_shapes: Fuse overlapping geometry together fill_all_vias: Don't cut via holes in conductor layers. + no_extra_pad_thickness: Disable extra pad thickness (pads will have normal thickness) + no_optimize_step: Do not optimize STEP file (enables writing parametric curves) """ # Arguments (Required) @@ -1194,6 +1525,8 @@ class stl: """Output file [nargs=0..1] [default: ""]""" define_var: str | None = None """Overrides or adds project variables, can be used multiple times to declare multiple variables.""" + variant: str | None = None + """The variant name(s) to output, can be used multiple times to specify multiple variants.""" component_filter: str | None = None """Only include component 3D models matching this list of reference designators (comma-separated, wildcards supported) [nargs=0..1] [default: ""]""" min_distance: str | None = None @@ -1241,20 +1574,26 @@ class stl: """Fuse overlapping geometry together""" fill_all_vias: bool = False """Don't cut via holes in conductor layers.""" + no_extra_pad_thickness: bool = False + """Disable extra pad thickness (pads will have normal thickness)""" + no_optimize_step: bool = False + """Do not optimize STEP file (enables writing parametric curves)""" @dataclass class svg: """ Args: INPUT_FILE: Input file - output: Output file [nargs=0..1] [default: ""] + output: Output directory [nargs=0..1] [default: ""] layers: Comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""] + common_layers: Layers to include on each plot, comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""] drawing_sheet: Path to drawing sheet, this overrides any existing project defined sheet when used [nargs=0..1] [default: ""] define_var: Overrides or adds project variables, can be used multiple times to declare multiple variables. theme: Color theme to use (will default to PCB editor settings) [nargs=0..1] [default: ""] page_size_mode: Set page sizing mode (0 = page with frame and title block, 1 = current page size, 2 = board area only) [nargs=0..1] [default: 0] drill_shape_opt: Set pad/via drill shape option (0 = no shape, 1 = small shape, 2 = actual shape) [nargs=0..1] [default: 2] - common_layers: Layers to include on each plot, comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""] + scale: Scale for the PCB, not for the border and title. Use 0 for autoscale [nargs=0..1] [default: 1] + variant: The variant name(s) to output, can be used multiple times to specify multiple variants. help: Shows help message and exits subtract_soldermask: Subtract soldermask from silkscreen mirror: Mirror the board (useful for trying to show bottom layers) @@ -1268,7 +1607,7 @@ class svg: exclude_drawing_sheet: No drawing sheet mode_single: Generates a single file with the output arg path acting as the complete directory and filename path. COMMON_LAYER_LIST does not function in this mode. Instead LAYER_LIST controls all layers plotted. mode_multi: Generates one or more files with behavior similar to the KiCad GUI plotting. The given output path specifies a directory in which files may be output. - plot_invisible_text: Deprecated. Has no effect. + check_zones: Check and refill zones if required """ # Arguments (Required) @@ -1276,9 +1615,11 @@ class svg: """Input file""" # Arguments (Optional) output: str | None = None - """Output file [nargs=0..1] [default: ""]""" + """Output directory [nargs=0..1] [default: ""]""" layers: str | None = None """Comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""]""" + common_layers: str | None = None + """Layers to include on each plot, comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""]""" drawing_sheet: str | None = None """Path to drawing sheet, this overrides any existing project defined sheet when used [nargs=0..1] [default: ""]""" define_var: str | None = None @@ -1289,8 +1630,10 @@ class svg: """Set page sizing mode (0 = page with frame and title block, 1 = current page size, 2 = board area only) [nargs=0..1] [default: 0]""" drill_shape_opt: str | None = None """Set pad/via drill shape option (0 = no shape, 1 = small shape, 2 = actual shape) [nargs=0..1] [default: 2]""" - common_layers: str | None = None - """Layers to include on each plot, comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""]""" + scale: str | None = None + """Scale for the PCB, not for the border and title. Use 0 for autoscale [nargs=0..1] [default: 1]""" + variant: str | None = None + """The variant name(s) to output, can be used multiple times to specify multiple variants.""" # Flags help: bool = False """Shows help message and exits""" @@ -1318,8 +1661,102 @@ class svg: """Generates a single file with the output arg path acting as the complete directory and filename path. COMMON_LAYER_LIST does not function in this mode. Instead LAYER_LIST controls all layers plotted.""" mode_multi: bool = False """Generates one or more files with behavior similar to the KiCad GUI plotting. The given output path specifies a directory in which files may be output.""" - plot_invisible_text: bool = False - """Deprecated. Has no effect.""" + check_zones: bool = False + """Check and refill zones if required""" + + @dataclass + class u3d: + """ + Args: + INPUT_FILE: Input file + output: Output file [nargs=0..1] [default: ""] + define_var: Overrides or adds project variables, can be used multiple times to declare multiple variables. + variant: The variant name(s) to output, can be used multiple times to specify multiple variants. + component_filter: Only include component 3D models matching this list of reference designators (comma-separated, wildcards supported) [nargs=0..1] [default: ""] + min_distance: Minimum distance between points to treat them as separate ones [nargs=0..1] [default: "0.01mm"] + net_filter: Only include copper items belonging to nets matching this wildcard [nargs=0..1] [default: ""] + user_origin: User-specified output origin ex. 1x1in, 1x1inch, 25.4x25.4mm (default unit mm) [nargs=0..1] [default: ""] + help: Shows help message and exits + force: Overwrite output file + no_unspecified: Exclude 3D models for components with 'Unspecified' footprint type + no_dnp: Exclude 3D models for components with 'Do not populate' attribute + grid_origin: Use Grid Origin for output origin + drill_origin: Use Drill Origin for output origin + subst_models: Substitute STEP or IGS models with the same name in place of VRML models + board_only: Only generate a board with no components + cut_vias_in_body: Cut via holes in board body even if conductor layers are not exported. + no_board_body: Exclude board body + no_components: Exclude 3D models for components + include_tracks: Export tracks and vias + include_pads: Export pads + include_zones: Export zones + include_inner_copper: Export elements on inner copper layers + include_silkscreen: Export silkscreen graphics as a set of flat faces + include_soldermask: Export soldermask layers as a set of flat faces + fuse_shapes: Fuse overlapping geometry together + fill_all_vias: Don't cut via holes in conductor layers. + no_extra_pad_thickness: Disable extra pad thickness (pads will have normal thickness) + """ + + # Arguments (Required) + INPUT_FILE: str + """Input file""" + # Arguments (Optional) + output: str | None = None + """Output file [nargs=0..1] [default: ""]""" + define_var: str | None = None + """Overrides or adds project variables, can be used multiple times to declare multiple variables.""" + variant: str | None = None + """The variant name(s) to output, can be used multiple times to specify multiple variants.""" + component_filter: str | None = None + """Only include component 3D models matching this list of reference designators (comma-separated, wildcards supported) [nargs=0..1] [default: ""]""" + min_distance: str | None = None + """Minimum distance between points to treat them as separate ones [nargs=0..1] [default: "0.01mm"]""" + net_filter: str | None = None + """Only include copper items belonging to nets matching this wildcard [nargs=0..1] [default: ""]""" + user_origin: str | None = None + """User-specified output origin ex. 1x1in, 1x1inch, 25.4x25.4mm (default unit mm) [nargs=0..1] [default: ""]""" + # Flags + help: bool = False + """Shows help message and exits""" + force: bool = False + """Overwrite output file""" + no_unspecified: bool = False + """Exclude 3D models for components with 'Unspecified' footprint type""" + no_dnp: bool = False + """Exclude 3D models for components with 'Do not populate' attribute""" + grid_origin: bool = False + """Use Grid Origin for output origin""" + drill_origin: bool = False + """Use Drill Origin for output origin""" + subst_models: bool = False + """Substitute STEP or IGS models with the same name in place of VRML models""" + board_only: bool = False + """Only generate a board with no components""" + cut_vias_in_body: bool = False + """Cut via holes in board body even if conductor layers are not exported.""" + no_board_body: bool = False + """Exclude board body""" + no_components: bool = False + """Exclude 3D models for components""" + include_tracks: bool = False + """Export tracks and vias""" + include_pads: bool = False + """Export pads""" + include_zones: bool = False + """Export zones""" + include_inner_copper: bool = False + """Export elements on inner copper layers""" + include_silkscreen: bool = False + """Export silkscreen graphics as a set of flat faces""" + include_soldermask: bool = False + """Export soldermask layers as a set of flat faces""" + fuse_shapes: bool = False + """Fuse overlapping geometry together""" + fill_all_vias: bool = False + """Don't cut via holes in conductor layers.""" + no_extra_pad_thickness: bool = False + """Disable extra pad thickness (pads will have normal thickness)""" @dataclass class vrml: @@ -1328,6 +1765,7 @@ class vrml: INPUT_FILE: Input file output: Output file [nargs=0..1] [default: ""] define_var: Overrides or adds project variables, can be used multiple times to declare multiple variables. + variant: The variant name(s) to output, can be used multiple times to specify multiple variants. user_origin: User-specified output origin ex. 1x1in, 1x1inch, 25.4x25.4mm (default unit mm) [nargs=0..1] [default: ""] units: Output units; valid options: mm, m, in, tenths [nargs=0..1] [default: "in"] models_dir: Name of folder to create and store 3d models in, if not specified or empty, the models will be embedded in main exported VRML file [nargs=0..1] [default: ""] @@ -1346,6 +1784,8 @@ class vrml: """Output file [nargs=0..1] [default: ""]""" define_var: str | None = None """Overrides or adds project variables, can be used multiple times to declare multiple variables.""" + variant: str | None = None + """The variant name(s) to output, can be used multiple times to specify multiple variants.""" user_origin: str | None = None """User-specified output origin ex. 1x1in, 1x1inch, 25.4x25.4mm (default unit mm) [nargs=0..1] [default: ""]""" units: str | None = None @@ -1371,6 +1811,7 @@ class xao: INPUT_FILE: Input file output: Output file [nargs=0..1] [default: ""] define_var: Overrides or adds project variables, can be used multiple times to declare multiple variables. + variant: The variant name(s) to output, can be used multiple times to specify multiple variants. component_filter: Only include component 3D models matching this list of reference designators (comma-separated, wildcards supported) [nargs=0..1] [default: ""] min_distance: Minimum distance between points to treat them as separate ones [nargs=0..1] [default: "0.01mm"] net_filter: Only include copper items belonging to nets matching this wildcard [nargs=0..1] [default: ""] @@ -1394,6 +1835,7 @@ class xao: include_soldermask: Export soldermask layers as a set of flat faces fuse_shapes: Fuse overlapping geometry together fill_all_vias: Don't cut via holes in conductor layers. + no_extra_pad_thickness: Disable extra pad thickness (pads will have normal thickness) """ # Arguments (Required) @@ -1404,6 +1846,8 @@ class xao: """Output file [nargs=0..1] [default: ""]""" define_var: str | None = None """Overrides or adds project variables, can be used multiple times to declare multiple variables.""" + variant: str | None = None + """The variant name(s) to output, can be used multiple times to specify multiple variants.""" component_filter: str | None = None """Only include component 3D models matching this list of reference designators (comma-separated, wildcards supported) [nargs=0..1] [default: ""]""" min_distance: str | None = None @@ -1451,6 +1895,36 @@ class xao: """Fuse overlapping geometry together""" fill_all_vias: bool = False """Don't cut via holes in conductor layers.""" + no_extra_pad_thickness: bool = False + """Disable extra pad thickness (pads will have normal thickness)""" + + @dataclass + class _import: + """ + Args: + INPUT_FILE: Input file + output: Output file [nargs=0..1] [default: ""] + format: Input format hint: auto, pads, altium, eagle, cadstar, fabmaster, pcad, solidworks (default: auto) [nargs=0..1] [default: "auto"] + report_format: Import report format: none, json, text (default: none) [nargs=0..1] [default: "none"] + report_file: File path for import report (default: stdout) [nargs=0..1] [default: ""] + help: Shows help message and exits + """ + + # Arguments (Required) + INPUT_FILE: str + """Input file""" + # Arguments (Optional) + output: str | None = None + """Output file [nargs=0..1] [default: ""]""" + format: str | None = None + """Input format hint: auto, pads, altium, eagle, cadstar, fabmaster, pcad, solidworks (default: auto) [nargs=0..1] [default: "auto"]""" + report_format: str | None = None + """Import report format: none, json, text (default: none) [nargs=0..1] [default: "none"]""" + report_file: str | None = None + """File path for import report (default: stdout) [nargs=0..1] [default: ""]""" + # Flags + help: bool = False + """Shows help message and exits""" @dataclass class render: @@ -1463,8 +1937,9 @@ class render: height: Image height [nargs=0..1] [default: 900] side: Render from side. Options: top, bottom, left, right, front, back [nargs=0..1] [default: "top"] background: Image background. Options: default, transparent, opaque. Default: transparent for PNG, opaque for JPEG [nargs=0..1] [default: ""] - quality: Render quality. Options: basic, high, user [nargs=0..1] [default: "basic"] - preset: Color preset. Options: follow_pcb_editor, follow_plot_settings, legacy_preset_flag, ... [nargs=0..1] [default: "follow_plot_settings"] + quality: Render quality. Options: basic, high, user, job_settings [nargs=0..1] [default: "basic"] + preset: Appearance preset. Options: follow_pcb_editor, follow_plot_settings, or user-defined preset name [nargs=0..1] [default: "follow_plot_settings"] + use_board_stackup_colors: Colors defined in board stackup override those in preset [nargs=0..1] [default: true] zoom: Camera zoom [nargs=0..1] [default: 1] pan: Pan camera, format 'X,Y,Z' e.g.: '3,0,0' [nargs=0..1] [default: ""] pivot: Set pivot point relative to the board center in centimeters, format 'X,Y,Z' e.g.: '-10,2,0' [nargs=0..1] [default: ""] @@ -1475,7 +1950,7 @@ class render: light_camera: Camera light intensity, format 'R,G,B' or a single number, range: 0-1 [nargs=0..1] [default: ""] light_side_elevation: Side lights elevation angle in degrees, range: 0-90 [nargs=0..1] [default: 60] help: Shows help message and exits - floor: Enables floor, shadows and post-processing, even if disabled in quality preset + floor: Enables floor, shadows and post-processing, even if disabled in quality setting perspective: Use perspective projection instead of orthogonal """ @@ -1496,9 +1971,11 @@ class render: background: str | None = None """Image background. Options: default, transparent, opaque. Default: transparent for PNG, opaque for JPEG [nargs=0..1] [default: ""]""" quality: str | None = None - """Render quality. Options: basic, high, user [nargs=0..1] [default: "basic"]""" + """Render quality. Options: basic, high, user, job_settings [nargs=0..1] [default: "basic"]""" preset: str | None = None - """Color preset. Options: follow_pcb_editor, follow_plot_settings, legacy_preset_flag, ... [nargs=0..1] [default: "follow_plot_settings"]""" + """Appearance preset. Options: follow_pcb_editor, follow_plot_settings, or user-defined preset name [nargs=0..1] [default: "follow_plot_settings"]""" + use_board_stackup_colors: str | None = None + """Colors defined in board stackup override those in preset [nargs=0..1] [default: true]""" zoom: str | None = None """Camera zoom [nargs=0..1] [default: 1]""" pan: str | None = None @@ -1521,10 +1998,29 @@ class render: help: bool = False """Shows help message and exits""" floor: bool = False - """Enables floor, shadows and post-processing, even if disabled in quality preset""" + """Enables floor, shadows and post-processing, even if disabled in quality setting""" perspective: bool = False """Use perspective projection instead of orthogonal""" + @dataclass + class upgrade: + """ + Args: + INPUT_FILE: Input file + help: Shows help message and exits + force: Forces the board file to be resaved regardless of versioning + """ + + # Arguments (Required) + INPUT_FILE: str + """Input file""" + # Arguments (Optional) + # Flags + help: bool = False + """Shows help message and exits""" + force: bool = False + """Forces the board file to be resaved regardless of versioning""" + @dataclass class sch: """ @@ -1532,7 +2028,7 @@ class sch: help: Shows help message and exits """ - cmd: "erc | export" + cmd: "erc | export | upgrade" # Arguments (Required) # Arguments (Optional) # Flags @@ -1604,21 +2100,22 @@ class bom: Args: INPUT_FILE: Input file output: Output file [nargs=0..1] [default: ""] + variant: The variant name(s) to output, can be used multiple times to specify multiple variants. preset: Use a named BOM preset setting from the schematic, e.g. "Grouped By Value". [nargs=0..1] [default: ""] format_preset: Use a named BOM format preset setting from the schematic, e.g. CSV. [nargs=0..1] [default: ""] - fields: An ordered list of fields to export. See documentation for special substitutions. [nargs=0..1] [default: "Reference,Value,Footprint,${QUANTITY},${DNP}"] + fields: An ordered list of fields to export. Generated fields such as QUANTITY, ITEM_NUMBER, DNP, EXCLUDE_FROM_BOM, EXCLUDE_FROM_BOARD, and EXCLUDE_FROM_SIM can be specified with or without ${} delimiters. [nargs=0..1] [default: "Reference,Value,Footprint,QUANTITY,DNP"] labels: An ordered list of labels to apply the exported fields. [nargs=0..1] [default: "Refs,Value,Footprint,Qty,DNP"] group_by: Fields to group references by when field values match. [nargs=0..1] [default: ""] sort_field: Field name to sort by. [nargs=0..1] [default: "Reference"] + sort_asc: Sort ascending (true) or descending (false). [nargs=0..1] [default: true] filter: Filter string to remove output lines. [nargs=0..1] [default: ""] field_delimiter: Separator between output fields/columns. [nargs=0..1] [default: ","] string_delimiter: Character to surround fields with. [nargs=0..1] [default: " " "] ref_delimiter: Character to place between individual references. [nargs=0..1] [default: ","] ref_range_delimiter: Character to place in ranges of references. Leave blank for no ranges. [nargs=0..1] [default: "-"] help: Shows help message and exits - sort_asc: Sort ascending (true) or descending (false). exclude_dnp: Exclude symbols marked Do-Not-Populate. - include_excluded_from_bom: Include symbols marked 'Exclude from BOM'. + include_excluded_from_bom: Deprecated. Has no effect. keep_tabs: Keep tab characters from input fields. Stripped by default. keep_line_breaks: Keep line break characters from input fields. Stripped by default. """ @@ -1629,18 +2126,22 @@ class bom: # Arguments (Optional) output: str | None = None """Output file [nargs=0..1] [default: ""]""" + variant: str | None = None + """The variant name(s) to output, can be used multiple times to specify multiple variants.""" preset: str | None = None """Use a named BOM preset setting from the schematic, e.g. "Grouped By Value". [nargs=0..1] [default: ""]""" format_preset: str | None = None """Use a named BOM format preset setting from the schematic, e.g. CSV. [nargs=0..1] [default: ""]""" fields: str | None = None - """An ordered list of fields to export. See documentation for special substitutions. [nargs=0..1] [default: "Reference,Value,Footprint,${QUANTITY},${DNP}"]""" + """An ordered list of fields to export. Generated fields such as QUANTITY, ITEM_NUMBER, DNP, EXCLUDE_FROM_BOM, EXCLUDE_FROM_BOARD, and EXCLUDE_FROM_SIM can be specified with or without ${} delimiters. [nargs=0..1] [default: "Reference,Value,Footprint,QUANTITY,DNP"]""" labels: str | None = None """An ordered list of labels to apply the exported fields. [nargs=0..1] [default: "Refs,Value,Footprint,Qty,DNP"]""" group_by: str | None = None """Fields to group references by when field values match. [nargs=0..1] [default: ""]""" sort_field: str | None = None """Field name to sort by. [nargs=0..1] [default: "Reference"]""" + sort_asc: str | None = None + """Sort ascending (true) or descending (false). [nargs=0..1] [default: true]""" filter: str | None = None """Filter string to remove output lines. [nargs=0..1] [default: ""]""" field_delimiter: str | None = None @@ -1654,12 +2155,10 @@ class bom: # Flags help: bool = False """Shows help message and exits""" - sort_asc: bool = False - """Sort ascending (true) or descending (false).""" exclude_dnp: bool = False """Exclude symbols marked Do-Not-Populate.""" include_excluded_from_bom: bool = False - """Include symbols marked 'Exclude from BOM'.""" + """Deprecated. Has no effect.""" keep_tabs: bool = False """Keep tab characters from input fields. Stripped by default.""" keep_line_breaks: bool = False @@ -1673,12 +2172,14 @@ class dxf: output: Output directory [nargs=0..1] [default: ""] drawing_sheet: Path to drawing sheet, this overrides any existing project defined sheet when used [nargs=0..1] [default: ""] define_var: Overrides or adds project variables, can be used multiple times to declare multiple variables. + variant: The variant name(s) to output, can be used multiple times to specify multiple variants. theme: Color theme to use (will default to schematic settings) [nargs=0..1] [default: ""] - default_font: Default font name [nargs=0..1] [default: "KiCad Font"] + default_font: Default font name [nargs=0..1] [default: ""] pages: List of page numbers separated by comma to print, blank or unspecified is equivalent to all pages [nargs=0..1] [default: ""] help: Shows help message and exits black_and_white: Black and white only exclude_drawing_sheet: No drawing sheet + draw_hop_over: Draw hop over at wire crossings """ # Arguments (Required) @@ -1691,10 +2192,12 @@ class dxf: """Path to drawing sheet, this overrides any existing project defined sheet when used [nargs=0..1] [default: ""]""" define_var: str | None = None """Overrides or adds project variables, can be used multiple times to declare multiple variables.""" + variant: str | None = None + """The variant name(s) to output, can be used multiple times to specify multiple variants.""" theme: str | None = None """Color theme to use (will default to schematic settings) [nargs=0..1] [default: ""]""" default_font: str | None = None - """Default font name [nargs=0..1] [default: "KiCad Font"]""" + """Default font name [nargs=0..1] [default: ""]""" pages: str | None = None """List of page numbers separated by comma to print, blank or unspecified is equivalent to all pages [nargs=0..1] [default: ""]""" # Flags @@ -1704,6 +2207,8 @@ class dxf: """Black and white only""" exclude_drawing_sheet: bool = False """No drawing sheet""" + draw_hop_over: bool = False + """Draw hop over at wire crossings""" @dataclass class hpgl: @@ -1713,12 +2218,16 @@ class hpgl: output: Output directory [nargs=0..1] [default: ""] drawing_sheet: Path to drawing sheet, this overrides any existing project defined sheet when used [nargs=0..1] [default: ""] define_var: Overrides or adds project variables, can be used multiple times to declare multiple variables. - default_font: Default font name [nargs=0..1] [default: "KiCad Font"] + variant: The variant name(s) to output, can be used multiple times to specify multiple variants. + theme: Color theme to use (will default to schematic settings) [nargs=0..1] [default: ""] + default_font: Default font name [nargs=0..1] [default: ""] pages: List of page numbers separated by comma to print, blank or unspecified is equivalent to all pages [nargs=0..1] [default: ""] - pen_size: Pen size [mm] [nargs=0..1] [default: 0.5] - origin: Origin and scale: 0 bottom left, 1 centered, 2 page fit, 3 content fit [nargs=0..1] [default: 1] + pen_size: Deprecated. Has no effect. [nargs=0..1] [default: 0.5] + origin: Deprecated. Has no effect. [nargs=0..1] [default: 1] help: Shows help message and exits + black_and_white: Black and white only exclude_drawing_sheet: No drawing sheet + draw_hop_over: Draw hop over at wire crossings """ # Arguments (Required) @@ -1731,19 +2240,27 @@ class hpgl: """Path to drawing sheet, this overrides any existing project defined sheet when used [nargs=0..1] [default: ""]""" define_var: str | None = None """Overrides or adds project variables, can be used multiple times to declare multiple variables.""" + variant: str | None = None + """The variant name(s) to output, can be used multiple times to specify multiple variants.""" + theme: str | None = None + """Color theme to use (will default to schematic settings) [nargs=0..1] [default: ""]""" default_font: str | None = None - """Default font name [nargs=0..1] [default: "KiCad Font"]""" + """Default font name [nargs=0..1] [default: ""]""" pages: str | None = None """List of page numbers separated by comma to print, blank or unspecified is equivalent to all pages [nargs=0..1] [default: ""]""" pen_size: str | None = None - """Pen size [mm] [nargs=0..1] [default: 0.5]""" + """Deprecated. Has no effect. [nargs=0..1] [default: 0.5]""" origin: str | None = None - """Origin and scale: 0 bottom left, 1 centered, 2 page fit, 3 content fit [nargs=0..1] [default: 1]""" + """Deprecated. Has no effect. [nargs=0..1] [default: 1]""" # Flags help: bool = False """Shows help message and exits""" + black_and_white: bool = False + """Black and white only""" exclude_drawing_sheet: bool = False """No drawing sheet""" + draw_hop_over: bool = False + """Draw hop over at wire crossings""" @dataclass class netlist: @@ -1751,6 +2268,7 @@ class netlist: Args: INPUT_FILE: Input file output: Output file [nargs=0..1] [default: ""] + variant: The variant name(s) to output, can be used multiple times to specify multiple variants. format: Netlist output format, valid options: kicadsexpr, kicadxml, cadstar, orcadpcb2, spice, spicemodel, pads, allegro [nargs=0..1] [default: "kicadsexpr"] help: Shows help message and exits """ @@ -1761,6 +2279,8 @@ class netlist: # Arguments (Optional) output: str | None = None """Output file [nargs=0..1] [default: ""]""" + variant: str | None = None + """The variant name(s) to output, can be used multiple times to specify multiple variants.""" format: str | None = None """Netlist output format, valid options: kicadsexpr, kicadxml, cadstar, orcadpcb2, spice, spicemodel, pads, allegro [nargs=0..1] [default: "kicadsexpr"]""" # Flags @@ -1775,12 +2295,14 @@ class pdf: output: Output file [nargs=0..1] [default: ""] drawing_sheet: Path to drawing sheet, this overrides any existing project defined sheet when used [nargs=0..1] [default: ""] define_var: Overrides or adds project variables, can be used multiple times to declare multiple variables. + variant: The variant name(s) to output, can be used multiple times to specify multiple variants. theme: Color theme to use (will default to schematic settings) [nargs=0..1] [default: ""] - default_font: Default font name [nargs=0..1] [default: "KiCad Font"] + default_font: Default font name [nargs=0..1] [default: ""] pages: List of page numbers separated by comma to print, blank or unspecified is equivalent to all pages [nargs=0..1] [default: ""] help: Shows help message and exits black_and_white: Black and white only exclude_drawing_sheet: No drawing sheet + draw_hop_over: Draw hop over at wire crossings exclude_pdf_property_popups: Do not generate property popups in PDF exclude_pdf_hierarchical_links: Do not generate clickable links for hierarchical elements in PDF exclude_pdf_metadata: Do not generate PDF metadata from AUTHOR and SUBJECT variables @@ -1797,10 +2319,12 @@ class pdf: """Path to drawing sheet, this overrides any existing project defined sheet when used [nargs=0..1] [default: ""]""" define_var: str | None = None """Overrides or adds project variables, can be used multiple times to declare multiple variables.""" + variant: str | None = None + """The variant name(s) to output, can be used multiple times to specify multiple variants.""" theme: str | None = None """Color theme to use (will default to schematic settings) [nargs=0..1] [default: ""]""" default_font: str | None = None - """Default font name [nargs=0..1] [default: "KiCad Font"]""" + """Default font name [nargs=0..1] [default: ""]""" pages: str | None = None """List of page numbers separated by comma to print, blank or unspecified is equivalent to all pages [nargs=0..1] [default: ""]""" # Flags @@ -1810,6 +2334,8 @@ class pdf: """Black and white only""" exclude_drawing_sheet: bool = False """No drawing sheet""" + draw_hop_over: bool = False + """Draw hop over at wire crossings""" exclude_pdf_property_popups: bool = False """Do not generate property popups in PDF""" exclude_pdf_hierarchical_links: bool = False @@ -1827,12 +2353,14 @@ class ps: output: Output directory [nargs=0..1] [default: ""] drawing_sheet: Path to drawing sheet, this overrides any existing project defined sheet when used [nargs=0..1] [default: ""] define_var: Overrides or adds project variables, can be used multiple times to declare multiple variables. + variant: The variant name(s) to output, can be used multiple times to specify multiple variants. theme: Color theme to use (will default to schematic settings) [nargs=0..1] [default: ""] - default_font: Default font name [nargs=0..1] [default: "KiCad Font"] + default_font: Default font name [nargs=0..1] [default: ""] pages: List of page numbers separated by comma to print, blank or unspecified is equivalent to all pages [nargs=0..1] [default: ""] help: Shows help message and exits black_and_white: Black and white only exclude_drawing_sheet: No drawing sheet + draw_hop_over: Draw hop over at wire crossings no_background_color: Avoid setting a background color (regardless of theme) """ @@ -1846,10 +2374,12 @@ class ps: """Path to drawing sheet, this overrides any existing project defined sheet when used [nargs=0..1] [default: ""]""" define_var: str | None = None """Overrides or adds project variables, can be used multiple times to declare multiple variables.""" + variant: str | None = None + """The variant name(s) to output, can be used multiple times to specify multiple variants.""" theme: str | None = None """Color theme to use (will default to schematic settings) [nargs=0..1] [default: ""]""" default_font: str | None = None - """Default font name [nargs=0..1] [default: "KiCad Font"]""" + """Default font name [nargs=0..1] [default: ""]""" pages: str | None = None """List of page numbers separated by comma to print, blank or unspecified is equivalent to all pages [nargs=0..1] [default: ""]""" # Flags @@ -1859,6 +2389,8 @@ class ps: """Black and white only""" exclude_drawing_sheet: bool = False """No drawing sheet""" + draw_hop_over: bool = False + """Draw hop over at wire crossings""" no_background_color: bool = False """Avoid setting a background color (regardless of theme)""" @@ -1889,12 +2421,14 @@ class svg: output: Output directory [nargs=0..1] [default: ""] drawing_sheet: Path to drawing sheet, this overrides any existing project defined sheet when used [nargs=0..1] [default: ""] define_var: Overrides or adds project variables, can be used multiple times to declare multiple variables. + variant: The variant name(s) to output, can be used multiple times to specify multiple variants. theme: Color theme to use (will default to schematic settings) [nargs=0..1] [default: ""] - default_font: Default font name [nargs=0..1] [default: "KiCad Font"] + default_font: Default font name [nargs=0..1] [default: ""] pages: List of page numbers separated by comma to print, blank or unspecified is equivalent to all pages [nargs=0..1] [default: ""] help: Shows help message and exits black_and_white: Black and white only exclude_drawing_sheet: No drawing sheet + draw_hop_over: Draw hop over at wire crossings no_background_color: Avoid setting a background color (regardless of theme) """ @@ -1908,10 +2442,12 @@ class svg: """Path to drawing sheet, this overrides any existing project defined sheet when used [nargs=0..1] [default: ""]""" define_var: str | None = None """Overrides or adds project variables, can be used multiple times to declare multiple variables.""" + variant: str | None = None + """The variant name(s) to output, can be used multiple times to specify multiple variants.""" theme: str | None = None """Color theme to use (will default to schematic settings) [nargs=0..1] [default: ""]""" default_font: str | None = None - """Default font name [nargs=0..1] [default: "KiCad Font"]""" + """Default font name [nargs=0..1] [default: ""]""" pages: str | None = None """List of page numbers separated by comma to print, blank or unspecified is equivalent to all pages [nargs=0..1] [default: ""]""" # Flags @@ -1921,9 +2457,30 @@ class svg: """Black and white only""" exclude_drawing_sheet: bool = False """No drawing sheet""" + draw_hop_over: bool = False + """Draw hop over at wire crossings""" no_background_color: bool = False """Avoid setting a background color (regardless of theme)""" + @dataclass + class upgrade: + """ + Args: + INPUT_FILE: Input file + help: Shows help message and exits + force: Forces the schematic file to be resaved regardless of versioning + """ + + # Arguments (Required) + INPUT_FILE: str + """Input file""" + # Arguments (Optional) + # Flags + help: bool = False + """Shows help message and exits""" + force: bool = False + """Forces the schematic file to be resaved regardless of versioning""" + @dataclass class sym: """ @@ -1992,18 +2549,18 @@ class svg: class upgrade: """ Args: - INPUT_FILE: Input file - output: Output file [nargs=0..1] [default: ""] + INPUT_FILE_OR_DIR: Input file or directory + output: Output file or directory [nargs=0..1] [default: ""] help: Shows help message and exits force: Forces the symbol library to be resaved regardless of versioning """ # Arguments (Required) - INPUT_FILE: str - """Input file""" + INPUT_FILE_OR_DIR: str + """Input file or directory""" # Arguments (Optional) output: str | None = None - """Output file [nargs=0..1] [default: ""]""" + """Output file or directory [nargs=0..1] [default: ""]""" # Flags help: bool = False """Shows help message and exits""" diff --git a/src/kicadcliwrapper/generated/kicad_cli_l1.py b/src/kicadcliwrapper/generated/kicad_cli_l1.py index e85d045..d10e154 100644 --- a/src/kicadcliwrapper/generated/kicad_cli_l1.py +++ b/src/kicadcliwrapper/generated/kicad_cli_l1.py @@ -39,7 +39,8 @@ command="fp", sections=[ ParserL1.Section( - name="Usage", lines=["Usage: fp [--help] {export,upgrade}"] + name="Usage", + lines=["Usage: kicad-cli fp [--help] {export,upgrade}"], ), ParserL1.Section( name="Footprint and Footprint Libraries", @@ -66,7 +67,7 @@ command="export", sections=[ ParserL1.Section( - name="Usage", lines=["Usage: export [--help] {svg}"] + name="Usage", lines=["Usage: fp export [--help] {svg}"] ), ParserL1.Section( name="Export utilities (svg)", @@ -94,7 +95,7 @@ ParserL1.Section( name="Usage", lines=[ - "Usage: svg [--help] [--output OUTPUT_DIR] [--layers LAYER_LIST] [--define-var KEY=VALUE] [--theme VAR] [--footprint FOOTPRINT_NAME] [--sketch-pads-on-fab-layers] [--hide-DNP-footprints-on-fab-layers] [--sketch-DNP-footprints-on-fab-layers] [--crossout-DNP-footprints-on-fab-layers] [--black-and-white] INPUT_DIR" + "Usage: export svg [--help] [--output OUTPUT_DIR] [--layers LAYER_LIST] [--define-var KEY=VALUE]... [--theme VAR] [--footprint FOOTPRINT_NAME] [--sketch-pads-on-fab-layers] [--hide-DNP-footprints-on-fab-layers] [--sketch-DNP-footprints-on-fab-layers] [--crossout-DNP-footprints-on-fab-layers] [--black-and-white] INPUT_FILE_OR_DIR" ], ), ParserL1.Section( @@ -107,7 +108,7 @@ name="Positional arguments", lines=[ "Positional arguments:", - "INPUT_DIR Input directory", + "INPUT_FILE_OR_DIR Input file or directory", ], ), ParserL1.Section( @@ -118,7 +119,7 @@ '-o, --output Output directory [nargs=0..1] [default: ""]', '-l, --layers Comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""]', "-D, --define-var Overrides or adds project variables, can be used multiple times to declare multiple variables.", - "Use in the format of '--define-var key=value' or '-D key=value' [nargs=0..1] [default: {}]", + "Use in the format of '--define-var key=value' or '-D key=value' [nargs=0..1] [default: {}] [may be repeated]", '-t, --theme Color theme to use (will default to footprint editor settings) [nargs=0..1] [default: ""]', '--fp, --footprint Specific footprint to export within the library [nargs=0..1] [default: ""]', "--sp, --sketch-pads-on-fab-layers Draw pad outlines and their numbers on front and back fab layers", @@ -139,7 +140,7 @@ ParserL1.Section( name="Usage", lines=[ - "Usage: upgrade [--help] [--output OUTPUT_DIR] [--force] INPUT_DIR" + "Usage: fp upgrade [--help] [--output OUTPUT_DIR] [--force] INPUT_FILE_OR_DIR" ], ), ParserL1.Section( @@ -152,16 +153,16 @@ name="Positional arguments", lines=[ "Positional arguments:", - "INPUT_DIR Input directory", + "INPUT_FILE_OR_DIR Input file or directory", ], ), ParserL1.Section( name="Optional arguments", lines=[ "Optional arguments:", - "-h, --help Shows help message and exits", - '-o, --output Output directory [nargs=0..1] [default: ""]', - "--force Forces the footprint library to be resaved regardless of versioning", + "-h, --help Shows help message and exits", + '-o, --output Output directory [nargs=0..1] [default: ""]', + "--force Forces the footprint library to be resaved regardless of versioning", ], ), ], @@ -172,7 +173,9 @@ ParserL1.Command( command="jobset", sections=[ - ParserL1.Section(name="Usage", lines=["Usage: jobset [--help] {run}"]), + ParserL1.Section( + name="Usage", lines=["Usage: kicad-cli jobset [--help] {run}"] + ), ParserL1.Section(name="Jobset", lines=["Jobset"]), ParserL1.Section( name="Optional arguments", @@ -193,7 +196,7 @@ ParserL1.Section( name="Usage", lines=[ - "Usage: run [--help] [--stop-on-error] [--file JOB_FILE] [--output OUTPUT] INPUT_FILE" + "Usage: jobset run [--help] [--stop-on-error] [--file JOB_FILE] [--output OUTPUT] INPUT_FILE" ], ), ParserL1.Section( @@ -225,7 +228,10 @@ command="pcb", sections=[ ParserL1.Section( - name="Usage", lines=["Usage: pcb [--help] {drc,export,render}"] + name="Usage", + lines=[ + "Usage: kicad-cli pcb [--help] {drc,export,import,render,upgrade}" + ], ), ParserL1.Section(name="PCB", lines=["PCB"]), ParserL1.Section( @@ -241,7 +247,9 @@ "Subcommands:", "drc Runs the Design Rules Check (DRC) on the PCB and creates a report", "export Export utilities (Gerbers, drill, position files, etc)", + "import Import a non-KiCad PCB file to KiCad format", "render Renders the PCB in 3D view to PNG or JPEG image", + "upgrade Upgrade the board file's format to the latest one", ], ), ], @@ -252,7 +260,7 @@ ParserL1.Section( name="Usage", lines=[ - "Usage: drc [--help] [--output OUTPUT_FILE] [--define-var KEY=VALUE] [--format FORMAT] [--all-track-errors] [--schematic-parity] [--units UNITS] [--severity-all] [--severity-error] [--severity-warning] [--severity-exclusions] [--exit-code-violations] INPUT_FILE" + "Usage: pcb drc [--help] [--output OUTPUT_FILE] [--define-var KEY=VALUE]... [--format FORMAT] [--all-track-errors] [--schematic-parity] [--units UNITS] [--severity-all] [--severity-error] [--severity-warning] [--severity-exclusions] [--exit-code-violations] [--refill-zones] [--save-board] INPUT_FILE" ], ), ParserL1.Section( @@ -275,7 +283,7 @@ "-h, --help Shows help message and exits", '-o, --output Output file [nargs=0..1] [default: ""]', "-D, --define-var Overrides or adds project variables, can be used multiple times to declare multiple variables.", - "Use in the format of '--define-var key=value' or '-D key=value' [nargs=0..1] [default: {}]", + "Use in the format of '--define-var key=value' or '-D key=value' [nargs=0..1] [default: {}] [may be repeated]", '--format Output file format, options: json, report [nargs=0..1] [default: "report"]', "--all-track-errors Report all errors for each track", "--schematic-parity Test for parity between PCB and schematic", @@ -285,6 +293,8 @@ "--severity-warning Report all DRC warning level violations, this can be combined with the other severity arguments", "--severity-exclusions Report all excluded DRC violations, this can be combined with the other severity arguments", "--exit-code-violations Return a nonzero exit code if DRC violations exist", + "--refill-zones Refill zones before running DRC", + "--save-board Save the board after DRC, must be used with --refill-zones", ], ), ], @@ -296,7 +306,7 @@ ParserL1.Section( name="Usage", lines=[ - "Usage: export [--help] {brep,drill,dxf,gencad,gerber,gerbers,glb,ipc2581,ipcd356,odb,pdf,ply,pos,step,stl,svg,vrml,xao}" + "Usage: pcb export [--help] {3dpdf,brep,drill,dxf,gencad,gerbers,glb,hpgl,ipc2581,ipcd356,odb,pdf,ply,pos,ps,stats,step,stl,stpz,svg,u3d,vrml,xao}" ], ), ParserL1.Section( @@ -316,35 +326,98 @@ name="Subcommands", lines=[ "Subcommands:", + "3dpdf Export PDF", "brep Export BREP", "drill Generate Drill Files", "dxf Generate a DXF from a list of layers", - "gencad Generate Gencad from a list of layers", - "gerber Plot given layers to a single Gerber file", + "gencad Export the PCB in Gencad format", "gerbers Plot multiple Gerbers for a PCB, including the ability to use stored board plot settings", "glb Export GLB (binary GLTF)", + "hpgl No longer supported as of KiCad 10.0.", "ipc2581 Export the PCB in IPC-2581 format", "ipcd356 Generate IPC-D-356 netlist file", "odb Export the PCB in ODB++ format", "pdf Generate PDF from a list of layers", "ply Export PLY", "pos Generate Position File", + "ps Generate Postscript from a list of layers", + "stats Generate a board statistics report", "step Export STEP", "stl Export STL", + "stpz Export STEPZ", "svg Generate SVG outputs of a given layer list", + "u3d Export U3D", "vrml Export VRML", "xao Export XAO", ], ), ], subcommands=[ + ParserL1.Command( + command="3dpdf", + sections=[ + ParserL1.Section( + name="Usage", + lines=[ + "Usage: export 3dpdf [--help] [--output OUTPUT_FILE] [--define-var KEY=VALUE]... [--force] [--no-unspecified] [--no-dnp] [--variant VAR]... [--grid-origin] [--drill-origin] [--subst-models] [--board-only] [--cut-vias-in-body] [--no-board-body] [--no-components] [--component-filter VAR] [--include-tracks] [--include-pads] [--include-zones] [--include-inner-copper] [--include-silkscreen] [--include-soldermask] [--fuse-shapes] [--fill-all-vias] [--no-extra-pad-thickness] [--min-distance MIN_DIST] [--net-filter VAR] [--user-origin VAR] INPUT_FILE" + ], + ), + ParserL1.Section( + name="Export PDF", lines=["Export PDF"] + ), + ParserL1.Section( + name="Positional arguments", + lines=[ + "Positional arguments:", + "INPUT_FILE Input file", + ], + ), + ParserL1.Section( + name="Optional arguments", + lines=[ + "Optional arguments:", + "-h, --help Shows help message and exits", + '-o, --output Output file [nargs=0..1] [default: ""]', + "-D, --define-var Overrides or adds project variables, can be used multiple times to declare multiple variables.", + "Use in the format of '--define-var key=value' or '-D key=value' [nargs=0..1] [default: {}] [may be repeated]", + "-f, --force Overwrite output file", + "--no-unspecified Exclude 3D models for components with 'Unspecified' footprint type", + "--no-dnp Exclude 3D models for components with 'Do not populate' attribute", + "--variant The variant name(s) to output, can be used multiple times to specify multiple variants.", + "When specifying multiple variants, use ${VARIANT} in the output path to generate separate files for each variant.", + "When no --variant argument is provided the default variant is output. [nargs=0..1] [default: {}] [may be repeated]", + "--grid-origin Use Grid Origin for output origin", + "--drill-origin Use Drill Origin for output origin", + "--subst-models Substitute STEP or IGS models with the same name in place of VRML models", + "--board-only Only generate a board with no components", + "--cut-vias-in-body Cut via holes in board body even if conductor layers are not exported.", + "--no-board-body Exclude board body", + "--no-components Exclude 3D models for components", + '--component-filter Only include component 3D models matching this list of reference designators (comma-separated, wildcards supported) [nargs=0..1] [default: ""]', + "--include-tracks Export tracks and vias", + "--include-pads Export pads", + "--include-zones Export zones", + "--include-inner-copper Export elements on inner copper layers", + "--include-silkscreen Export silkscreen graphics as a set of flat faces", + "--include-soldermask Export soldermask layers as a set of flat faces", + "--fuse-shapes Fuse overlapping geometry together", + "--fill-all-vias Don't cut via holes in conductor layers.", + "--no-extra-pad-thickness Disable extra pad thickness (pads will have normal thickness)", + '--min-distance Minimum distance between points to treat them as separate ones [nargs=0..1] [default: "0.01mm"]', + '--net-filter Only include copper items belonging to nets matching this wildcard [nargs=0..1] [default: ""]', + '--user-origin User-specified output origin ex. 1x1in, 1x1inch, 25.4x25.4mm (default unit mm) [nargs=0..1] [default: ""]', + ], + ), + ], + subcommands=[], + ), ParserL1.Command( command="brep", sections=[ ParserL1.Section( name="Usage", lines=[ - "Usage: brep [--help] [--output OUTPUT_FILE] [--define-var KEY=VALUE] [--force] [--no-unspecified] [--no-dnp] [--grid-origin] [--drill-origin] [--subst-models] [--board-only] [--cut-vias-in-body] [--no-board-body] [--no-components] [--component-filter VAR] [--include-tracks] [--include-pads] [--include-zones] [--include-inner-copper] [--include-silkscreen] [--include-soldermask] [--fuse-shapes] [--fill-all-vias] [--min-distance MIN_DIST] [--net-filter VAR] [--user-origin VAR] INPUT_FILE" + "Usage: export brep [--help] [--output OUTPUT_FILE] [--define-var KEY=VALUE]... [--force] [--no-unspecified] [--no-dnp] [--variant VAR]... [--grid-origin] [--drill-origin] [--subst-models] [--board-only] [--cut-vias-in-body] [--no-board-body] [--no-components] [--component-filter VAR] [--include-tracks] [--include-pads] [--include-zones] [--include-inner-copper] [--include-silkscreen] [--include-soldermask] [--fuse-shapes] [--fill-all-vias] [--no-extra-pad-thickness] [--min-distance MIN_DIST] [--net-filter VAR] [--user-origin VAR] INPUT_FILE" ], ), ParserL1.Section( @@ -354,39 +427,43 @@ name="Positional arguments", lines=[ "Positional arguments:", - "INPUT_FILE Input file", + "INPUT_FILE Input file", ], ), ParserL1.Section( name="Optional arguments", lines=[ "Optional arguments:", - "-h, --help Shows help message and exits", - '-o, --output Output file [nargs=0..1] [default: ""]', - "-D, --define-var Overrides or adds project variables, can be used multiple times to declare multiple variables.", - "Use in the format of '--define-var key=value' or '-D key=value' [nargs=0..1] [default: {}]", - "-f, --force Overwrite output file", - "--no-unspecified Exclude 3D models for components with 'Unspecified' footprint type", - "--no-dnp Exclude 3D models for components with 'Do not populate' attribute", - "--grid-origin Use Grid Origin for output origin", - "--drill-origin Use Drill Origin for output origin", - "--subst-models Substitute STEP or IGS models with the same name in place of VRML models", - "--board-only Only generate a board with no components", - "--cut-vias-in-body Cut via holes in board body even if conductor layers are not exported.", - "--no-board-body Exclude board body", - "--no-components Exclude 3D models for components", - '--component-filter Only include component 3D models matching this list of reference designators (comma-separated, wildcards supported) [nargs=0..1] [default: ""]', - "--include-tracks Export tracks and vias", - "--include-pads Export pads", - "--include-zones Export zones", - "--include-inner-copper Export elements on inner copper layers", - "--include-silkscreen Export silkscreen graphics as a set of flat faces", - "--include-soldermask Export soldermask layers as a set of flat faces", - "--fuse-shapes Fuse overlapping geometry together", - "--fill-all-vias Don't cut via holes in conductor layers.", - '--min-distance Minimum distance between points to treat them as separate ones [nargs=0..1] [default: "0.01mm"]', - '--net-filter Only include copper items belonging to nets matching this wildcard [nargs=0..1] [default: ""]', - '--user-origin User-specified output origin ex. 1x1in, 1x1inch, 25.4x25.4mm (default unit mm) [nargs=0..1] [default: ""]', + "-h, --help Shows help message and exits", + '-o, --output Output file [nargs=0..1] [default: ""]', + "-D, --define-var Overrides or adds project variables, can be used multiple times to declare multiple variables.", + "Use in the format of '--define-var key=value' or '-D key=value' [nargs=0..1] [default: {}] [may be repeated]", + "-f, --force Overwrite output file", + "--no-unspecified Exclude 3D models for components with 'Unspecified' footprint type", + "--no-dnp Exclude 3D models for components with 'Do not populate' attribute", + "--variant The variant name(s) to output, can be used multiple times to specify multiple variants.", + "When specifying multiple variants, use ${VARIANT} in the output path to generate separate files for each variant.", + "When no --variant argument is provided the default variant is output. [nargs=0..1] [default: {}] [may be repeated]", + "--grid-origin Use Grid Origin for output origin", + "--drill-origin Use Drill Origin for output origin", + "--subst-models Substitute STEP or IGS models with the same name in place of VRML models", + "--board-only Only generate a board with no components", + "--cut-vias-in-body Cut via holes in board body even if conductor layers are not exported.", + "--no-board-body Exclude board body", + "--no-components Exclude 3D models for components", + '--component-filter Only include component 3D models matching this list of reference designators (comma-separated, wildcards supported) [nargs=0..1] [default: ""]', + "--include-tracks Export tracks and vias", + "--include-pads Export pads", + "--include-zones Export zones", + "--include-inner-copper Export elements on inner copper layers", + "--include-silkscreen Export silkscreen graphics as a set of flat faces", + "--include-soldermask Export soldermask layers as a set of flat faces", + "--fuse-shapes Fuse overlapping geometry together", + "--fill-all-vias Don't cut via holes in conductor layers.", + "--no-extra-pad-thickness Disable extra pad thickness (pads will have normal thickness)", + '--min-distance Minimum distance between points to treat them as separate ones [nargs=0..1] [default: "0.01mm"]', + '--net-filter Only include copper items belonging to nets matching this wildcard [nargs=0..1] [default: ""]', + '--user-origin User-specified output origin ex. 1x1in, 1x1inch, 25.4x25.4mm (default unit mm) [nargs=0..1] [default: ""]', ], ), ], @@ -398,7 +475,7 @@ ParserL1.Section( name="Usage", lines=[ - "Usage: drill [--help] [--output OUTPUT_DIR] [--format FORMAT] [--drill-origin DRILL_ORIGIN] [--excellon-zeros-format ZEROS_FORMAT] [--excellon-oval-format OVAL_FORMAT] [--excellon-units UNITS] [--excellon-mirror-y] [--excellon-min-header] [--excellon-separate-th] [--generate-map] [--map-format MAP_FORMAT] [--gerber-precision VAR] INPUT_FILE" + "Usage: export drill [--help] [--output OUTPUT_DIR] [--format FORMAT] [--drill-origin DRILL_ORIGIN] [--excellon-zeros-format ZEROS_FORMAT] [--excellon-oval-format OVAL_FORMAT] [--excellon-units UNITS] [--excellon-mirror-y] [--excellon-min-header] [--excellon-separate-th] [--generate-map] [--generate-report] [--report-path REPORT_FILE] [--generate-tenting] [--map-format MAP_FORMAT] [--gerber-precision VAR] INPUT_FILE" ], ), ParserL1.Section( @@ -419,15 +496,18 @@ "-h, --help Shows help message and exits", '-o, --output Output directory [nargs=0..1] [default: ""]', '--format Valid options excellon, gerber. [nargs=0..1] [default: "excellon"]', - '--drill-origin Valid options are: absolute,plot [nargs=0..1] [default: "absolute"]', - '--excellon-zeros-format Valid options are: decimal,suppressleading,suppresstrailing,keep. [nargs=0..1] [default: "decimal"]', - '--excellon-oval-format Valid options are: route,alternate. [nargs=0..1] [default: "alternate"]', - '-u, --excellon-units Output units, valid options:in,mm [nargs=0..1] [default: "mm"]', + '--drill-origin Valid options are: absolute, plot [nargs=0..1] [default: "absolute"]', + '--excellon-zeros-format Valid options are: decimal, suppressleading, suppresstrailing, keep. [nargs=0..1] [default: "decimal"]', + '--excellon-oval-format Valid options are: route, alternate. [nargs=0..1] [default: "alternate"]', + '-u, --excellon-units Output units, valid options: in, mm [nargs=0..1] [default: "mm"]', "--excellon-mirror-y Mirror Y axis", "--excellon-min-header Minimal header", "--excellon-separate-th Generate independent files for NPTH and PTH holes", "--generate-map Generate map / summary of drill hits", - '--map-format Valid options: pdf,gerberx2,ps,dxf,svg [nargs=0..1] [default: "pdf"]', + "--generate-report Generate report of drill hits", + '--report-path Report output file path [nargs=0..1] [default: ""]', + "--generate-tenting Generate a file specifically for tenting", + '--map-format Valid options: pdf, gerberx2, ps, dxf, svg [nargs=0..1] [default: "pdf"]', "--gerber-precision Precision of Gerber coordinates (5 or 6) [nargs=0..1] [default: 6]", ], ), @@ -440,7 +520,7 @@ ParserL1.Section( name="Usage", lines=[ - "Usage: dxf [--help] [--output OUTPUT_FILE] [--layers LAYER_LIST] [--drawing-sheet SHEET_PATH] [--define-var KEY=VALUE] [--exclude-refdes] [--exclude-value] [--sketch-pads-on-fab-layers] [--hide-DNP-footprints-on-fab-layers] [--sketch-DNP-footprints-on-fab-layers] [--crossout-DNP-footprints-on-fab-layers] [--subtract-soldermask] [--use-contours] [--use-drill-origin] [--include-border-title] [--output-units UNITS] [--drill-shape-opt VAR] [--common-layers COMMON_LAYER_LIST] [--mode-single] [--mode-multi] [--plot-invisible-text] INPUT_FILE" + "Usage: export dxf [--help] [--output OUTPUT_DIR] [--layers LAYER_LIST] [--common-layers COMMON_LAYER_LIST] [--drawing-sheet SHEET_PATH] [--define-var KEY=VALUE]... [--exclude-refdes] [--exclude-value] [--sketch-pads-on-fab-layers] [--hide-DNP-footprints-on-fab-layers] [--sketch-DNP-footprints-on-fab-layers] [--crossout-DNP-footprints-on-fab-layers] [--subtract-soldermask] [--use-contours] [--use-drill-origin] [--include-border-title] [--output-units UNITS] [--drill-shape-opt VAR] [--mode-single] [--mode-multi] [--scale SCALE] [--check-zones] [--variant VAR]... INPUT_FILE" ], ), ParserL1.Section( @@ -459,11 +539,12 @@ lines=[ "Optional arguments:", "-h, --help Shows help message and exits", - '-o, --output Output file [nargs=0..1] [default: ""]', + '-o, --output Output directory [nargs=0..1] [default: ""]', '-l, --layers Comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""]', + '--cl, --common-layers Layers to include on each plot, comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""]', '--drawing-sheet Path to drawing sheet, this overrides any existing project defined sheet when used [nargs=0..1] [default: ""]', "-D, --define-var Overrides or adds project variables, can be used multiple times to declare multiple variables.", - "Use in the format of '--define-var key=value' or '-D key=value' [nargs=0..1] [default: {}]", + "Use in the format of '--define-var key=value' or '-D key=value' [nargs=0..1] [default: {}] [may be repeated]", "--erd, --exclude-refdes Exclude the reference designator text", "--ev, --exclude-value Exclude the value text", "--sp, --sketch-pads-on-fab-layers Draw pad outlines and their numbers on front and back fab layers", @@ -476,10 +557,13 @@ "--ibt, --include-border-title Include the border and title block", '--ou, --output-units Output units, valid options: mm, in [nargs=0..1] [default: "in"]', "--drill-shape-opt Set pad/via drill shape option (0 = no shape, 1 = small shape, 2 = actual shape) [nargs=0..1] [default: 2]", - '--cl, --common-layers Layers to include on each plot, comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""]', "--mode-single Generates a single file with the output arg path acting as the complete directory and filename path. COMMON_LAYER_LIST does not function in this mode. Instead LAYER_LIST controls all layers plotted.", "--mode-multi Generates one or more files with behavior similar to the KiCad GUI plotting. The given output path specifies a directory in which files may be output.", - "--plot-invisible-text Deprecated. Has no effect.", + "--scale Scale for the PCB, not for the border and title. Use 0 for autoscale [nargs=0..1] [default: 1]", + "--check-zones Check and refill zones if required", + "--variant The variant name(s) to output, can be used multiple times to specify multiple variants.", + "When specifying multiple variants, use ${VARIANT} in the output path to generate separate files for each variant.", + "When no --variant argument is provided the default variant is output. [nargs=0..1] [default: {}] [may be repeated]", ], ), ], @@ -491,12 +575,12 @@ ParserL1.Section( name="Usage", lines=[ - "Usage: gencad [--help] [--output OUTPUT_FILE] [--define-var KEY=VALUE] [--flip-bottom-pads] [--unique-pins] [--unique-footprints] [--use-drill-origin] [--store-origin-coord] INPUT_FILE" + "Usage: export gencad [--help] [--output OUTPUT_DIR] [--define-var KEY=VALUE]... [--flip-bottom-pads] [--unique-pins] [--unique-footprints] [--use-drill-origin] [--store-origin-coord] INPUT_FILE" ], ), ParserL1.Section( - name="Generate Gencad from a list of layers", - lines=["Generate Gencad from a list of layers"], + name="Export the PCB in Gencad format", + lines=["Export the PCB in Gencad format"], ), ParserL1.Section( name="Positional arguments", @@ -510,9 +594,9 @@ lines=[ "Optional arguments:", "-h, --help Shows help message and exits", - '-o, --output Output file [nargs=0..1] [default: ""]', + '-o, --output Output directory [nargs=0..1] [default: ""]', "-D, --define-var Overrides or adds project variables, can be used multiple times to declare multiple variables.", - "Use in the format of '--define-var key=value' or '-D key=value' [nargs=0..1] [default: {}]", + "Use in the format of '--define-var key=value' or '-D key=value' [nargs=0..1] [default: {}] [may be repeated]", "-f, --flip-bottom-pads Flip bottom footprint padstacks", "--unique-pins Generate unique pin names", "--unique-footprints Generate a new shape for each footprint instance (do not reuse shapes)", @@ -524,17 +608,19 @@ subcommands=[], ), ParserL1.Command( - command="gerber", + command="gerbers", sections=[ ParserL1.Section( name="Usage", lines=[ - "Usage: gerber [--help] [--output OUTPUT_FILE] [--layers LAYER_LIST] [--drawing-sheet SHEET_PATH] [--define-var KEY=VALUE] [--exclude-refdes] [--exclude-value] [--include-border-title] [--sketch-pads-on-fab-layers] [--hide-DNP-footprints-on-fab-layers] [--sketch-DNP-footprints-on-fab-layers] [--crossout-DNP-footprints-on-fab-layers] [--no-x2] [--no-netlist] [--subtract-soldermask] [--disable-aperture-macros] [--use-drill-file-origin] [--common-layers COMMON_LAYER_LIST] [--precision PRECISION] [--no-protel-ext] [--plot-invisible-text] INPUT_FILE" + "Usage: export gerbers [--help] [--output OUTPUT_DIR] [--layers LAYER_LIST] [--common-layers COMMON_LAYER_LIST] [--drawing-sheet SHEET_PATH] [--define-var KEY=VALUE]... [--exclude-refdes] [--exclude-value] [--include-border-title] [--sketch-pads-on-fab-layers] [--hide-DNP-footprints-on-fab-layers] [--sketch-DNP-footprints-on-fab-layers] [--crossout-DNP-footprints-on-fab-layers] [--no-x2] [--no-netlist] [--subtract-soldermask] [--disable-aperture-macros] [--use-drill-file-origin] [--precision PRECISION] [--no-protel-ext] [--check-zones] [--variant VAR]... [--board-plot-params] INPUT_FILE" ], ), ParserL1.Section( - name="Plot given layers to a single Gerber file", - lines=["Plot given layers to a single Gerber file"], + name="Plot multiple Gerbers for a PCB, including the ability to use stored board plot settings", + lines=[ + "Plot multiple Gerbers for a PCB, including the ability to use stored board plot settings" + ], ), ParserL1.Section( name="Positional arguments", @@ -548,11 +634,12 @@ lines=[ "Optional arguments:", "-h, --help Shows help message and exits", - '-o, --output Output file [nargs=0..1] [default: ""]', + '-o, --output Output directory [nargs=0..1] [default: ""]', '-l, --layers Comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""]', + '--cl, --common-layers Layers to include on each plot, comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""]', '--drawing-sheet Path to drawing sheet, this overrides any existing project defined sheet when used [nargs=0..1] [default: ""]', "-D, --define-var Overrides or adds project variables, can be used multiple times to declare multiple variables.", - "Use in the format of '--define-var key=value' or '-D key=value' [nargs=0..1] [default: {}]", + "Use in the format of '--define-var key=value' or '-D key=value' [nargs=0..1] [default: {}] [may be repeated]", "--erd, --exclude-refdes Exclude the reference designator text", "--ev, --exclude-value Exclude the value text", "--ibt, --include-border-title Include the border and title block", @@ -565,120 +652,103 @@ "--subtract-soldermask Subtract soldermask from silkscreen", "--disable-aperture-macros Disable aperture macros", "--use-drill-file-origin Use drill/place file origin", - '--cl, --common-layers Layers to include on each plot, comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""]', "--precision Precision of Gerber coordinates, valid options: 5 or 6 [nargs=0..1] [default: 6]", "--no-protel-ext Use KiCad Gerber file extension", - "--plot-invisible-text Deprecated. Has no effect.", + "--check-zones Check and refill zones if required", + "--variant The variant name(s) to output, can be used multiple times to specify multiple variants.", + "When specifying multiple variants, use ${VARIANT} in the output path to generate separate files for each variant.", + "When no --variant argument is provided the default variant is output. [nargs=0..1] [default: {}] [may be repeated]", + "--board-plot-params Use the Gerber plot settings already configured in the board file", ], ), ], subcommands=[], ), ParserL1.Command( - command="gerbers", + command="glb", sections=[ ParserL1.Section( name="Usage", lines=[ - "Usage: gerbers [--help] [--output OUTPUT_FILE] [--layers LAYER_LIST] [--drawing-sheet SHEET_PATH] [--define-var KEY=VALUE] [--exclude-refdes] [--exclude-value] [--include-border-title] [--sketch-pads-on-fab-layers] [--hide-DNP-footprints-on-fab-layers] [--sketch-DNP-footprints-on-fab-layers] [--crossout-DNP-footprints-on-fab-layers] [--no-x2] [--no-netlist] [--subtract-soldermask] [--disable-aperture-macros] [--use-drill-file-origin] [--common-layers COMMON_LAYER_LIST] [--precision PRECISION] [--no-protel-ext] [--plot-invisible-text] [--common-layers COMMON_LAYER_LIST] [--board-plot-params] INPUT_FILE" + "Usage: export glb [--help] [--output OUTPUT_FILE] [--define-var KEY=VALUE]... [--force] [--no-unspecified] [--no-dnp] [--variant VAR]... [--grid-origin] [--drill-origin] [--subst-models] [--board-only] [--cut-vias-in-body] [--no-board-body] [--no-components] [--component-filter VAR] [--include-tracks] [--include-pads] [--include-zones] [--include-inner-copper] [--include-silkscreen] [--include-soldermask] [--fuse-shapes] [--fill-all-vias] [--no-extra-pad-thickness] [--min-distance MIN_DIST] [--net-filter VAR] [--user-origin VAR] INPUT_FILE" ], ), ParserL1.Section( - name="Plot multiple Gerbers for a PCB, including the ability to use stored board plot settings", - lines=[ - "Plot multiple Gerbers for a PCB, including the ability to use stored board plot settings" - ], + name="Export GLB (binary GLTF)", + lines=["Export GLB (binary GLTF)"], ), ParserL1.Section( name="Positional arguments", lines=[ "Positional arguments:", - "INPUT_FILE Input file", + "INPUT_FILE Input file", ], ), ParserL1.Section( name="Optional arguments", lines=[ "Optional arguments:", - "-h, --help Shows help message and exits", - '-o, --output Output file [nargs=0..1] [default: ""]', - '-l, --layers Comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""]', - '--drawing-sheet Path to drawing sheet, this overrides any existing project defined sheet when used [nargs=0..1] [default: ""]', - "-D, --define-var Overrides or adds project variables, can be used multiple times to declare multiple variables.", - "Use in the format of '--define-var key=value' or '-D key=value' [nargs=0..1] [default: {}]", - "--erd, --exclude-refdes Exclude the reference designator text", - "--ev, --exclude-value Exclude the value text", - "--ibt, --include-border-title Include the border and title block", - "--sp, --sketch-pads-on-fab-layers Draw pad outlines and their numbers on front and back fab layers", - "--hdnp, --hide-DNP-footprints-on-fab-layers Don't plot text & graphics of DNP footprints on fab layers", - "--sdnp, --sketch-DNP-footprints-on-fab-layers Plot graphics of DNP footprints in sketch mode on fab layers", - "--cdnp, --crossout-DNP-footprints-on-fab-layers Plot an 'X' over the courtyard of DNP footprints on fab layers, and strikeout their reference designators", - "--no-x2 Do not use the extended X2 format", - "--no-netlist Do not generate netlist attributes", - "--subtract-soldermask Subtract soldermask from silkscreen", - "--disable-aperture-macros Disable aperture macros", - "--use-drill-file-origin Use drill/place file origin", - '--cl, --common-layers Layers to include on each plot, comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""]', - "--precision Precision of Gerber coordinates, valid options: 5 or 6 [nargs=0..1] [default: 6]", - "--no-protel-ext Use KiCad Gerber file extension", - "--plot-invisible-text Deprecated. Has no effect.", - '--cl, --common-layers Layers to include on each plot, comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""]', - "--board-plot-params Use the Gerber plot settings already configured in the board file", + "-h, --help Shows help message and exits", + '-o, --output Output file [nargs=0..1] [default: ""]', + "-D, --define-var Overrides or adds project variables, can be used multiple times to declare multiple variables.", + "Use in the format of '--define-var key=value' or '-D key=value' [nargs=0..1] [default: {}] [may be repeated]", + "-f, --force Overwrite output file", + "--no-unspecified Exclude 3D models for components with 'Unspecified' footprint type", + "--no-dnp Exclude 3D models for components with 'Do not populate' attribute", + "--variant The variant name(s) to output, can be used multiple times to specify multiple variants.", + "When specifying multiple variants, use ${VARIANT} in the output path to generate separate files for each variant.", + "When no --variant argument is provided the default variant is output. [nargs=0..1] [default: {}] [may be repeated]", + "--grid-origin Use Grid Origin for output origin", + "--drill-origin Use Drill Origin for output origin", + "--subst-models Substitute STEP or IGS models with the same name in place of VRML models", + "--board-only Only generate a board with no components", + "--cut-vias-in-body Cut via holes in board body even if conductor layers are not exported.", + "--no-board-body Exclude board body", + "--no-components Exclude 3D models for components", + '--component-filter Only include component 3D models matching this list of reference designators (comma-separated, wildcards supported) [nargs=0..1] [default: ""]', + "--include-tracks Export tracks and vias", + "--include-pads Export pads", + "--include-zones Export zones", + "--include-inner-copper Export elements on inner copper layers", + "--include-silkscreen Export silkscreen graphics as a set of flat faces", + "--include-soldermask Export soldermask layers as a set of flat faces", + "--fuse-shapes Fuse overlapping geometry together", + "--fill-all-vias Don't cut via holes in conductor layers.", + "--no-extra-pad-thickness Disable extra pad thickness (pads will have normal thickness)", + '--min-distance Minimum distance between points to treat them as separate ones [nargs=0..1] [default: "0.01mm"]', + '--net-filter Only include copper items belonging to nets matching this wildcard [nargs=0..1] [default: ""]', + '--user-origin User-specified output origin ex. 1x1in, 1x1inch, 25.4x25.4mm (default unit mm) [nargs=0..1] [default: ""]', ], ), ], subcommands=[], ), ParserL1.Command( - command="glb", + command="hpgl", sections=[ ParserL1.Section( name="Usage", lines=[ - "Usage: glb [--help] [--output OUTPUT_FILE] [--define-var KEY=VALUE] [--force] [--no-unspecified] [--no-dnp] [--grid-origin] [--drill-origin] [--subst-models] [--board-only] [--cut-vias-in-body] [--no-board-body] [--no-components] [--component-filter VAR] [--include-tracks] [--include-pads] [--include-zones] [--include-inner-copper] [--include-silkscreen] [--include-soldermask] [--fuse-shapes] [--fill-all-vias] [--min-distance MIN_DIST] [--net-filter VAR] [--user-origin VAR] INPUT_FILE" + "Usage: export hpgl [--help] [--output OUTPUT_DIR] INPUT_FILE" ], ), ParserL1.Section( - name="Export GLB (binary GLTF)", - lines=["Export GLB (binary GLTF)"], + name="No longer supported as of KiCad 10.0.", + lines=["No longer supported as of KiCad 10.0."], ), ParserL1.Section( name="Positional arguments", lines=[ "Positional arguments:", - "INPUT_FILE Input file", + "INPUT_FILE Input file", ], ), ParserL1.Section( name="Optional arguments", lines=[ "Optional arguments:", - "-h, --help Shows help message and exits", - '-o, --output Output file [nargs=0..1] [default: ""]', - "-D, --define-var Overrides or adds project variables, can be used multiple times to declare multiple variables.", - "Use in the format of '--define-var key=value' or '-D key=value' [nargs=0..1] [default: {}]", - "-f, --force Overwrite output file", - "--no-unspecified Exclude 3D models for components with 'Unspecified' footprint type", - "--no-dnp Exclude 3D models for components with 'Do not populate' attribute", - "--grid-origin Use Grid Origin for output origin", - "--drill-origin Use Drill Origin for output origin", - "--subst-models Substitute STEP or IGS models with the same name in place of VRML models", - "--board-only Only generate a board with no components", - "--cut-vias-in-body Cut via holes in board body even if conductor layers are not exported.", - "--no-board-body Exclude board body", - "--no-components Exclude 3D models for components", - '--component-filter Only include component 3D models matching this list of reference designators (comma-separated, wildcards supported) [nargs=0..1] [default: ""]', - "--include-tracks Export tracks and vias", - "--include-pads Export pads", - "--include-zones Export zones", - "--include-inner-copper Export elements on inner copper layers", - "--include-silkscreen Export silkscreen graphics as a set of flat faces", - "--include-soldermask Export soldermask layers as a set of flat faces", - "--fuse-shapes Fuse overlapping geometry together", - "--fill-all-vias Don't cut via holes in conductor layers.", - '--min-distance Minimum distance between points to treat them as separate ones [nargs=0..1] [default: "0.01mm"]', - '--net-filter Only include copper items belonging to nets matching this wildcard [nargs=0..1] [default: ""]', - '--user-origin User-specified output origin ex. 1x1in, 1x1inch, 25.4x25.4mm (default unit mm) [nargs=0..1] [default: ""]', + "-h, --help Shows help message and exits", + '-o, --output Output directory [nargs=0..1] [default: ""]', ], ), ], @@ -690,7 +760,7 @@ ParserL1.Section( name="Usage", lines=[ - "Usage: ipc2581 [--help] [--output OUTPUT_FILE] [--drawing-sheet SHEET_PATH] [--define-var KEY=VALUE] [--precision PRECISION] [--compress] [--version VAR] [--units VAR] [--bom-col-int-id FIELD_NAME] [--bom-col-mfg-pn FIELD_NAME] [--bom-col-mfg FIELD_NAME] [--bom-col-dist-pn FIELD_NAME] [--bom-col-dist FIELD_NAME] INPUT_FILE" + "Usage: export ipc2581 [--help] [--output OUTPUT_FILE] [--drawing-sheet SHEET_PATH] [--define-var KEY=VALUE]... [--precision PRECISION] [--compress] [--version VAR] [--units VAR] [--bom-col-int-id FIELD_NAME] [--bom-col-mfg-pn FIELD_NAME] [--bom-col-mfg FIELD_NAME] [--bom-col-dist-pn FIELD_NAME] [--bom-col-dist FIELD_NAME] [--bom-rev REVISION] [--variant VAR]... INPUT_FILE" ], ), ParserL1.Section( @@ -712,7 +782,7 @@ '-o, --output Output file [nargs=0..1] [default: ""]', '--drawing-sheet Path to drawing sheet, this overrides any existing project defined sheet when used [nargs=0..1] [default: ""]', "-D, --define-var Overrides or adds project variables, can be used multiple times to declare multiple variables.", - "Use in the format of '--define-var key=value' or '-D key=value' [nargs=0..1] [default: {}]", + "Use in the format of '--define-var key=value' or '-D key=value' [nargs=0..1] [default: {}] [may be repeated]", "--precision Precision [nargs=0..1] [default: 6]", "--compress Compress the output", '--version IPC-2581 standard version [nargs=0..1] [default: "C"]', @@ -722,6 +792,10 @@ '--bom-col-mfg Name of the part field to use for the Bill of Material Manufacturer Column [nargs=0..1] [default: ""]', '--bom-col-dist-pn Name of the part field to use for the Bill of Material Distributor Part Number Column [nargs=0..1] [default: ""]', '--bom-col-dist Name to insert into Bill of Material Distributor Column [nargs=0..1] [default: ""]', + '--bom-rev BOM revision to use in the output file. Defaults to schematic revision from the project file [nargs=0..1] [default: ""]', + "--variant The variant name(s) to output, can be used multiple times to specify multiple variants.", + "When specifying multiple variants, use ${VARIANT} in the output path to generate separate files for each variant.", + "When no --variant argument is provided the default variant is output. [nargs=0..1] [default: {}] [may be repeated]", ], ), ], @@ -733,7 +807,7 @@ ParserL1.Section( name="Usage", lines=[ - "Usage: ipcd356 [--help] [--output OUTPUT_FILE] INPUT_FILE" + "Usage: export ipcd356 [--help] [--output OUTPUT_FILE] INPUT_FILE" ], ), ParserL1.Section( @@ -764,7 +838,7 @@ ParserL1.Section( name="Usage", lines=[ - "Usage: odb [--help] [--output OUTPUT_FILE] [--drawing-sheet SHEET_PATH] [--define-var KEY=VALUE] [--precision PRECISION] [--compression VAR] [--units VAR] INPUT_FILE" + "Usage: export odb [--help] [--output OUTPUT_FILE] [--drawing-sheet SHEET_PATH] [--define-var KEY=VALUE]... [--precision PRECISION] [--compression VAR] [--units VAR] [--variant VAR]... INPUT_FILE" ], ), ParserL1.Section( @@ -786,10 +860,13 @@ '-o, --output Output file [nargs=0..1] [default: ""]', '--drawing-sheet Path to drawing sheet, this overrides any existing project defined sheet when used [nargs=0..1] [default: ""]', "-D, --define-var Overrides or adds project variables, can be used multiple times to declare multiple variables.", - "Use in the format of '--define-var key=value' or '-D key=value' [nargs=0..1] [default: {}]", + "Use in the format of '--define-var key=value' or '-D key=value' [nargs=0..1] [default: {}] [may be repeated]", "--precision Precision [nargs=0..1] [default: 2]", '--compression Compression mode [nargs=0..1] [default: "zip"]', '--units Units [nargs=0..1] [default: "mm"]', + "--variant The variant name(s) to output, can be used multiple times to specify multiple variants.", + "When specifying multiple variants, use ${VARIANT} in the output path to generate separate files for each variant.", + "When no --variant argument is provided the default variant is output. [nargs=0..1] [default: {}] [may be repeated]", ], ), ], @@ -801,7 +878,7 @@ ParserL1.Section( name="Usage", lines=[ - "Usage: pdf [--help] [--output OUTPUT_FILE] [--layers LAYER_LIST] [--drawing-sheet SHEET_PATH] [--define-var KEY=VALUE] [--mirror] [--exclude-refdes] [--exclude-value] [--include-border-title] [--subtract-soldermask] [--sketch-pads-on-fab-layers] [--hide-DNP-footprints-on-fab-layers] [--sketch-DNP-footprints-on-fab-layers] [--crossout-DNP-footprints-on-fab-layers] [--negative] [--black-and-white] [--theme THEME_NAME] [--drill-shape-opt VAR] [--common-layers COMMON_LAYER_LIST] [--plot-invisible-text] [--mode-single] [--mode-separate] [--mode-multipage] INPUT_FILE" + "Usage: export pdf [--help] [--output OUTPUT_DIR] [--layers LAYER_LIST] [--common-layers COMMON_LAYER_LIST] [--drawing-sheet SHEET_PATH] [--define-var KEY=VALUE]... [--mirror] [--exclude-refdes] [--exclude-value] [--include-border-title] [--subtract-soldermask] [--sketch-pads-on-fab-layers] [--hide-DNP-footprints-on-fab-layers] [--sketch-DNP-footprints-on-fab-layers] [--crossout-DNP-footprints-on-fab-layers] [--negative] [--black-and-white] [--theme THEME_NAME] [--drill-shape-opt VAR] [--mode-single] [--mode-separate] [--mode-multipage] [--scale SCALE] [--bg-color COLOR] [--check-zones] [--variant VAR]... INPUT_FILE" ], ), ParserL1.Section( @@ -820,11 +897,12 @@ lines=[ "Optional arguments:", "-h, --help Shows help message and exits", - '-o, --output Output file [nargs=0..1] [default: ""]', + '-o, --output Output directory [nargs=0..1] [default: ""]', '-l, --layers Comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""]', + '--cl, --common-layers Layers to include on each plot, comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""]', '--drawing-sheet Path to drawing sheet, this overrides any existing project defined sheet when used [nargs=0..1] [default: ""]', "-D, --define-var Overrides or adds project variables, can be used multiple times to declare multiple variables.", - "Use in the format of '--define-var key=value' or '-D key=value' [nargs=0..1] [default: {}]", + "Use in the format of '--define-var key=value' or '-D key=value' [nargs=0..1] [default: {}] [may be repeated]", "-m, --mirror Mirror the board (useful for trying to show bottom layers)", "--erd, --exclude-refdes Exclude the reference designator text", "--ev, --exclude-value Exclude the value text", @@ -838,11 +916,15 @@ "--black-and-white Black and white only", '-t, --theme Color theme to use (will default to PCB Editor settings) [nargs=0..1] [default: ""]', "--drill-shape-opt Set pad/via drill shape option (0 = no shape, 1 = small shape, 2 = actual shape) [nargs=0..1] [default: 2]", - '--cl, --common-layers Layers to include on each plot, comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""]', - "--plot-invisible-text Deprecated. Has no effect.", "--mode-single Generates a single file with the output arg path acting as the complete directory and filename path. COMMON_LAYER_LIST does not function in this mode. Instead LAYER_LIST controls all layers plotted.", "--mode-separate Plot the layers to individual PDF files", "--mode-multipage Plot the layers to a single PDF file with multiple pages", + "--scale Scale for the PCB, not for the border and title. Use 0 for autoscale [nargs=0..1] [default: 1]", + '--bg-color Background color, can be in hex #rrggbb, #rrggbbaa; or css rgb(r,g,b), rgba(r,g,b,a) format [nargs=0..1] [default: ""]', + "--check-zones Check and refill zones if required", + "--variant The variant name(s) to output, can be used multiple times to specify multiple variants.", + "When specifying multiple variants, use ${VARIANT} in the output path to generate separate files for each variant.", + "When no --variant argument is provided the default variant is output. [nargs=0..1] [default: {}] [may be repeated]", ], ), ], @@ -854,7 +936,7 @@ ParserL1.Section( name="Usage", lines=[ - "Usage: ply [--help] [--output OUTPUT_FILE] [--define-var KEY=VALUE] [--force] [--no-unspecified] [--no-dnp] [--grid-origin] [--drill-origin] [--subst-models] [--board-only] [--cut-vias-in-body] [--no-board-body] [--no-components] [--component-filter VAR] [--include-tracks] [--include-pads] [--include-zones] [--include-inner-copper] [--include-silkscreen] [--include-soldermask] [--fuse-shapes] [--fill-all-vias] [--min-distance MIN_DIST] [--net-filter VAR] [--user-origin VAR] INPUT_FILE" + "Usage: export ply [--help] [--output OUTPUT_FILE] [--define-var KEY=VALUE]... [--force] [--no-unspecified] [--no-dnp] [--variant VAR]... [--grid-origin] [--drill-origin] [--subst-models] [--board-only] [--cut-vias-in-body] [--no-board-body] [--no-components] [--component-filter VAR] [--include-tracks] [--include-pads] [--include-zones] [--include-inner-copper] [--include-silkscreen] [--include-soldermask] [--fuse-shapes] [--fill-all-vias] [--no-extra-pad-thickness] [--min-distance MIN_DIST] [--net-filter VAR] [--user-origin VAR] INPUT_FILE" ], ), ParserL1.Section( @@ -864,39 +946,43 @@ name="Positional arguments", lines=[ "Positional arguments:", - "INPUT_FILE Input file", + "INPUT_FILE Input file", ], ), ParserL1.Section( name="Optional arguments", lines=[ "Optional arguments:", - "-h, --help Shows help message and exits", - '-o, --output Output file [nargs=0..1] [default: ""]', - "-D, --define-var Overrides or adds project variables, can be used multiple times to declare multiple variables.", - "Use in the format of '--define-var key=value' or '-D key=value' [nargs=0..1] [default: {}]", - "-f, --force Overwrite output file", - "--no-unspecified Exclude 3D models for components with 'Unspecified' footprint type", - "--no-dnp Exclude 3D models for components with 'Do not populate' attribute", - "--grid-origin Use Grid Origin for output origin", - "--drill-origin Use Drill Origin for output origin", - "--subst-models Substitute STEP or IGS models with the same name in place of VRML models", - "--board-only Only generate a board with no components", - "--cut-vias-in-body Cut via holes in board body even if conductor layers are not exported.", - "--no-board-body Exclude board body", - "--no-components Exclude 3D models for components", - '--component-filter Only include component 3D models matching this list of reference designators (comma-separated, wildcards supported) [nargs=0..1] [default: ""]', - "--include-tracks Export tracks and vias", - "--include-pads Export pads", - "--include-zones Export zones", - "--include-inner-copper Export elements on inner copper layers", - "--include-silkscreen Export silkscreen graphics as a set of flat faces", - "--include-soldermask Export soldermask layers as a set of flat faces", - "--fuse-shapes Fuse overlapping geometry together", - "--fill-all-vias Don't cut via holes in conductor layers.", - '--min-distance Minimum distance between points to treat them as separate ones [nargs=0..1] [default: "0.01mm"]', - '--net-filter Only include copper items belonging to nets matching this wildcard [nargs=0..1] [default: ""]', - '--user-origin User-specified output origin ex. 1x1in, 1x1inch, 25.4x25.4mm (default unit mm) [nargs=0..1] [default: ""]', + "-h, --help Shows help message and exits", + '-o, --output Output file [nargs=0..1] [default: ""]', + "-D, --define-var Overrides or adds project variables, can be used multiple times to declare multiple variables.", + "Use in the format of '--define-var key=value' or '-D key=value' [nargs=0..1] [default: {}] [may be repeated]", + "-f, --force Overwrite output file", + "--no-unspecified Exclude 3D models for components with 'Unspecified' footprint type", + "--no-dnp Exclude 3D models for components with 'Do not populate' attribute", + "--variant The variant name(s) to output, can be used multiple times to specify multiple variants.", + "When specifying multiple variants, use ${VARIANT} in the output path to generate separate files for each variant.", + "When no --variant argument is provided the default variant is output. [nargs=0..1] [default: {}] [may be repeated]", + "--grid-origin Use Grid Origin for output origin", + "--drill-origin Use Drill Origin for output origin", + "--subst-models Substitute STEP or IGS models with the same name in place of VRML models", + "--board-only Only generate a board with no components", + "--cut-vias-in-body Cut via holes in board body even if conductor layers are not exported.", + "--no-board-body Exclude board body", + "--no-components Exclude 3D models for components", + '--component-filter Only include component 3D models matching this list of reference designators (comma-separated, wildcards supported) [nargs=0..1] [default: ""]', + "--include-tracks Export tracks and vias", + "--include-pads Export pads", + "--include-zones Export zones", + "--include-inner-copper Export elements on inner copper layers", + "--include-silkscreen Export silkscreen graphics as a set of flat faces", + "--include-soldermask Export soldermask layers as a set of flat faces", + "--fuse-shapes Fuse overlapping geometry together", + "--fill-all-vias Don't cut via holes in conductor layers.", + "--no-extra-pad-thickness Disable extra pad thickness (pads will have normal thickness)", + '--min-distance Minimum distance between points to treat them as separate ones [nargs=0..1] [default: "0.01mm"]', + '--net-filter Only include copper items belonging to nets matching this wildcard [nargs=0..1] [default: ""]', + '--user-origin User-specified output origin ex. 1x1in, 1x1inch, 25.4x25.4mm (default unit mm) [nargs=0..1] [default: ""]', ], ), ], @@ -908,7 +994,7 @@ ParserL1.Section( name="Usage", lines=[ - "Usage: pos [--help] [--output OUTPUT_FILE] [--side VAR] [--format FORMAT] [--units UNITS] [--bottom-negate-x] [--use-drill-file-origin] [--smd-only] [--exclude-fp-th] [--exclude-dnp] [--gerber-board-edge] INPUT_FILE" + "Usage: export pos [--help] [--output OUTPUT_FILE] [--side VAR] [--format FORMAT] [--units UNITS] [--bottom-negate-x] [--use-drill-file-origin] [--smd-only] [--exclude-fp-th] [--exclude-dnp] [--gerber-board-edge] [--variant VAR]... INPUT_FILE" ], ), ParserL1.Section( @@ -928,15 +1014,114 @@ "Optional arguments:", "-h, --help Shows help message and exits", '-o, --output Output file [nargs=0..1] [default: ""]', - '--side Valid options: front,back,both. Gerber format only supports "front" or "back". [nargs=0..1] [default: "both"]', - '--format Valid options: ascii,csv,gerber [nargs=0..1] [default: "ascii"]', - '--units Output units; ascii or csv format only; valid options: in,mm [nargs=0..1] [default: "in"]', + '--side Valid options: front, back, both. Gerber format only supports "front" or "back". [nargs=0..1] [default: "both"]', + '--format Valid options: ascii, csv, gerber [nargs=0..1] [default: "ascii"]', + '--units Output units; ascii or csv format only; valid options: in, mm [nargs=0..1] [default: "in"]', "--bottom-negate-x Use negative X coordinates for footprints on bottom layer (ascii or csv formats only)", "--use-drill-file-origin Use drill/place file origin (ascii or csv only)", "--smd-only Include only SMD footprints (ascii or csv only)", "--exclude-fp-th Exclude all footprints with through-hole pads (ascii or csv only)", "--exclude-dnp Exclude all footprints with the Do Not Populate flag set", "--gerber-board-edge Include board edge layer (Gerber only)", + "--variant The variant name(s) to output, can be used multiple times to specify multiple variants.", + "When specifying multiple variants, use ${VARIANT} in the output path to generate separate files for each variant.", + "When no --variant argument is provided the default variant is output. [nargs=0..1] [default: {}] [may be repeated]", + ], + ), + ], + subcommands=[], + ), + ParserL1.Command( + command="ps", + sections=[ + ParserL1.Section( + name="Usage", + lines=[ + "Usage: export ps [--help] [--output OUTPUT_DIR] [--layers LAYER_LIST] [--common-layers COMMON_LAYER_LIST] [--drawing-sheet SHEET_PATH] [--define-var KEY=VALUE]... [--mirror] [--exclude-refdes] [--exclude-value] [--include-border-title] [--subtract-soldermask] [--sketch-pads-on-fab-layers] [--hide-DNP-footprints-on-fab-layers] [--sketch-DNP-footprints-on-fab-layers] [--crossout-DNP-footprints-on-fab-layers] [--negative] [--black-and-white] [--theme THEME_NAME] [--drill-shape-opt VAR] [--mode-single] [--mode-multi] [--track-width-correction TRACK_COR] [--x-scale-factor X_SCALE] [--y-scale-factor Y_SCALE] [--force-a4] [--scale SCALE] [--check-zones] [--variant VAR]... INPUT_FILE" + ], + ), + ParserL1.Section( + name="Generate Postscript from a list of layers", + lines=["Generate Postscript from a list of layers"], + ), + ParserL1.Section( + name="Positional arguments", + lines=[ + "Positional arguments:", + "INPUT_FILE Input file", + ], + ), + ParserL1.Section( + name="Optional arguments", + lines=[ + "Optional arguments:", + "-h, --help Shows help message and exits", + '-o, --output Output directory [nargs=0..1] [default: ""]', + '-l, --layers Comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""]', + '--cl, --common-layers Layers to include on each plot, comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""]', + '--drawing-sheet Path to drawing sheet, this overrides any existing project defined sheet when used [nargs=0..1] [default: ""]', + "-D, --define-var Overrides or adds project variables, can be used multiple times to declare multiple variables.", + "Use in the format of '--define-var key=value' or '-D key=value' [nargs=0..1] [default: {}] [may be repeated]", + "-m, --mirror Mirror the board (useful for trying to show bottom layers)", + "--erd, --exclude-refdes Exclude the reference designator text", + "--ev, --exclude-value Exclude the value text", + "--ibt, --include-border-title Include the border and title block", + "--subtract-soldermask Subtract soldermask from silkscreen", + "--sp, --sketch-pads-on-fab-layers Draw pad outlines and their numbers on front and back fab layers", + "--hdnp, --hide-DNP-footprints-on-fab-layers Don't plot text & graphics of DNP footprints on fab layers", + "--sdnp, --sketch-DNP-footprints-on-fab-layers Plot graphics of DNP footprints in sketch mode on fab layers", + "--cdnp, --crossout-DNP-footprints-on-fab-layers Plot an 'X' over the courtyard of DNP footprints on fab layers, and strikeout their reference designators", + "-n, --negative Plot as negative (useful for directly etching from the export)", + "--black-and-white Black and white only", + '-t, --theme Color theme to use (will default to PCB Editor settings) [nargs=0..1] [default: ""]', + "--drill-shape-opt Set pad/via drill shape option (0 = no shape, 1 = small shape, 2 = actual shape) [nargs=0..1] [default: 2]", + "--mode-single Generates a single file with the output arg path acting as the complete directory and filename path. COMMON_LAYER_LIST does not function in this mode. Instead LAYER_LIST controls all layers plotted.", + "--mode-multi Generates one or more files with behavior similar to the KiCad GUI plotting. The given output path specifies a directory in which files may be output.", + "-C, --track-width-correction Track width correction [mm]. Used to compensate errors in track widths, pad and via sizes. [nargs=0..1] [default: 0]", + "-X, --x-scale-factor X scale adjust for exact scale. [nargs=0..1] [default: 1]", + "-Y, --y-scale-factor Y scale adjust for exact scale. [nargs=0..1] [default: 1]", + "-A, --force-a4 Force A4 paper size.", + "--scale Scale for the PCB, not for the border and title. Use 0 for autoscale [nargs=0..1] [default: 1]", + "--check-zones Check and refill zones if required", + "--variant The variant name(s) to output, can be used multiple times to specify multiple variants.", + "When specifying multiple variants, use ${VARIANT} in the output path to generate separate files for each variant.", + "When no --variant argument is provided the default variant is output. [nargs=0..1] [default: {}] [may be repeated]", + ], + ), + ], + subcommands=[], + ), + ParserL1.Command( + command="stats", + sections=[ + ParserL1.Section( + name="Usage", + lines=[ + "Usage: export stats [--help] [--output OUTPUT_FILE] [--format FORMAT] [--units UNITS] [--exclude-footprints-without-pads] [--subtract-holes-from-board] [--subtract-holes-from-copper] INPUT_FILE" + ], + ), + ParserL1.Section( + name="Generate a board statistics report", + lines=["Generate a board statistics report"], + ), + ParserL1.Section( + name="Positional arguments", + lines=[ + "Positional arguments:", + "INPUT_FILE Input file", + ], + ), + ParserL1.Section( + name="Optional arguments", + lines=[ + "Optional arguments:", + "-h, --help Shows help message and exits", + '-o, --output Output file [nargs=0..1] [default: ""]', + '--format Output file format, options: json, report [nargs=0..1] [default: "report"]', + '--units Report units; valid options: in, mm [nargs=0..1] [default: "mm"]', + "--exclude-footprints-without-pads Exclude footprints without pads", + "--subtract-holes-from-board Subtract holes from the board area", + "--subtract-holes-from-copper Subtract holes from copper areas", ], ), ], @@ -948,7 +1133,7 @@ ParserL1.Section( name="Usage", lines=[ - "Usage: step [--help] [--output OUTPUT_FILE] [--define-var KEY=VALUE] [--force] [--no-unspecified] [--no-dnp] [--grid-origin] [--drill-origin] [--subst-models] [--board-only] [--cut-vias-in-body] [--no-board-body] [--no-components] [--component-filter VAR] [--include-tracks] [--include-pads] [--include-zones] [--include-inner-copper] [--include-silkscreen] [--include-soldermask] [--fuse-shapes] [--fill-all-vias] [--min-distance MIN_DIST] [--net-filter VAR] [--no-optimize-step] [--user-origin VAR] INPUT_FILE" + "Usage: export step [--help] [--output OUTPUT_FILE] [--define-var KEY=VALUE]... [--force] [--no-unspecified] [--no-dnp] [--variant VAR]... [--grid-origin] [--drill-origin] [--subst-models] [--board-only] [--cut-vias-in-body] [--no-board-body] [--no-components] [--component-filter VAR] [--include-tracks] [--include-pads] [--include-zones] [--include-inner-copper] [--include-silkscreen] [--include-soldermask] [--fuse-shapes] [--fill-all-vias] [--no-extra-pad-thickness] [--min-distance MIN_DIST] [--net-filter VAR] [--no-optimize-step] [--user-origin VAR] INPUT_FILE" ], ), ParserL1.Section( @@ -958,40 +1143,44 @@ name="Positional arguments", lines=[ "Positional arguments:", - "INPUT_FILE Input file", + "INPUT_FILE Input file", ], ), ParserL1.Section( name="Optional arguments", lines=[ "Optional arguments:", - "-h, --help Shows help message and exits", - '-o, --output Output file [nargs=0..1] [default: ""]', - "-D, --define-var Overrides or adds project variables, can be used multiple times to declare multiple variables.", - "Use in the format of '--define-var key=value' or '-D key=value' [nargs=0..1] [default: {}]", - "-f, --force Overwrite output file", - "--no-unspecified Exclude 3D models for components with 'Unspecified' footprint type", - "--no-dnp Exclude 3D models for components with 'Do not populate' attribute", - "--grid-origin Use Grid Origin for output origin", - "--drill-origin Use Drill Origin for output origin", - "--subst-models Substitute STEP or IGS models with the same name in place of VRML models", - "--board-only Only generate a board with no components", - "--cut-vias-in-body Cut via holes in board body even if conductor layers are not exported.", - "--no-board-body Exclude board body", - "--no-components Exclude 3D models for components", - '--component-filter Only include component 3D models matching this list of reference designators (comma-separated, wildcards supported) [nargs=0..1] [default: ""]', - "--include-tracks Export tracks and vias", - "--include-pads Export pads", - "--include-zones Export zones", - "--include-inner-copper Export elements on inner copper layers", - "--include-silkscreen Export silkscreen graphics as a set of flat faces", - "--include-soldermask Export soldermask layers as a set of flat faces", - "--fuse-shapes Fuse overlapping geometry together", - "--fill-all-vias Don't cut via holes in conductor layers.", - '--min-distance Minimum distance between points to treat them as separate ones [nargs=0..1] [default: "0.01mm"]', - '--net-filter Only include copper items belonging to nets matching this wildcard [nargs=0..1] [default: ""]', - "--no-optimize-step Do not optimize STEP file (enables writing parametric curves)", - '--user-origin User-specified output origin ex. 1x1in, 1x1inch, 25.4x25.4mm (default unit mm) [nargs=0..1] [default: ""]', + "-h, --help Shows help message and exits", + '-o, --output Output file [nargs=0..1] [default: ""]', + "-D, --define-var Overrides or adds project variables, can be used multiple times to declare multiple variables.", + "Use in the format of '--define-var key=value' or '-D key=value' [nargs=0..1] [default: {}] [may be repeated]", + "-f, --force Overwrite output file", + "--no-unspecified Exclude 3D models for components with 'Unspecified' footprint type", + "--no-dnp Exclude 3D models for components with 'Do not populate' attribute", + "--variant The variant name(s) to output, can be used multiple times to specify multiple variants.", + "When specifying multiple variants, use ${VARIANT} in the output path to generate separate files for each variant.", + "When no --variant argument is provided the default variant is output. [nargs=0..1] [default: {}] [may be repeated]", + "--grid-origin Use Grid Origin for output origin", + "--drill-origin Use Drill Origin for output origin", + "--subst-models Substitute STEP or IGS models with the same name in place of VRML models", + "--board-only Only generate a board with no components", + "--cut-vias-in-body Cut via holes in board body even if conductor layers are not exported.", + "--no-board-body Exclude board body", + "--no-components Exclude 3D models for components", + '--component-filter Only include component 3D models matching this list of reference designators (comma-separated, wildcards supported) [nargs=0..1] [default: ""]', + "--include-tracks Export tracks and vias", + "--include-pads Export pads", + "--include-zones Export zones", + "--include-inner-copper Export elements on inner copper layers", + "--include-silkscreen Export silkscreen graphics as a set of flat faces", + "--include-soldermask Export soldermask layers as a set of flat faces", + "--fuse-shapes Fuse overlapping geometry together", + "--fill-all-vias Don't cut via holes in conductor layers.", + "--no-extra-pad-thickness Disable extra pad thickness (pads will have normal thickness)", + '--min-distance Minimum distance between points to treat them as separate ones [nargs=0..1] [default: "0.01mm"]', + '--net-filter Only include copper items belonging to nets matching this wildcard [nargs=0..1] [default: ""]', + "--no-optimize-step Do not optimize STEP file (enables writing parametric curves)", + '--user-origin User-specified output origin ex. 1x1in, 1x1inch, 25.4x25.4mm (default unit mm) [nargs=0..1] [default: ""]', ], ), ], @@ -1003,7 +1192,7 @@ ParserL1.Section( name="Usage", lines=[ - "Usage: stl [--help] [--output OUTPUT_FILE] [--define-var KEY=VALUE] [--force] [--no-unspecified] [--no-dnp] [--grid-origin] [--drill-origin] [--subst-models] [--board-only] [--cut-vias-in-body] [--no-board-body] [--no-components] [--component-filter VAR] [--include-tracks] [--include-pads] [--include-zones] [--include-inner-copper] [--include-silkscreen] [--include-soldermask] [--fuse-shapes] [--fill-all-vias] [--min-distance MIN_DIST] [--net-filter VAR] [--user-origin VAR] INPUT_FILE" + "Usage: export stl [--help] [--output OUTPUT_FILE] [--define-var KEY=VALUE]... [--force] [--no-unspecified] [--no-dnp] [--variant VAR]... [--grid-origin] [--drill-origin] [--subst-models] [--board-only] [--cut-vias-in-body] [--no-board-body] [--no-components] [--component-filter VAR] [--include-tracks] [--include-pads] [--include-zones] [--include-inner-copper] [--include-silkscreen] [--include-soldermask] [--fuse-shapes] [--fill-all-vias] [--no-extra-pad-thickness] [--min-distance MIN_DIST] [--net-filter VAR] [--user-origin VAR] INPUT_FILE" ], ), ParserL1.Section( @@ -1013,39 +1202,102 @@ name="Positional arguments", lines=[ "Positional arguments:", - "INPUT_FILE Input file", + "INPUT_FILE Input file", ], ), ParserL1.Section( name="Optional arguments", lines=[ "Optional arguments:", - "-h, --help Shows help message and exits", - '-o, --output Output file [nargs=0..1] [default: ""]', - "-D, --define-var Overrides or adds project variables, can be used multiple times to declare multiple variables.", - "Use in the format of '--define-var key=value' or '-D key=value' [nargs=0..1] [default: {}]", - "-f, --force Overwrite output file", - "--no-unspecified Exclude 3D models for components with 'Unspecified' footprint type", - "--no-dnp Exclude 3D models for components with 'Do not populate' attribute", - "--grid-origin Use Grid Origin for output origin", - "--drill-origin Use Drill Origin for output origin", - "--subst-models Substitute STEP or IGS models with the same name in place of VRML models", - "--board-only Only generate a board with no components", - "--cut-vias-in-body Cut via holes in board body even if conductor layers are not exported.", - "--no-board-body Exclude board body", - "--no-components Exclude 3D models for components", - '--component-filter Only include component 3D models matching this list of reference designators (comma-separated, wildcards supported) [nargs=0..1] [default: ""]', - "--include-tracks Export tracks and vias", - "--include-pads Export pads", - "--include-zones Export zones", - "--include-inner-copper Export elements on inner copper layers", - "--include-silkscreen Export silkscreen graphics as a set of flat faces", - "--include-soldermask Export soldermask layers as a set of flat faces", - "--fuse-shapes Fuse overlapping geometry together", - "--fill-all-vias Don't cut via holes in conductor layers.", - '--min-distance Minimum distance between points to treat them as separate ones [nargs=0..1] [default: "0.01mm"]', - '--net-filter Only include copper items belonging to nets matching this wildcard [nargs=0..1] [default: ""]', - '--user-origin User-specified output origin ex. 1x1in, 1x1inch, 25.4x25.4mm (default unit mm) [nargs=0..1] [default: ""]', + "-h, --help Shows help message and exits", + '-o, --output Output file [nargs=0..1] [default: ""]', + "-D, --define-var Overrides or adds project variables, can be used multiple times to declare multiple variables.", + "Use in the format of '--define-var key=value' or '-D key=value' [nargs=0..1] [default: {}] [may be repeated]", + "-f, --force Overwrite output file", + "--no-unspecified Exclude 3D models for components with 'Unspecified' footprint type", + "--no-dnp Exclude 3D models for components with 'Do not populate' attribute", + "--variant The variant name(s) to output, can be used multiple times to specify multiple variants.", + "When specifying multiple variants, use ${VARIANT} in the output path to generate separate files for each variant.", + "When no --variant argument is provided the default variant is output. [nargs=0..1] [default: {}] [may be repeated]", + "--grid-origin Use Grid Origin for output origin", + "--drill-origin Use Drill Origin for output origin", + "--subst-models Substitute STEP or IGS models with the same name in place of VRML models", + "--board-only Only generate a board with no components", + "--cut-vias-in-body Cut via holes in board body even if conductor layers are not exported.", + "--no-board-body Exclude board body", + "--no-components Exclude 3D models for components", + '--component-filter Only include component 3D models matching this list of reference designators (comma-separated, wildcards supported) [nargs=0..1] [default: ""]', + "--include-tracks Export tracks and vias", + "--include-pads Export pads", + "--include-zones Export zones", + "--include-inner-copper Export elements on inner copper layers", + "--include-silkscreen Export silkscreen graphics as a set of flat faces", + "--include-soldermask Export soldermask layers as a set of flat faces", + "--fuse-shapes Fuse overlapping geometry together", + "--fill-all-vias Don't cut via holes in conductor layers.", + "--no-extra-pad-thickness Disable extra pad thickness (pads will have normal thickness)", + '--min-distance Minimum distance between points to treat them as separate ones [nargs=0..1] [default: "0.01mm"]', + '--net-filter Only include copper items belonging to nets matching this wildcard [nargs=0..1] [default: ""]', + '--user-origin User-specified output origin ex. 1x1in, 1x1inch, 25.4x25.4mm (default unit mm) [nargs=0..1] [default: ""]', + ], + ), + ], + subcommands=[], + ), + ParserL1.Command( + command="stpz", + sections=[ + ParserL1.Section( + name="Usage", + lines=[ + "Usage: export stpz [--help] [--output OUTPUT_FILE] [--define-var KEY=VALUE]... [--force] [--no-unspecified] [--no-dnp] [--variant VAR]... [--grid-origin] [--drill-origin] [--subst-models] [--board-only] [--cut-vias-in-body] [--no-board-body] [--no-components] [--component-filter VAR] [--include-tracks] [--include-pads] [--include-zones] [--include-inner-copper] [--include-silkscreen] [--include-soldermask] [--fuse-shapes] [--fill-all-vias] [--no-extra-pad-thickness] [--min-distance MIN_DIST] [--net-filter VAR] [--no-optimize-step] [--user-origin VAR] INPUT_FILE" + ], + ), + ParserL1.Section( + name="Export STEPZ", lines=["Export STEPZ"] + ), + ParserL1.Section( + name="Positional arguments", + lines=[ + "Positional arguments:", + "INPUT_FILE Input file", + ], + ), + ParserL1.Section( + name="Optional arguments", + lines=[ + "Optional arguments:", + "-h, --help Shows help message and exits", + '-o, --output Output file [nargs=0..1] [default: ""]', + "-D, --define-var Overrides or adds project variables, can be used multiple times to declare multiple variables.", + "Use in the format of '--define-var key=value' or '-D key=value' [nargs=0..1] [default: {}] [may be repeated]", + "-f, --force Overwrite output file", + "--no-unspecified Exclude 3D models for components with 'Unspecified' footprint type", + "--no-dnp Exclude 3D models for components with 'Do not populate' attribute", + "--variant The variant name(s) to output, can be used multiple times to specify multiple variants.", + "When specifying multiple variants, use ${VARIANT} in the output path to generate separate files for each variant.", + "When no --variant argument is provided the default variant is output. [nargs=0..1] [default: {}] [may be repeated]", + "--grid-origin Use Grid Origin for output origin", + "--drill-origin Use Drill Origin for output origin", + "--subst-models Substitute STEP or IGS models with the same name in place of VRML models", + "--board-only Only generate a board with no components", + "--cut-vias-in-body Cut via holes in board body even if conductor layers are not exported.", + "--no-board-body Exclude board body", + "--no-components Exclude 3D models for components", + '--component-filter Only include component 3D models matching this list of reference designators (comma-separated, wildcards supported) [nargs=0..1] [default: ""]', + "--include-tracks Export tracks and vias", + "--include-pads Export pads", + "--include-zones Export zones", + "--include-inner-copper Export elements on inner copper layers", + "--include-silkscreen Export silkscreen graphics as a set of flat faces", + "--include-soldermask Export soldermask layers as a set of flat faces", + "--fuse-shapes Fuse overlapping geometry together", + "--fill-all-vias Don't cut via holes in conductor layers.", + "--no-extra-pad-thickness Disable extra pad thickness (pads will have normal thickness)", + '--min-distance Minimum distance between points to treat them as separate ones [nargs=0..1] [default: "0.01mm"]', + '--net-filter Only include copper items belonging to nets matching this wildcard [nargs=0..1] [default: ""]', + "--no-optimize-step Do not optimize STEP file (enables writing parametric curves)", + '--user-origin User-specified output origin ex. 1x1in, 1x1inch, 25.4x25.4mm (default unit mm) [nargs=0..1] [default: ""]', ], ), ], @@ -1057,7 +1309,7 @@ ParserL1.Section( name="Usage", lines=[ - "Usage: svg [--help] [--output OUTPUT_FILE] [--layers LAYER_LIST] [--drawing-sheet SHEET_PATH] [--define-var KEY=VALUE] [--subtract-soldermask] [--mirror] [--theme THEME_NAME] [--negative] [--black-and-white] [--sketch-pads-on-fab-layers] [--hide-DNP-footprints-on-fab-layers] [--sketch-DNP-footprints-on-fab-layers] [--crossout-DNP-footprints-on-fab-layers] [--page-size-mode MODE] [--fit-page-to-board] [--exclude-drawing-sheet] [--drill-shape-opt SHAPE_OPTION] [--common-layers COMMON_LAYER_LIST] [--mode-single] [--mode-multi] [--plot-invisible-text] INPUT_FILE" + "Usage: export svg [--help] [--output OUTPUT_DIR] [--layers LAYER_LIST] [--common-layers COMMON_LAYER_LIST] [--drawing-sheet SHEET_PATH] [--define-var KEY=VALUE]... [--subtract-soldermask] [--mirror] [--theme THEME_NAME] [--negative] [--black-and-white] [--sketch-pads-on-fab-layers] [--hide-DNP-footprints-on-fab-layers] [--sketch-DNP-footprints-on-fab-layers] [--crossout-DNP-footprints-on-fab-layers] [--page-size-mode MODE] [--fit-page-to-board] [--exclude-drawing-sheet] [--drill-shape-opt SHAPE_OPTION] [--mode-single] [--mode-multi] [--scale SCALE] [--check-zones] [--variant VAR]... INPUT_FILE" ], ), ParserL1.Section( @@ -1078,11 +1330,12 @@ lines=[ "Optional arguments:", "-h, --help Shows help message and exits", - '-o, --output Output file [nargs=0..1] [default: ""]', + '-o, --output Output directory [nargs=0..1] [default: ""]', '-l, --layers Comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""]', + '--cl, --common-layers Layers to include on each plot, comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""]', '--drawing-sheet Path to drawing sheet, this overrides any existing project defined sheet when used [nargs=0..1] [default: ""]', "-D, --define-var Overrides or adds project variables, can be used multiple times to declare multiple variables.", - "Use in the format of '--define-var key=value' or '-D key=value' [nargs=0..1] [default: {}]", + "Use in the format of '--define-var key=value' or '-D key=value' [nargs=0..1] [default: {}] [may be repeated]", "--subtract-soldermask Subtract soldermask from silkscreen", "-m, --mirror Mirror the board (useful for trying to show bottom layers)", '-t, --theme Color theme to use (will default to PCB editor settings) [nargs=0..1] [default: ""]', @@ -1096,10 +1349,71 @@ "--fit-page-to-board Fit the page to the board", "--exclude-drawing-sheet No drawing sheet", "--drill-shape-opt Set pad/via drill shape option (0 = no shape, 1 = small shape, 2 = actual shape) [nargs=0..1] [default: 2]", - '--cl, --common-layers Layers to include on each plot, comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""]', "--mode-single Generates a single file with the output arg path acting as the complete directory and filename path. COMMON_LAYER_LIST does not function in this mode. Instead LAYER_LIST controls all layers plotted.", "--mode-multi Generates one or more files with behavior similar to the KiCad GUI plotting. The given output path specifies a directory in which files may be output.", - "--plot-invisible-text Deprecated. Has no effect.", + "--scale Scale for the PCB, not for the border and title. Use 0 for autoscale [nargs=0..1] [default: 1]", + "--check-zones Check and refill zones if required", + "--variant The variant name(s) to output, can be used multiple times to specify multiple variants.", + "When specifying multiple variants, use ${VARIANT} in the output path to generate separate files for each variant.", + "When no --variant argument is provided the default variant is output. [nargs=0..1] [default: {}] [may be repeated]", + ], + ), + ], + subcommands=[], + ), + ParserL1.Command( + command="u3d", + sections=[ + ParserL1.Section( + name="Usage", + lines=[ + "Usage: export u3d [--help] [--output OUTPUT_FILE] [--define-var KEY=VALUE]... [--force] [--no-unspecified] [--no-dnp] [--variant VAR]... [--grid-origin] [--drill-origin] [--subst-models] [--board-only] [--cut-vias-in-body] [--no-board-body] [--no-components] [--component-filter VAR] [--include-tracks] [--include-pads] [--include-zones] [--include-inner-copper] [--include-silkscreen] [--include-soldermask] [--fuse-shapes] [--fill-all-vias] [--no-extra-pad-thickness] [--min-distance MIN_DIST] [--net-filter VAR] [--user-origin VAR] INPUT_FILE" + ], + ), + ParserL1.Section( + name="Export U3D", lines=["Export U3D"] + ), + ParserL1.Section( + name="Positional arguments", + lines=[ + "Positional arguments:", + "INPUT_FILE Input file", + ], + ), + ParserL1.Section( + name="Optional arguments", + lines=[ + "Optional arguments:", + "-h, --help Shows help message and exits", + '-o, --output Output file [nargs=0..1] [default: ""]', + "-D, --define-var Overrides or adds project variables, can be used multiple times to declare multiple variables.", + "Use in the format of '--define-var key=value' or '-D key=value' [nargs=0..1] [default: {}] [may be repeated]", + "-f, --force Overwrite output file", + "--no-unspecified Exclude 3D models for components with 'Unspecified' footprint type", + "--no-dnp Exclude 3D models for components with 'Do not populate' attribute", + "--variant The variant name(s) to output, can be used multiple times to specify multiple variants.", + "When specifying multiple variants, use ${VARIANT} in the output path to generate separate files for each variant.", + "When no --variant argument is provided the default variant is output. [nargs=0..1] [default: {}] [may be repeated]", + "--grid-origin Use Grid Origin for output origin", + "--drill-origin Use Drill Origin for output origin", + "--subst-models Substitute STEP or IGS models with the same name in place of VRML models", + "--board-only Only generate a board with no components", + "--cut-vias-in-body Cut via holes in board body even if conductor layers are not exported.", + "--no-board-body Exclude board body", + "--no-components Exclude 3D models for components", + '--component-filter Only include component 3D models matching this list of reference designators (comma-separated, wildcards supported) [nargs=0..1] [default: ""]', + "--include-tracks Export tracks and vias", + "--include-pads Export pads", + "--include-zones Export zones", + "--include-inner-copper Export elements on inner copper layers", + "--include-silkscreen Export silkscreen graphics as a set of flat faces", + "--include-soldermask Export soldermask layers as a set of flat faces", + "--fuse-shapes Fuse overlapping geometry together", + "--fill-all-vias Don't cut via holes in conductor layers.", + "--no-extra-pad-thickness Disable extra pad thickness (pads will have normal thickness)", + '--min-distance Minimum distance between points to treat them as separate ones [nargs=0..1] [default: "0.01mm"]', + '--net-filter Only include copper items belonging to nets matching this wildcard [nargs=0..1] [default: ""]', + '--user-origin User-specified output origin ex. 1x1in, 1x1inch, 25.4x25.4mm (default unit mm) [nargs=0..1] [default: ""]', ], ), ], @@ -1111,7 +1425,7 @@ ParserL1.Section( name="Usage", lines=[ - "Usage: vrml [--help] [--output OUTPUT_FILE] [--define-var KEY=VALUE] [--force] [--no-unspecified] [--no-dnp] [--user-origin VAR] [--units VAR] [--models-dir VAR] [--models-relative] INPUT_FILE" + "Usage: export vrml [--help] [--output OUTPUT_FILE] [--define-var KEY=VALUE]... [--force] [--no-unspecified] [--no-dnp] [--variant VAR]... [--user-origin VAR] [--units VAR] [--models-dir VAR] [--models-relative] INPUT_FILE" ], ), ParserL1.Section( @@ -1131,10 +1445,13 @@ "-h, --help Shows help message and exits", '-o, --output Output file [nargs=0..1] [default: ""]', "-D, --define-var Overrides or adds project variables, can be used multiple times to declare multiple variables.", - "Use in the format of '--define-var key=value' or '-D key=value' [nargs=0..1] [default: {}]", + "Use in the format of '--define-var key=value' or '-D key=value' [nargs=0..1] [default: {}] [may be repeated]", "-f, --force Overwrite output file", "--no-unspecified Exclude 3D models for components with 'Unspecified' footprint type", "--no-dnp Exclude 3D models for components with 'Do not populate' attribute", + "--variant The variant name(s) to output, can be used multiple times to specify multiple variants.", + "When specifying multiple variants, use ${VARIANT} in the output path to generate separate files for each variant.", + "When no --variant argument is provided the default variant is output. [nargs=0..1] [default: {}] [may be repeated]", '--user-origin User-specified output origin ex. 1x1in, 1x1inch, 25.4x25.4mm (default unit mm) [nargs=0..1] [default: ""]', '--units Output units; valid options: mm, m, in, tenths [nargs=0..1] [default: "in"]', '--models-dir Name of folder to create and store 3d models in, if not specified or empty, the models will be embedded in main exported VRML file [nargs=0..1] [default: ""]', @@ -1150,7 +1467,7 @@ ParserL1.Section( name="Usage", lines=[ - "Usage: xao [--help] [--output OUTPUT_FILE] [--define-var KEY=VALUE] [--force] [--no-unspecified] [--no-dnp] [--grid-origin] [--drill-origin] [--subst-models] [--board-only] [--cut-vias-in-body] [--no-board-body] [--no-components] [--component-filter VAR] [--include-tracks] [--include-pads] [--include-zones] [--include-inner-copper] [--include-silkscreen] [--include-soldermask] [--fuse-shapes] [--fill-all-vias] [--min-distance MIN_DIST] [--net-filter VAR] [--user-origin VAR] INPUT_FILE" + "Usage: export xao [--help] [--output OUTPUT_FILE] [--define-var KEY=VALUE]... [--force] [--no-unspecified] [--no-dnp] [--variant VAR]... [--grid-origin] [--drill-origin] [--subst-models] [--board-only] [--cut-vias-in-body] [--no-board-body] [--no-components] [--component-filter VAR] [--include-tracks] [--include-pads] [--include-zones] [--include-inner-copper] [--include-silkscreen] [--include-soldermask] [--fuse-shapes] [--fill-all-vias] [--no-extra-pad-thickness] [--min-distance MIN_DIST] [--net-filter VAR] [--user-origin VAR] INPUT_FILE" ], ), ParserL1.Section( @@ -1160,39 +1477,43 @@ name="Positional arguments", lines=[ "Positional arguments:", - "INPUT_FILE Input file", + "INPUT_FILE Input file", ], ), ParserL1.Section( name="Optional arguments", lines=[ "Optional arguments:", - "-h, --help Shows help message and exits", - '-o, --output Output file [nargs=0..1] [default: ""]', - "-D, --define-var Overrides or adds project variables, can be used multiple times to declare multiple variables.", - "Use in the format of '--define-var key=value' or '-D key=value' [nargs=0..1] [default: {}]", - "-f, --force Overwrite output file", - "--no-unspecified Exclude 3D models for components with 'Unspecified' footprint type", - "--no-dnp Exclude 3D models for components with 'Do not populate' attribute", - "--grid-origin Use Grid Origin for output origin", - "--drill-origin Use Drill Origin for output origin", - "--subst-models Substitute STEP or IGS models with the same name in place of VRML models", - "--board-only Only generate a board with no components", - "--cut-vias-in-body Cut via holes in board body even if conductor layers are not exported.", - "--no-board-body Exclude board body", - "--no-components Exclude 3D models for components", - '--component-filter Only include component 3D models matching this list of reference designators (comma-separated, wildcards supported) [nargs=0..1] [default: ""]', - "--include-tracks Export tracks and vias", - "--include-pads Export pads", - "--include-zones Export zones", - "--include-inner-copper Export elements on inner copper layers", - "--include-silkscreen Export silkscreen graphics as a set of flat faces", - "--include-soldermask Export soldermask layers as a set of flat faces", - "--fuse-shapes Fuse overlapping geometry together", - "--fill-all-vias Don't cut via holes in conductor layers.", - '--min-distance Minimum distance between points to treat them as separate ones [nargs=0..1] [default: "0.01mm"]', - '--net-filter Only include copper items belonging to nets matching this wildcard [nargs=0..1] [default: ""]', - '--user-origin User-specified output origin ex. 1x1in, 1x1inch, 25.4x25.4mm (default unit mm) [nargs=0..1] [default: ""]', + "-h, --help Shows help message and exits", + '-o, --output Output file [nargs=0..1] [default: ""]', + "-D, --define-var Overrides or adds project variables, can be used multiple times to declare multiple variables.", + "Use in the format of '--define-var key=value' or '-D key=value' [nargs=0..1] [default: {}] [may be repeated]", + "-f, --force Overwrite output file", + "--no-unspecified Exclude 3D models for components with 'Unspecified' footprint type", + "--no-dnp Exclude 3D models for components with 'Do not populate' attribute", + "--variant The variant name(s) to output, can be used multiple times to specify multiple variants.", + "When specifying multiple variants, use ${VARIANT} in the output path to generate separate files for each variant.", + "When no --variant argument is provided the default variant is output. [nargs=0..1] [default: {}] [may be repeated]", + "--grid-origin Use Grid Origin for output origin", + "--drill-origin Use Drill Origin for output origin", + "--subst-models Substitute STEP or IGS models with the same name in place of VRML models", + "--board-only Only generate a board with no components", + "--cut-vias-in-body Cut via holes in board body even if conductor layers are not exported.", + "--no-board-body Exclude board body", + "--no-components Exclude 3D models for components", + '--component-filter Only include component 3D models matching this list of reference designators (comma-separated, wildcards supported) [nargs=0..1] [default: ""]', + "--include-tracks Export tracks and vias", + "--include-pads Export pads", + "--include-zones Export zones", + "--include-inner-copper Export elements on inner copper layers", + "--include-silkscreen Export silkscreen graphics as a set of flat faces", + "--include-soldermask Export soldermask layers as a set of flat faces", + "--fuse-shapes Fuse overlapping geometry together", + "--fill-all-vias Don't cut via holes in conductor layers.", + "--no-extra-pad-thickness Disable extra pad thickness (pads will have normal thickness)", + '--min-distance Minimum distance between points to treat them as separate ones [nargs=0..1] [default: "0.01mm"]', + '--net-filter Only include copper items belonging to nets matching this wildcard [nargs=0..1] [default: ""]', + '--user-origin User-specified output origin ex. 1x1in, 1x1inch, 25.4x25.4mm (default unit mm) [nargs=0..1] [default: ""]', ], ), ], @@ -1200,13 +1521,47 @@ ), ], ), + ParserL1.Command( + command="import", + sections=[ + ParserL1.Section( + name="Usage", + lines=[ + "Usage: pcb import [--help] [--output OUTPUT_FILE] [--format FORMAT] [--report-format FORMAT] [--report-file FILE] INPUT_FILE" + ], + ), + ParserL1.Section( + name="Import a non-KiCad PCB file to KiCad format", + lines=["Import a non-KiCad PCB file to KiCad format"], + ), + ParserL1.Section( + name="Positional arguments", + lines=[ + "Positional arguments:", + "INPUT_FILE Input file", + ], + ), + ParserL1.Section( + name="Optional arguments", + lines=[ + "Optional arguments:", + "-h, --help Shows help message and exits", + '-o, --output Output file [nargs=0..1] [default: ""]', + '--format Input format hint: auto, pads, altium, eagle, cadstar, fabmaster, pcad, solidworks (default: auto) [nargs=0..1] [default: "auto"]', + '--report-format Import report format: none, json, text (default: none) [nargs=0..1] [default: "none"]', + '--report-file File path for import report (default: stdout) [nargs=0..1] [default: ""]', + ], + ), + ], + subcommands=[], + ), ParserL1.Command( command="render", sections=[ ParserL1.Section( name="Usage", lines=[ - "Usage: render [--help] [--output OUTPUT_FILE] [--define-var KEY=VALUE] [--width WIDTH] [--height HEIGHT] [--side SIDE] [--background BG] [--quality QUALITY] [--preset PRESET] [--floor] [--perspective] [--zoom ZOOM] [--pan VECTOR] [--pivot PIVOT] [--rotate ANGLES] [--light-top COLOR] [--light-bottom COLOR] [--light-side COLOR] [--light-camera COLOR] [--light-side-elevation ANGLE] INPUT_FILE" + "Usage: pcb render [--help] [--output OUTPUT_FILE] [--define-var KEY=VALUE]... [--width WIDTH] [--height HEIGHT] [--side SIDE] [--background BG] [--quality QUALITY] [--preset PRESET] [--use-board-stackup-colors VAR] [--floor] [--perspective] [--zoom ZOOM] [--pan VECTOR] [--pivot PIVOT] [--rotate ANGLES] [--light-top COLOR] [--light-bottom COLOR] [--light-side COLOR] [--light-camera COLOR] [--light-side-elevation ANGLE] INPUT_FILE" ], ), ParserL1.Section( @@ -1217,34 +1572,61 @@ name="Positional arguments", lines=[ "Positional arguments:", - "INPUT_FILE Input file", + "INPUT_FILE Input file", ], ), ParserL1.Section( name="Optional arguments", lines=[ "Optional arguments:", - "-h, --help Shows help message and exits", - '-o, --output Output file [nargs=0..1] [default: ""]', - "-D, --define-var Overrides or adds project variables, can be used multiple times to declare multiple variables.", - "Use in the format of '--define-var key=value' or '-D key=value' [nargs=0..1] [default: {}]", - "-w, --width Image width [nargs=0..1] [default: 1600]", - "-h, --height Image height [nargs=0..1] [default: 900]", - '--side Render from side. Options: top, bottom, left, right, front, back [nargs=0..1] [default: "top"]', - '--background Image background. Options: default, transparent, opaque. Default: transparent for PNG, opaque for JPEG [nargs=0..1] [default: ""]', - '--quality Render quality. Options: basic, high, user [nargs=0..1] [default: "basic"]', - '--preset Color preset. Options: follow_pcb_editor, follow_plot_settings, legacy_preset_flag, ... [nargs=0..1] [default: "follow_plot_settings"]', - "--floor Enables floor, shadows and post-processing, even if disabled in quality preset", - "--perspective Use perspective projection instead of orthogonal", - "--zoom Camera zoom [nargs=0..1] [default: 1]", - "--pan Pan camera, format 'X,Y,Z' e.g.: '3,0,0' [nargs=0..1] [default: \"\"]", - "--pivot Set pivot point relative to the board center in centimeters, format 'X,Y,Z' e.g.: '-10,2,0' [nargs=0..1] [default: \"\"]", - "--rotate Rotate board, format 'X,Y,Z' e.g.: '-45,0,45' for isometric view [nargs=0..1] [default: \"\"]", - "--light-top Top light intensity, format 'R,G,B' or a single number, range: 0-1 [nargs=0..1] [default: \"\"]", - "--light-bottom Bottom light intensity, format 'R,G,B' or a single number, range: 0-1 [nargs=0..1] [default: \"\"]", - "--light-side Side lights intensity, format 'R,G,B' or a single number, range: 0-1 [nargs=0..1] [default: \"\"]", - "--light-camera Camera light intensity, format 'R,G,B' or a single number, range: 0-1 [nargs=0..1] [default: \"\"]", - "--light-side-elevation Side lights elevation angle in degrees, range: 0-90 [nargs=0..1] [default: 60]", + "-h, --help Shows help message and exits", + '-o, --output Output file [nargs=0..1] [default: ""]', + "-D, --define-var Overrides or adds project variables, can be used multiple times to declare multiple variables.", + "Use in the format of '--define-var key=value' or '-D key=value' [nargs=0..1] [default: {}] [may be repeated]", + "-w, --width Image width [nargs=0..1] [default: 1600]", + "-h, --height Image height [nargs=0..1] [default: 900]", + '--side Render from side. Options: top, bottom, left, right, front, back [nargs=0..1] [default: "top"]', + '--background Image background. Options: default, transparent, opaque. Default: transparent for PNG, opaque for JPEG [nargs=0..1] [default: ""]', + '--quality Render quality. Options: basic, high, user, job_settings [nargs=0..1] [default: "basic"]', + '--preset Appearance preset. Options: follow_pcb_editor, follow_plot_settings, or user-defined preset name [nargs=0..1] [default: "follow_plot_settings"]', + "--use-board-stackup-colors Colors defined in board stackup override those in preset [nargs=0..1] [default: true]", + "--floor Enables floor, shadows and post-processing, even if disabled in quality setting", + "--perspective Use perspective projection instead of orthogonal", + "--zoom Camera zoom [nargs=0..1] [default: 1]", + "--pan Pan camera, format 'X,Y,Z' e.g.: '3,0,0' [nargs=0..1] [default: \"\"]", + "--pivot Set pivot point relative to the board center in centimeters, format 'X,Y,Z' e.g.: '-10,2,0' [nargs=0..1] [default: \"\"]", + "--rotate Rotate board, format 'X,Y,Z' e.g.: '-45,0,45' for isometric view [nargs=0..1] [default: \"\"]", + "--light-top Top light intensity, format 'R,G,B' or a single number, range: 0-1 [nargs=0..1] [default: \"\"]", + "--light-bottom Bottom light intensity, format 'R,G,B' or a single number, range: 0-1 [nargs=0..1] [default: \"\"]", + "--light-side Side lights intensity, format 'R,G,B' or a single number, range: 0-1 [nargs=0..1] [default: \"\"]", + "--light-camera Camera light intensity, format 'R,G,B' or a single number, range: 0-1 [nargs=0..1] [default: \"\"]", + "--light-side-elevation Side lights elevation angle in degrees, range: 0-90 [nargs=0..1] [default: 60]", + ], + ), + ], + subcommands=[], + ), + ParserL1.Command( + command="upgrade", + sections=[ + ParserL1.Section( + name="Usage", + lines=["Usage: pcb upgrade [--help] [--force] INPUT_FILE"], + ), + ParserL1.Section( + name="Upgrade the board file's format to the latest one", + lines=["Upgrade the board file's format to the latest one"], + ), + ParserL1.Section( + name="Positional arguments", + lines=["Positional arguments:", "INPUT_FILE Input file"], + ), + ParserL1.Section( + name="Optional arguments", + lines=[ + "Optional arguments:", + "-h, --help Shows help message and exits", + "--force Forces the board file to be resaved regardless of versioning", ], ), ], @@ -1256,7 +1638,8 @@ command="sch", sections=[ ParserL1.Section( - name="Usage", lines=["Usage: sch [--help] {erc,export}"] + name="Usage", + lines=["Usage: kicad-cli sch [--help] {erc,export,upgrade}"], ), ParserL1.Section(name="Schematics", lines=["Schematics"]), ParserL1.Section( @@ -1272,6 +1655,7 @@ "Subcommands:", "erc Runs the Electrical Rules Check (ERC) on the schematic and creates a report", "export Export utilities (netlist, pdf, bom, etc)", + "upgrade Upgrade the schematic file's format to the latest one", ], ), ], @@ -1282,7 +1666,7 @@ ParserL1.Section( name="Usage", lines=[ - "Usage: erc [--help] [--output OUTPUT_FILE] [--define-var KEY=VALUE] [--format VAR] [--units VAR] [--severity-all] [--severity-error] [--severity-warning] [--severity-exclusions] [--exit-code-violations] INPUT_FILE" + "Usage: sch erc [--help] [--output OUTPUT_FILE] [--define-var KEY=VALUE]... [--format VAR] [--units VAR] [--severity-all] [--severity-error] [--severity-warning] [--severity-exclusions] [--exit-code-violations] INPUT_FILE" ], ), ParserL1.Section( @@ -1305,7 +1689,7 @@ "-h, --help Shows help message and exits", '-o, --output Output file [nargs=0..1] [default: ""]', "-D, --define-var Overrides or adds project variables, can be used multiple times to declare multiple variables.", - "Use in the format of '--define-var key=value' or '-D key=value' [nargs=0..1] [default: {}]", + "Use in the format of '--define-var key=value' or '-D key=value' [nargs=0..1] [default: {}] [may be repeated]", '--format Output file format, options: json, report [nargs=0..1] [default: "report"]', '--units Report units; valid options: in, mm, mils [nargs=0..1] [default: "mm"]', "--severity-all Report all ERC violations, this is equivalent to including all the other severity arguments", @@ -1324,7 +1708,7 @@ ParserL1.Section( name="Usage", lines=[ - "Usage: export [--help] {bom,dxf,hpgl,netlist,pdf,ps,python-bom,svg}" + "Usage: sch export [--help] {bom,dxf,hpgl,netlist,pdf,ps,python-bom,svg}" ], ), ParserL1.Section( @@ -1360,7 +1744,7 @@ ParserL1.Section( name="Usage", lines=[ - "Usage: bom [--help] [--output OUTPUT_FILE] [--preset PRESET] [--format-preset FMT_PRESET] [--fields FIELDS] [--labels LABELS] [--group-by GROUP_BY] [--sort-field SORT_BY] [--sort-asc] [--filter FILTER] [--exclude-dnp] [--include-excluded-from-bom] [--field-delimiter FIELD_DELIM] [--string-delimiter STR_DELIM] [--ref-delimiter REF_DELIM] [--ref-range-delimiter REF_RANGE_DELIM] [--keep-tabs] [--keep-line-breaks] INPUT_FILE" + "Usage: export bom [--help] [--output OUTPUT_FILE] [--variant VAR]... [--preset PRESET] [--format-preset FMT_PRESET] [--fields FIELDS] [--labels LABELS] [--group-by GROUP_BY] [--sort-field SORT_BY] [--sort-asc VAR] [--filter FILTER] [--exclude-dnp] [--include-excluded-from-bom] [--field-delimiter FIELD_DELIM] [--string-delimiter STR_DELIM] [--ref-delimiter REF_DELIM] [--ref-range-delimiter REF_RANGE_DELIM] [--keep-tabs] [--keep-line-breaks] INPUT_FILE" ], ), ParserL1.Section( @@ -1380,16 +1764,19 @@ "Optional arguments:", "-h, --help Shows help message and exits", '-o, --output Output file [nargs=0..1] [default: ""]', + "--variant The variant name(s) to output, can be used multiple times to specify multiple variants.", + "When specifying multiple variants, use ${VARIANT} in the output path to generate separate files for each variant.", + "When no --variant argument is provided the default variant is output. [nargs=0..1] [default: {}] [may be repeated]", '--preset Use a named BOM preset setting from the schematic, e.g. "Grouped By Value". [nargs=0..1] [default: ""]', '--format-preset Use a named BOM format preset setting from the schematic, e.g. CSV. [nargs=0..1] [default: ""]', - '--fields An ordered list of fields to export. See documentation for special substitutions. [nargs=0..1] [default: "Reference,Value,Footprint,${QUANTITY},${DNP}"]', + '--fields An ordered list of fields to export. Generated fields such as QUANTITY, ITEM_NUMBER, DNP, EXCLUDE_FROM_BOM, EXCLUDE_FROM_BOARD, and EXCLUDE_FROM_SIM can be specified with or without ${} delimiters. [nargs=0..1] [default: "Reference,Value,Footprint,QUANTITY,DNP"]', '--labels An ordered list of labels to apply the exported fields. [nargs=0..1] [default: "Refs,Value,Footprint,Qty,DNP"]', '--group-by Fields to group references by when field values match. [nargs=0..1] [default: ""]', '--sort-field Field name to sort by. [nargs=0..1] [default: "Reference"]', - "--sort-asc Sort ascending (true) or descending (false).", + "--sort-asc Sort ascending (true) or descending (false). [nargs=0..1] [default: true]", '--filter Filter string to remove output lines. [nargs=0..1] [default: ""]', "--exclude-dnp Exclude symbols marked Do-Not-Populate.", - "--include-excluded-from-bom Include symbols marked 'Exclude from BOM'.", + "--include-excluded-from-bom Deprecated. Has no effect.", '--field-delimiter Separator between output fields/columns. [nargs=0..1] [default: ","]', '--string-delimiter Character to surround fields with. [nargs=0..1] [default: """]', '--ref-delimiter Character to place between individual references. [nargs=0..1] [default: ","]', @@ -1407,7 +1794,7 @@ ParserL1.Section( name="Usage", lines=[ - "Usage: dxf [--help] [--output OUTPUT_DIR] [--drawing-sheet SHEET_PATH] [--define-var KEY=VALUE] [--theme THEME_NAME] [--black-and-white] [--exclude-drawing-sheet] [--default-font VAR] [--pages PAGE_LIST] INPUT_FILE" + "Usage: export dxf [--help] [--output OUTPUT_DIR] [--drawing-sheet SHEET_PATH] [--define-var KEY=VALUE]... [--variant VAR]... [--theme THEME_NAME] [--black-and-white] [--exclude-drawing-sheet] [--default-font VAR] [--draw-hop-over] [--pages PAGE_LIST] INPUT_FILE" ], ), ParserL1.Section( @@ -1428,11 +1815,15 @@ '-o, --output Output directory [nargs=0..1] [default: ""]', '--drawing-sheet Path to drawing sheet, this overrides any existing project defined sheet when used [nargs=0..1] [default: ""]', "-D, --define-var Overrides or adds project variables, can be used multiple times to declare multiple variables.", - "Use in the format of '--define-var key=value' or '-D key=value' [nargs=0..1] [default: {}]", + "Use in the format of '--define-var key=value' or '-D key=value' [nargs=0..1] [default: {}] [may be repeated]", + "--variant The variant name(s) to output, can be used multiple times to specify multiple variants.", + "When specifying multiple variants, use ${VARIANT} in the output path to generate separate files for each variant.", + "When no --variant argument is provided the default variant is output. [nargs=0..1] [default: {}] [may be repeated]", '-t, --theme Color theme to use (will default to schematic settings) [nargs=0..1] [default: ""]', "-b, --black-and-white Black and white only", "-e, --exclude-drawing-sheet No drawing sheet", - '--default-font Default font name [nargs=0..1] [default: "KiCad Font"]', + '--default-font Default font name [nargs=0..1] [default: ""]', + "--draw-hop-over Draw hop over at wire crossings", '--pages List of page numbers separated by comma to print, blank or unspecified is equivalent to all pages [nargs=0..1] [default: ""]', ], ), @@ -1445,7 +1836,7 @@ ParserL1.Section( name="Usage", lines=[ - "Usage: hpgl [--help] [--output OUTPUT_DIR] [--drawing-sheet SHEET_PATH] [--define-var KEY=VALUE] [--exclude-drawing-sheet] [--default-font VAR] [--pages PAGE_LIST] [--pen-size PEN_SIZE] [--origin ORIGIN] INPUT_FILE" + "Usage: export hpgl [--help] [--output OUTPUT_DIR] [--drawing-sheet SHEET_PATH] [--define-var KEY=VALUE]... [--variant VAR]... [--theme THEME_NAME] [--black-and-white] [--exclude-drawing-sheet] [--default-font VAR] [--draw-hop-over] [--pages PAGE_LIST] [--pen-size PEN_SIZE] [--origin ORIGIN] INPUT_FILE" ], ), ParserL1.Section( @@ -1466,12 +1857,18 @@ '-o, --output Output directory [nargs=0..1] [default: ""]', '--drawing-sheet Path to drawing sheet, this overrides any existing project defined sheet when used [nargs=0..1] [default: ""]', "-D, --define-var Overrides or adds project variables, can be used multiple times to declare multiple variables.", - "Use in the format of '--define-var key=value' or '-D key=value' [nargs=0..1] [default: {}]", + "Use in the format of '--define-var key=value' or '-D key=value' [nargs=0..1] [default: {}] [may be repeated]", + "--variant The variant name(s) to output, can be used multiple times to specify multiple variants.", + "When specifying multiple variants, use ${VARIANT} in the output path to generate separate files for each variant.", + "When no --variant argument is provided the default variant is output. [nargs=0..1] [default: {}] [may be repeated]", + '-t, --theme Color theme to use (will default to schematic settings) [nargs=0..1] [default: ""]', + "-b, --black-and-white Black and white only", "-e, --exclude-drawing-sheet No drawing sheet", - '--default-font Default font name [nargs=0..1] [default: "KiCad Font"]', + '--default-font Default font name [nargs=0..1] [default: ""]', + "--draw-hop-over Draw hop over at wire crossings", '--pages List of page numbers separated by comma to print, blank or unspecified is equivalent to all pages [nargs=0..1] [default: ""]', - "-p, --pen-size Pen size [mm] [nargs=0..1] [default: 0.5]", - "-r, --origin Origin and scale: 0 bottom left, 1 centered, 2 page fit, 3 content fit [nargs=0..1] [default: 1]", + "-p, --pen-size Deprecated. Has no effect. [nargs=0..1] [default: 0.5]", + "-r, --origin Deprecated. Has no effect. [nargs=0..1] [default: 1]", ], ), ], @@ -1483,7 +1880,7 @@ ParserL1.Section( name="Usage", lines=[ - "Usage: netlist [--help] [--output OUTPUT_FILE] [--format FORMAT] INPUT_FILE" + "Usage: export netlist [--help] [--output OUTPUT_FILE] [--variant VAR]... [--format FORMAT] INPUT_FILE" ], ), ParserL1.Section( @@ -1502,6 +1899,9 @@ "Optional arguments:", "-h, --help Shows help message and exits", '-o, --output Output file [nargs=0..1] [default: ""]', + "--variant The variant name(s) to output, can be used multiple times to specify multiple variants.", + "When specifying multiple variants, use ${VARIANT} in the output path to generate separate files for each variant.", + "When no --variant argument is provided the default variant is output. [nargs=0..1] [default: {}] [may be repeated]", '--format Netlist output format, valid options: kicadsexpr, kicadxml, cadstar, orcadpcb2, spice, spicemodel, pads, allegro [nargs=0..1] [default: "kicadsexpr"]', ], ), @@ -1514,7 +1914,7 @@ ParserL1.Section( name="Usage", lines=[ - "Usage: pdf [--help] [--output OUTPUT_FILE] [--drawing-sheet SHEET_PATH] [--define-var KEY=VALUE] [--theme THEME_NAME] [--black-and-white] [--exclude-drawing-sheet] [--default-font VAR] [--exclude-pdf-property-popups] [--exclude-pdf-hierarchical-links] [--exclude-pdf-metadata] [--no-background-color] [--pages PAGE_LIST] INPUT_FILE" + "Usage: export pdf [--help] [--output OUTPUT_FILE] [--drawing-sheet SHEET_PATH] [--define-var KEY=VALUE]... [--variant VAR]... [--theme THEME_NAME] [--black-and-white] [--exclude-drawing-sheet] [--default-font VAR] [--draw-hop-over] [--exclude-pdf-property-popups] [--exclude-pdf-hierarchical-links] [--exclude-pdf-metadata] [--no-background-color] [--pages PAGE_LIST] INPUT_FILE" ], ), ParserL1.Section( @@ -1535,11 +1935,15 @@ '-o, --output Output file [nargs=0..1] [default: ""]', '--drawing-sheet Path to drawing sheet, this overrides any existing project defined sheet when used [nargs=0..1] [default: ""]', "-D, --define-var Overrides or adds project variables, can be used multiple times to declare multiple variables.", - "Use in the format of '--define-var key=value' or '-D key=value' [nargs=0..1] [default: {}]", + "Use in the format of '--define-var key=value' or '-D key=value' [nargs=0..1] [default: {}] [may be repeated]", + "--variant The variant name(s) to output, can be used multiple times to specify multiple variants.", + "When specifying multiple variants, use ${VARIANT} in the output path to generate separate files for each variant.", + "When no --variant argument is provided the default variant is output. [nargs=0..1] [default: {}] [may be repeated]", '-t, --theme Color theme to use (will default to schematic settings) [nargs=0..1] [default: ""]', "-b, --black-and-white Black and white only", "-e, --exclude-drawing-sheet No drawing sheet", - '--default-font Default font name [nargs=0..1] [default: "KiCad Font"]', + '--default-font Default font name [nargs=0..1] [default: ""]', + "--draw-hop-over Draw hop over at wire crossings", "--exclude-pdf-property-popups Do not generate property popups in PDF", "--exclude-pdf-hierarchical-links Do not generate clickable links for hierarchical elements in PDF", "--exclude-pdf-metadata Do not generate PDF metadata from AUTHOR and SUBJECT variables", @@ -1556,7 +1960,7 @@ ParserL1.Section( name="Usage", lines=[ - "Usage: ps [--help] [--output OUTPUT_DIR] [--drawing-sheet SHEET_PATH] [--define-var KEY=VALUE] [--theme THEME_NAME] [--black-and-white] [--exclude-drawing-sheet] [--default-font VAR] [--no-background-color] [--pages PAGE_LIST] INPUT_FILE" + "Usage: export ps [--help] [--output OUTPUT_DIR] [--drawing-sheet SHEET_PATH] [--define-var KEY=VALUE]... [--variant VAR]... [--theme THEME_NAME] [--black-and-white] [--exclude-drawing-sheet] [--default-font VAR] [--draw-hop-over] [--no-background-color] [--pages PAGE_LIST] INPUT_FILE" ], ), ParserL1.Section(name="Export PS", lines=["Export PS"]), @@ -1575,11 +1979,15 @@ '-o, --output Output directory [nargs=0..1] [default: ""]', '--drawing-sheet Path to drawing sheet, this overrides any existing project defined sheet when used [nargs=0..1] [default: ""]', "-D, --define-var Overrides or adds project variables, can be used multiple times to declare multiple variables.", - "Use in the format of '--define-var key=value' or '-D key=value' [nargs=0..1] [default: {}]", + "Use in the format of '--define-var key=value' or '-D key=value' [nargs=0..1] [default: {}] [may be repeated]", + "--variant The variant name(s) to output, can be used multiple times to specify multiple variants.", + "When specifying multiple variants, use ${VARIANT} in the output path to generate separate files for each variant.", + "When no --variant argument is provided the default variant is output. [nargs=0..1] [default: {}] [may be repeated]", '-t, --theme Color theme to use (will default to schematic settings) [nargs=0..1] [default: ""]', "-b, --black-and-white Black and white only", "-e, --exclude-drawing-sheet No drawing sheet", - '--default-font Default font name [nargs=0..1] [default: "KiCad Font"]', + '--default-font Default font name [nargs=0..1] [default: ""]', + "--draw-hop-over Draw hop over at wire crossings", "-n, --no-background-color Avoid setting a background color (regardless of theme)", '--pages List of page numbers separated by comma to print, blank or unspecified is equivalent to all pages [nargs=0..1] [default: ""]', ], @@ -1593,7 +2001,7 @@ ParserL1.Section( name="Usage", lines=[ - "Usage: python-bom [--help] [--output OUTPUT_FILE] INPUT_FILE" + "Usage: export python-bom [--help] [--output OUTPUT_FILE] INPUT_FILE" ], ), ParserL1.Section( @@ -1626,7 +2034,7 @@ ParserL1.Section( name="Usage", lines=[ - "Usage: svg [--help] [--output OUTPUT_DIR] [--drawing-sheet SHEET_PATH] [--define-var KEY=VALUE] [--theme THEME_NAME] [--black-and-white] [--exclude-drawing-sheet] [--default-font VAR] [--no-background-color] [--pages PAGE_LIST] INPUT_FILE" + "Usage: export svg [--help] [--output OUTPUT_DIR] [--drawing-sheet SHEET_PATH] [--define-var KEY=VALUE]... [--variant VAR]... [--theme THEME_NAME] [--black-and-white] [--exclude-drawing-sheet] [--default-font VAR] [--draw-hop-over] [--no-background-color] [--pages PAGE_LIST] INPUT_FILE" ], ), ParserL1.Section( @@ -1647,11 +2055,15 @@ '-o, --output Output directory [nargs=0..1] [default: ""]', '--drawing-sheet Path to drawing sheet, this overrides any existing project defined sheet when used [nargs=0..1] [default: ""]', "-D, --define-var Overrides or adds project variables, can be used multiple times to declare multiple variables.", - "Use in the format of '--define-var key=value' or '-D key=value' [nargs=0..1] [default: {}]", + "Use in the format of '--define-var key=value' or '-D key=value' [nargs=0..1] [default: {}] [may be repeated]", + "--variant The variant name(s) to output, can be used multiple times to specify multiple variants.", + "When specifying multiple variants, use ${VARIANT} in the output path to generate separate files for each variant.", + "When no --variant argument is provided the default variant is output. [nargs=0..1] [default: {}] [may be repeated]", '-t, --theme Color theme to use (will default to schematic settings) [nargs=0..1] [default: ""]', "-b, --black-and-white Black and white only", "-e, --exclude-drawing-sheet No drawing sheet", - '--default-font Default font name [nargs=0..1] [default: "KiCad Font"]', + '--default-font Default font name [nargs=0..1] [default: ""]', + "--draw-hop-over Draw hop over at wire crossings", "-n, --no-background-color Avoid setting a background color (regardless of theme)", '--pages List of page numbers separated by comma to print, blank or unspecified is equivalent to all pages [nargs=0..1] [default: ""]', ], @@ -1661,13 +2073,42 @@ ), ], ), + ParserL1.Command( + command="upgrade", + sections=[ + ParserL1.Section( + name="Usage", + lines=["Usage: sch upgrade [--help] [--force] INPUT_FILE"], + ), + ParserL1.Section( + name="Upgrade the schematic file's format to the latest one", + lines=[ + "Upgrade the schematic file's format to the latest one" + ], + ), + ParserL1.Section( + name="Positional arguments", + lines=["Positional arguments:", "INPUT_FILE Input file"], + ), + ParserL1.Section( + name="Optional arguments", + lines=[ + "Optional arguments:", + "-h, --help Shows help message and exits", + "--force Forces the schematic file to be resaved regardless of versioning", + ], + ), + ], + subcommands=[], + ), ], ), ParserL1.Command( command="sym", sections=[ ParserL1.Section( - name="Usage", lines=["Usage: sym [--help] {export,upgrade}"] + name="Usage", + lines=["Usage: kicad-cli sym [--help] {export,upgrade}"], ), ParserL1.Section( name="Symbol and Symbol Libraries", @@ -1694,7 +2135,7 @@ command="export", sections=[ ParserL1.Section( - name="Usage", lines=["Usage: export [--help] {svg}"] + name="Usage", lines=["Usage: sym export [--help] {svg}"] ), ParserL1.Section( name="Export utilities (svg)", @@ -1722,7 +2163,7 @@ ParserL1.Section( name="Usage", lines=[ - "Usage: svg [--help] [--output OUTPUT_DIR] [--theme THEME_NAME] [--symbol SYMBOL] [--black-and-white] [--include-hidden-pins] [--include-hidden-fields] INPUT_FILE" + "Usage: export svg [--help] [--output OUTPUT_DIR] [--theme THEME_NAME] [--symbol SYMBOL] [--black-and-white] [--include-hidden-pins] [--include-hidden-fields] INPUT_FILE" ], ), ParserL1.Section( @@ -1762,7 +2203,7 @@ ParserL1.Section( name="Usage", lines=[ - "Usage: upgrade [--help] [--output OUTPUT_FILE] [--force] INPUT_FILE" + "Usage: sym upgrade [--help] [--output OUTPUT_FILE_OR_DIR] [--force] INPUT_FILE_OR_DIR" ], ), ParserL1.Section( @@ -1773,15 +2214,18 @@ ), ParserL1.Section( name="Positional arguments", - lines=["Positional arguments:", "INPUT_FILE Input file"], + lines=[ + "Positional arguments:", + "INPUT_FILE_OR_DIR Input file or directory", + ], ), ParserL1.Section( name="Optional arguments", lines=[ "Optional arguments:", - "-h, --help Shows help message and exits", - '-o, --output Output file [nargs=0..1] [default: ""]', - "--force Forces the symbol library to be resaved regardless of versioning", + "-h, --help Shows help message and exits", + '-o, --output Output file or directory [nargs=0..1] [default: ""]', + "--force Forces the symbol library to be resaved regardless of versioning", ], ), ], @@ -1793,7 +2237,8 @@ command="version", sections=[ ParserL1.Section( - name="Usage", lines=["Usage: version [--help] [--format VAR]"] + name="Usage", + lines=["Usage: kicad-cli version [--help] [--format VAR]"], ), ParserL1.Section( name="Reports the version info in various formats", diff --git a/src/kicadcliwrapper/generated/kicad_cli_l2.py b/src/kicadcliwrapper/generated/kicad_cli_l2.py index b204332..24c184d 100644 --- a/src/kicadcliwrapper/generated/kicad_cli_l2.py +++ b/src/kicadcliwrapper/generated/kicad_cli_l2.py @@ -54,9 +54,9 @@ description="Exports the footprint or entire footprint library to SVG", args=[ ParserL2.Argument( - name="INPUT_DIR", - description="Input directory", - arg_description="INPUT_DIR", + name="INPUT_FILE_OR_DIR", + description="Input file or directory", + arg_description="INPUT_FILE_OR_DIR", required=True, ), ParserL2.Argument( @@ -146,9 +146,9 @@ description="Upgrades the footprint library to the current kicad version format", args=[ ParserL2.Argument( - name="INPUT_DIR", - description="Input directory", - arg_description="INPUT_DIR", + name="INPUT_FILE_OR_DIR", + description="Input file or directory", + arg_description="INPUT_FILE_OR_DIR", required=True, ), ParserL2.Argument( @@ -327,6 +327,18 @@ description="Return a nonzero exit code if DRC violations exist", default=False, ), + ParserL2.Flag( + name="--refill-zones", + commands=["--refill-zones"], + description="Refill zones before running DRC", + default=False, + ), + ParserL2.Flag( + name="--save-board", + commands=["--save-board"], + description="Save the board after DRC, must be used with --refill-zones", + default=False, + ), ], subcommands=[], ), @@ -343,6 +355,183 @@ ) ], subcommands=[ + ParserL2.Command( + name="3dpdf", + description="Export PDF", + args=[ + ParserL2.Argument( + name="INPUT_FILE", + description="Input file", + arg_description="INPUT_FILE", + required=True, + ), + ParserL2.Argument( + name="--output", + description='Output file [nargs=0..1] [default: ""]', + arg_description="OUTPUT_FILE", + required=False, + ), + ParserL2.Argument( + name="--define-var", + description="Overrides or adds project variables, can be used multiple times to declare multiple variables.", + arg_description="KEY=VALUE", + required=False, + ), + ParserL2.Argument( + name="--variant", + description="The variant name(s) to output, can be used multiple times to specify multiple variants.", + arg_description="VAR", + required=False, + ), + ParserL2.Argument( + name="--component-filter", + description='Only include component 3D models matching this list of reference designators (comma-separated, wildcards supported) [nargs=0..1] [default: ""]', + arg_description="VAR", + required=False, + ), + ParserL2.Argument( + name="--min-distance", + description='Minimum distance between points to treat them as separate ones [nargs=0..1] [default: "0.01mm"]', + arg_description="MIN_DIST", + required=False, + ), + ParserL2.Argument( + name="--net-filter", + description='Only include copper items belonging to nets matching this wildcard [nargs=0..1] [default: ""]', + arg_description="VAR", + required=False, + ), + ParserL2.Argument( + name="--user-origin", + description='User-specified output origin ex. 1x1in, 1x1inch, 25.4x25.4mm (default unit mm) [nargs=0..1] [default: ""]', + arg_description="VAR", + required=False, + ), + ], + flags=[ + ParserL2.Flag( + name="--help", + commands=["-h", "--help"], + description="Shows help message and exits", + default=False, + ), + ParserL2.Flag( + name="--force", + commands=["-f", "--force"], + description="Overwrite output file", + default=False, + ), + ParserL2.Flag( + name="--no-unspecified", + commands=["--no-unspecified"], + description="Exclude 3D models for components with 'Unspecified' footprint type", + default=False, + ), + ParserL2.Flag( + name="--no-dnp", + commands=["--no-dnp"], + description="Exclude 3D models for components with 'Do not populate' attribute", + default=False, + ), + ParserL2.Flag( + name="--grid-origin", + commands=["--grid-origin"], + description="Use Grid Origin for output origin", + default=False, + ), + ParserL2.Flag( + name="--drill-origin", + commands=["--drill-origin"], + description="Use Drill Origin for output origin", + default=False, + ), + ParserL2.Flag( + name="--subst-models", + commands=["--subst-models"], + description="Substitute STEP or IGS models with the same name in place of VRML models", + default=False, + ), + ParserL2.Flag( + name="--board-only", + commands=["--board-only"], + description="Only generate a board with no components", + default=False, + ), + ParserL2.Flag( + name="--cut-vias-in-body", + commands=["--cut-vias-in-body"], + description="Cut via holes in board body even if conductor layers are not exported.", + default=False, + ), + ParserL2.Flag( + name="--no-board-body", + commands=["--no-board-body"], + description="Exclude board body", + default=False, + ), + ParserL2.Flag( + name="--no-components", + commands=["--no-components"], + description="Exclude 3D models for components", + default=False, + ), + ParserL2.Flag( + name="--include-tracks", + commands=["--include-tracks"], + description="Export tracks and vias", + default=False, + ), + ParserL2.Flag( + name="--include-pads", + commands=["--include-pads"], + description="Export pads", + default=False, + ), + ParserL2.Flag( + name="--include-zones", + commands=["--include-zones"], + description="Export zones", + default=False, + ), + ParserL2.Flag( + name="--include-inner-copper", + commands=["--include-inner-copper"], + description="Export elements on inner copper layers", + default=False, + ), + ParserL2.Flag( + name="--include-silkscreen", + commands=["--include-silkscreen"], + description="Export silkscreen graphics as a set of flat faces", + default=False, + ), + ParserL2.Flag( + name="--include-soldermask", + commands=["--include-soldermask"], + description="Export soldermask layers as a set of flat faces", + default=False, + ), + ParserL2.Flag( + name="--fuse-shapes", + commands=["--fuse-shapes"], + description="Fuse overlapping geometry together", + default=False, + ), + ParserL2.Flag( + name="--fill-all-vias", + commands=["--fill-all-vias"], + description="Don't cut via holes in conductor layers.", + default=False, + ), + ParserL2.Flag( + name="--no-extra-pad-thickness", + commands=["--no-extra-pad-thickness"], + description="Disable extra pad thickness (pads will have normal thickness)", + default=False, + ), + ], + subcommands=[], + ), ParserL2.Command( name="brep", description="Export BREP", @@ -365,6 +554,12 @@ arg_description="KEY=VALUE", required=False, ), + ParserL2.Argument( + name="--variant", + description="The variant name(s) to output, can be used multiple times to specify multiple variants.", + arg_description="VAR", + required=False, + ), ParserL2.Argument( name="--component-filter", description='Only include component 3D models matching this list of reference designators (comma-separated, wildcards supported) [nargs=0..1] [default: ""]', @@ -505,6 +700,12 @@ description="Don't cut via holes in conductor layers.", default=False, ), + ParserL2.Flag( + name="--no-extra-pad-thickness", + commands=["--no-extra-pad-thickness"], + description="Disable extra pad thickness (pads will have normal thickness)", + default=False, + ), ], subcommands=[], ), @@ -532,31 +733,37 @@ ), ParserL2.Argument( name="--drill-origin", - description='Valid options are: absolute,plot [nargs=0..1] [default: "absolute"]', + description='Valid options are: absolute, plot [nargs=0..1] [default: "absolute"]', arg_description="DRILL_ORIGIN", required=False, ), ParserL2.Argument( name="--excellon-zeros-format", - description='Valid options are: decimal,suppressleading,suppresstrailing,keep. [nargs=0..1] [default: "decimal"]', + description='Valid options are: decimal, suppressleading, suppresstrailing, keep. [nargs=0..1] [default: "decimal"]', arg_description="ZEROS_FORMAT", required=False, ), ParserL2.Argument( name="--excellon-oval-format", - description='Valid options are: route,alternate. [nargs=0..1] [default: "alternate"]', + description='Valid options are: route, alternate. [nargs=0..1] [default: "alternate"]', arg_description="OVAL_FORMAT", required=False, ), ParserL2.Argument( name="--excellon-units", - description='Output units, valid options:in,mm [nargs=0..1] [default: "mm"]', + description='Output units, valid options: in, mm [nargs=0..1] [default: "mm"]', arg_description="UNITS", required=False, ), + ParserL2.Argument( + name="--report-path", + description='Report output file path [nargs=0..1] [default: ""]', + arg_description="REPORT_FILE", + required=False, + ), ParserL2.Argument( name="--map-format", - description='Valid options: pdf,gerberx2,ps,dxf,svg [nargs=0..1] [default: "pdf"]', + description='Valid options: pdf, gerberx2, ps, dxf, svg [nargs=0..1] [default: "pdf"]', arg_description="MAP_FORMAT", required=False, ), @@ -598,6 +805,18 @@ description="Generate map / summary of drill hits", default=False, ), + ParserL2.Flag( + name="--generate-report", + commands=["--generate-report"], + description="Generate report of drill hits", + default=False, + ), + ParserL2.Flag( + name="--generate-tenting", + commands=["--generate-tenting"], + description="Generate a file specifically for tenting", + default=False, + ), ], subcommands=[], ), @@ -613,8 +832,8 @@ ), ParserL2.Argument( name="--output", - description='Output file [nargs=0..1] [default: ""]', - arg_description="OUTPUT_FILE", + description='Output directory [nargs=0..1] [default: ""]', + arg_description="OUTPUT_DIR", required=False, ), ParserL2.Argument( @@ -623,6 +842,12 @@ arg_description="LAYER_LIST", required=False, ), + ParserL2.Argument( + name="--common-layers", + description='Layers to include on each plot, comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""]', + arg_description="COMMON_LAYER_LIST", + required=False, + ), ParserL2.Argument( name="--drawing-sheet", description='Path to drawing sheet, this overrides any existing project defined sheet when used [nargs=0..1] [default: ""]', @@ -648,9 +873,15 @@ required=False, ), ParserL2.Argument( - name="--common-layers", - description='Layers to include on each plot, comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""]', - arg_description="COMMON_LAYER_LIST", + name="--scale", + description="Scale for the PCB, not for the border and title. Use 0 for autoscale [nargs=0..1] [default: 1]", + arg_description="SCALE", + required=False, + ), + ParserL2.Argument( + name="--variant", + description="The variant name(s) to output, can be used multiple times to specify multiple variants.", + arg_description="VAR", required=False, ), ], @@ -743,9 +974,9 @@ default=False, ), ParserL2.Flag( - name="--plot-invisible-text", - commands=["--plot-invisible-text"], - description="Deprecated. Has no effect.", + name="--check-zones", + commands=["--check-zones"], + description="Check and refill zones if required", default=False, ), ], @@ -753,7 +984,7 @@ ), ParserL2.Command( name="gencad", - description="Generate Gencad from a list of layers", + description="Export the PCB in Gencad format", args=[ ParserL2.Argument( name="INPUT_FILE", @@ -763,8 +994,8 @@ ), ParserL2.Argument( name="--output", - description='Output file [nargs=0..1] [default: ""]', - arg_description="OUTPUT_FILE", + description='Output directory [nargs=0..1] [default: ""]', + arg_description="OUTPUT_DIR", required=False, ), ParserL2.Argument( @@ -815,8 +1046,8 @@ subcommands=[], ), ParserL2.Command( - name="gerber", - description="Plot given layers to a single Gerber file", + name="gerbers", + description="Plot multiple Gerbers for a PCB, including the ability to use stored board plot settings", args=[ ParserL2.Argument( name="INPUT_FILE", @@ -826,8 +1057,8 @@ ), ParserL2.Argument( name="--output", - description='Output file [nargs=0..1] [default: ""]', - arg_description="OUTPUT_FILE", + description='Output directory [nargs=0..1] [default: ""]', + arg_description="OUTPUT_DIR", required=False, ), ParserL2.Argument( @@ -836,6 +1067,12 @@ arg_description="LAYER_LIST", required=False, ), + ParserL2.Argument( + name="--common-layers", + description='Layers to include on each plot, comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""]', + arg_description="COMMON_LAYER_LIST", + required=False, + ), ParserL2.Argument( name="--drawing-sheet", description='Path to drawing sheet, this overrides any existing project defined sheet when used [nargs=0..1] [default: ""]', @@ -848,18 +1085,18 @@ arg_description="KEY=VALUE", required=False, ), - ParserL2.Argument( - name="--common-layers", - description='Layers to include on each plot, comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""]', - arg_description="COMMON_LAYER_LIST", - required=False, - ), ParserL2.Argument( name="--precision", description="Precision of Gerber coordinates, valid options: 5 or 6 [nargs=0..1] [default: 6]", arg_description="PRECISION", required=False, ), + ParserL2.Argument( + name="--variant", + description="The variant name(s) to output, can be used multiple times to specify multiple variants.", + arg_description="VAR", + required=False, + ), ], flags=[ ParserL2.Flag( @@ -956,17 +1193,23 @@ default=False, ), ParserL2.Flag( - name="--plot-invisible-text", - commands=["--plot-invisible-text"], - description="Deprecated. Has no effect.", + name="--check-zones", + commands=["--check-zones"], + description="Check and refill zones if required", + default=False, + ), + ParserL2.Flag( + name="--board-plot-params", + commands=["--board-plot-params"], + description="Use the Gerber plot settings already configured in the board file", default=False, ), ], subcommands=[], ), ParserL2.Command( - name="gerbers", - description="Plot multiple Gerbers for a PCB, including the ability to use stored board plot settings", + name="glb", + description="Export GLB (binary GLTF)", args=[ ParserL2.Argument( name="INPUT_FILE", @@ -981,171 +1224,15 @@ required=False, ), ParserL2.Argument( - name="--layers", - description='Comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""]', - arg_description="LAYER_LIST", + name="--define-var", + description="Overrides or adds project variables, can be used multiple times to declare multiple variables.", + arg_description="KEY=VALUE", required=False, ), ParserL2.Argument( - name="--drawing-sheet", - description='Path to drawing sheet, this overrides any existing project defined sheet when used [nargs=0..1] [default: ""]', - arg_description="SHEET_PATH", - required=False, - ), - ParserL2.Argument( - name="--define-var", - description="Overrides or adds project variables, can be used multiple times to declare multiple variables.", - arg_description="KEY=VALUE", - required=False, - ), - ParserL2.Argument( - name="--common-layers", - description='Layers to include on each plot, comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""]', - arg_description="COMMON_LAYER_LIST", - required=False, - ), - ParserL2.Argument( - name="--precision", - description="Precision of Gerber coordinates, valid options: 5 or 6 [nargs=0..1] [default: 6]", - arg_description="PRECISION", - required=False, - ), - ParserL2.Argument( - name="--common-layers", - description='Layers to include on each plot, comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""]', - arg_description="COMMON_LAYER_LIST", - required=False, - ), - ], - flags=[ - ParserL2.Flag( - name="--help", - commands=["-h", "--help"], - description="Shows help message and exits", - default=False, - ), - ParserL2.Flag( - name="--exclude-refdes", - commands=["--erd", "--exclude-refdes"], - description="Exclude the reference designator text", - default=False, - ), - ParserL2.Flag( - name="--exclude-value", - commands=["--ev", "--exclude-value"], - description="Exclude the value text", - default=False, - ), - ParserL2.Flag( - name="--include-border-title", - commands=["--ibt", "--include-border-title"], - description="Include the border and title block", - default=False, - ), - ParserL2.Flag( - name="--sketch-pads-on-fab-layers", - commands=["--sp", "--sketch-pads-on-fab-layers"], - description="Draw pad outlines and their numbers on front and back fab layers", - default=False, - ), - ParserL2.Flag( - name="--hide-DNP-footprints-on-fab-layers", - commands=[ - "--hdnp", - "--hide-DNP-footprints-on-fab-layers", - ], - description="Don't plot text & graphics of DNP footprints on fab layers", - default=False, - ), - ParserL2.Flag( - name="--sketch-DNP-footprints-on-fab-layers", - commands=[ - "--sdnp", - "--sketch-DNP-footprints-on-fab-layers", - ], - description="Plot graphics of DNP footprints in sketch mode on fab layers", - default=False, - ), - ParserL2.Flag( - name="--crossout-DNP-footprints-on-fab-layers", - commands=[ - "--cdnp", - "--crossout-DNP-footprints-on-fab-layers", - ], - description="Plot an 'X' over the courtyard of DNP footprints on fab layers, and strikeout their reference designators", - default=False, - ), - ParserL2.Flag( - name="--no-x2", - commands=["--no-x2"], - description="Do not use the extended X2 format", - default=False, - ), - ParserL2.Flag( - name="--no-netlist", - commands=["--no-netlist"], - description="Do not generate netlist attributes", - default=False, - ), - ParserL2.Flag( - name="--subtract-soldermask", - commands=["--subtract-soldermask"], - description="Subtract soldermask from silkscreen", - default=False, - ), - ParserL2.Flag( - name="--disable-aperture-macros", - commands=["--disable-aperture-macros"], - description="Disable aperture macros", - default=False, - ), - ParserL2.Flag( - name="--use-drill-file-origin", - commands=["--use-drill-file-origin"], - description="Use drill/place file origin", - default=False, - ), - ParserL2.Flag( - name="--no-protel-ext", - commands=["--no-protel-ext"], - description="Use KiCad Gerber file extension", - default=False, - ), - ParserL2.Flag( - name="--plot-invisible-text", - commands=["--plot-invisible-text"], - description="Deprecated. Has no effect.", - default=False, - ), - ParserL2.Flag( - name="--board-plot-params", - commands=["--board-plot-params"], - description="Use the Gerber plot settings already configured in the board file", - default=False, - ), - ], - subcommands=[], - ), - ParserL2.Command( - name="glb", - description="Export GLB (binary GLTF)", - args=[ - ParserL2.Argument( - name="INPUT_FILE", - description="Input file", - arg_description="INPUT_FILE", - required=True, - ), - ParserL2.Argument( - name="--output", - description='Output file [nargs=0..1] [default: ""]', - arg_description="OUTPUT_FILE", - required=False, - ), - ParserL2.Argument( - name="--define-var", - description="Overrides or adds project variables, can be used multiple times to declare multiple variables.", - arg_description="KEY=VALUE", + name="--variant", + description="The variant name(s) to output, can be used multiple times to specify multiple variants.", + arg_description="VAR", required=False, ), ParserL2.Argument( @@ -1288,6 +1375,39 @@ description="Don't cut via holes in conductor layers.", default=False, ), + ParserL2.Flag( + name="--no-extra-pad-thickness", + commands=["--no-extra-pad-thickness"], + description="Disable extra pad thickness (pads will have normal thickness)", + default=False, + ), + ], + subcommands=[], + ), + ParserL2.Command( + name="hpgl", + description="No longer supported as of KiCad 10.0.", + args=[ + ParserL2.Argument( + name="INPUT_FILE", + description="Input file", + arg_description="INPUT_FILE", + required=True, + ), + ParserL2.Argument( + name="--output", + description='Output directory [nargs=0..1] [default: ""]', + arg_description="OUTPUT_DIR", + required=False, + ), + ], + flags=[ + ParserL2.Flag( + name="--help", + commands=["-h", "--help"], + description="Shows help message and exits", + default=False, + ) ], subcommands=[], ), @@ -1367,6 +1487,18 @@ arg_description="FIELD_NAME", required=False, ), + ParserL2.Argument( + name="--bom-rev", + description='BOM revision to use in the output file. Defaults to schematic revision from the project file [nargs=0..1] [default: ""]', + arg_description="REVISION", + required=False, + ), + ParserL2.Argument( + name="--variant", + description="The variant name(s) to output, can be used multiple times to specify multiple variants.", + arg_description="VAR", + required=False, + ), ], flags=[ ParserL2.Flag( @@ -1457,6 +1589,12 @@ arg_description="VAR", required=False, ), + ParserL2.Argument( + name="--variant", + description="The variant name(s) to output, can be used multiple times to specify multiple variants.", + arg_description="VAR", + required=False, + ), ], flags=[ ParserL2.Flag( @@ -1480,8 +1618,8 @@ ), ParserL2.Argument( name="--output", - description='Output file [nargs=0..1] [default: ""]', - arg_description="OUTPUT_FILE", + description='Output directory [nargs=0..1] [default: ""]', + arg_description="OUTPUT_DIR", required=False, ), ParserL2.Argument( @@ -1490,6 +1628,12 @@ arg_description="LAYER_LIST", required=False, ), + ParserL2.Argument( + name="--common-layers", + description='Layers to include on each plot, comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""]', + arg_description="COMMON_LAYER_LIST", + required=False, + ), ParserL2.Argument( name="--drawing-sheet", description='Path to drawing sheet, this overrides any existing project defined sheet when used [nargs=0..1] [default: ""]', @@ -1515,9 +1659,21 @@ required=False, ), ParserL2.Argument( - name="--common-layers", - description='Layers to include on each plot, comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""]', - arg_description="COMMON_LAYER_LIST", + name="--scale", + description="Scale for the PCB, not for the border and title. Use 0 for autoscale [nargs=0..1] [default: 1]", + arg_description="SCALE", + required=False, + ), + ParserL2.Argument( + name="--bg-color", + description='Background color, can be in hex #rrggbb, #rrggbbaa; or css rgb(r,g,b), rgba(r,g,b,a) format [nargs=0..1] [default: ""]', + arg_description="COLOR", + required=False, + ), + ParserL2.Argument( + name="--variant", + description="The variant name(s) to output, can be used multiple times to specify multiple variants.", + arg_description="VAR", required=False, ), ], @@ -1603,12 +1759,6 @@ description="Black and white only", default=False, ), - ParserL2.Flag( - name="--plot-invisible-text", - commands=["--plot-invisible-text"], - description="Deprecated. Has no effect.", - default=False, - ), ParserL2.Flag( name="--mode-single", commands=["--mode-single"], @@ -1627,6 +1777,12 @@ description="Plot the layers to a single PDF file with multiple pages", default=False, ), + ParserL2.Flag( + name="--check-zones", + commands=["--check-zones"], + description="Check and refill zones if required", + default=False, + ), ], subcommands=[], ), @@ -1652,6 +1808,12 @@ arg_description="KEY=VALUE", required=False, ), + ParserL2.Argument( + name="--variant", + description="The variant name(s) to output, can be used multiple times to specify multiple variants.", + arg_description="VAR", + required=False, + ), ParserL2.Argument( name="--component-filter", description='Only include component 3D models matching this list of reference designators (comma-separated, wildcards supported) [nargs=0..1] [default: ""]', @@ -1792,6 +1954,12 @@ description="Don't cut via holes in conductor layers.", default=False, ), + ParserL2.Flag( + name="--no-extra-pad-thickness", + commands=["--no-extra-pad-thickness"], + description="Disable extra pad thickness (pads will have normal thickness)", + default=False, + ), ], subcommands=[], ), @@ -1813,22 +1981,28 @@ ), ParserL2.Argument( name="--side", - description='Valid options: front,back,both. Gerber format only supports "front" or "back". [nargs=0..1] [default: "both"]', + description='Valid options: front, back, both. Gerber format only supports "front" or "back". [nargs=0..1] [default: "both"]', arg_description="VAR", required=False, ), ParserL2.Argument( name="--format", - description='Valid options: ascii,csv,gerber [nargs=0..1] [default: "ascii"]', + description='Valid options: ascii, csv, gerber [nargs=0..1] [default: "ascii"]', arg_description="FORMAT", required=False, ), ParserL2.Argument( name="--units", - description='Output units; ascii or csv format only; valid options: in,mm [nargs=0..1] [default: "in"]', + description='Output units; ascii or csv format only; valid options: in, mm [nargs=0..1] [default: "in"]', arg_description="UNITS", required=False, ), + ParserL2.Argument( + name="--variant", + description="The variant name(s) to output, can be used multiple times to specify multiple variants.", + arg_description="VAR", + required=False, + ), ], flags=[ ParserL2.Flag( @@ -1877,8 +2051,8 @@ subcommands=[], ), ParserL2.Command( - name="step", - description="Export STEP", + name="ps", + description="Generate Postscript from a list of layers", args=[ ParserL2.Argument( name="INPUT_FILE", @@ -1888,26 +2062,464 @@ ), ParserL2.Argument( name="--output", - description='Output file [nargs=0..1] [default: ""]', - arg_description="OUTPUT_FILE", + description='Output directory [nargs=0..1] [default: ""]', + arg_description="OUTPUT_DIR", required=False, ), ParserL2.Argument( - name="--define-var", - description="Overrides or adds project variables, can be used multiple times to declare multiple variables.", - arg_description="KEY=VALUE", + name="--layers", + description='Comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""]', + arg_description="LAYER_LIST", required=False, ), ParserL2.Argument( - name="--component-filter", - description='Only include component 3D models matching this list of reference designators (comma-separated, wildcards supported) [nargs=0..1] [default: ""]', - arg_description="VAR", + name="--common-layers", + description='Layers to include on each plot, comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""]', + arg_description="COMMON_LAYER_LIST", required=False, ), ParserL2.Argument( - name="--min-distance", - description='Minimum distance between points to treat them as separate ones [nargs=0..1] [default: "0.01mm"]', - arg_description="MIN_DIST", + name="--drawing-sheet", + description='Path to drawing sheet, this overrides any existing project defined sheet when used [nargs=0..1] [default: ""]', + arg_description="SHEET_PATH", + required=False, + ), + ParserL2.Argument( + name="--define-var", + description="Overrides or adds project variables, can be used multiple times to declare multiple variables.", + arg_description="KEY=VALUE", + required=False, + ), + ParserL2.Argument( + name="--theme", + description='Color theme to use (will default to PCB Editor settings) [nargs=0..1] [default: ""]', + arg_description="THEME_NAME", + required=False, + ), + ParserL2.Argument( + name="--drill-shape-opt", + description="Set pad/via drill shape option (0 = no shape, 1 = small shape, 2 = actual shape) [nargs=0..1] [default: 2]", + arg_description="VAR", + required=False, + ), + ParserL2.Argument( + name="--track-width-correction", + description="Track width correction [mm]. Used to compensate errors in track widths, pad and via sizes. [nargs=0..1] [default: 0]", + arg_description="TRACK_COR", + required=False, + ), + ParserL2.Argument( + name="--x-scale-factor", + description="X scale adjust for exact scale. [nargs=0..1] [default: 1]", + arg_description="X_SCALE", + required=False, + ), + ParserL2.Argument( + name="--y-scale-factor", + description="Y scale adjust for exact scale. [nargs=0..1] [default: 1]", + arg_description="Y_SCALE", + required=False, + ), + ParserL2.Argument( + name="--scale", + description="Scale for the PCB, not for the border and title. Use 0 for autoscale [nargs=0..1] [default: 1]", + arg_description="SCALE", + required=False, + ), + ParserL2.Argument( + name="--variant", + description="The variant name(s) to output, can be used multiple times to specify multiple variants.", + arg_description="VAR", + required=False, + ), + ], + flags=[ + ParserL2.Flag( + name="--help", + commands=["-h", "--help"], + description="Shows help message and exits", + default=False, + ), + ParserL2.Flag( + name="--mirror", + commands=["-m", "--mirror"], + description="Mirror the board (useful for trying to show bottom layers)", + default=False, + ), + ParserL2.Flag( + name="--exclude-refdes", + commands=["--erd", "--exclude-refdes"], + description="Exclude the reference designator text", + default=False, + ), + ParserL2.Flag( + name="--exclude-value", + commands=["--ev", "--exclude-value"], + description="Exclude the value text", + default=False, + ), + ParserL2.Flag( + name="--include-border-title", + commands=["--ibt", "--include-border-title"], + description="Include the border and title block", + default=False, + ), + ParserL2.Flag( + name="--subtract-soldermask", + commands=["--subtract-soldermask"], + description="Subtract soldermask from silkscreen", + default=False, + ), + ParserL2.Flag( + name="--sketch-pads-on-fab-layers", + commands=["--sp", "--sketch-pads-on-fab-layers"], + description="Draw pad outlines and their numbers on front and back fab layers", + default=False, + ), + ParserL2.Flag( + name="--hide-DNP-footprints-on-fab-layers", + commands=[ + "--hdnp", + "--hide-DNP-footprints-on-fab-layers", + ], + description="Don't plot text & graphics of DNP footprints on fab layers", + default=False, + ), + ParserL2.Flag( + name="--sketch-DNP-footprints-on-fab-layers", + commands=[ + "--sdnp", + "--sketch-DNP-footprints-on-fab-layers", + ], + description="Plot graphics of DNP footprints in sketch mode on fab layers", + default=False, + ), + ParserL2.Flag( + name="--crossout-DNP-footprints-on-fab-layers", + commands=[ + "--cdnp", + "--crossout-DNP-footprints-on-fab-layers", + ], + description="Plot an 'X' over the courtyard of DNP footprints on fab layers, and strikeout their reference designators", + default=False, + ), + ParserL2.Flag( + name="--negative", + commands=["-n", "--negative"], + description="Plot as negative (useful for directly etching from the export)", + default=False, + ), + ParserL2.Flag( + name="--black-and-white", + commands=["--black-and-white"], + description="Black and white only", + default=False, + ), + ParserL2.Flag( + name="--mode-single", + commands=["--mode-single"], + description="Generates a single file with the output arg path acting as the complete directory and filename path. COMMON_LAYER_LIST does not function in this mode. Instead LAYER_LIST controls all layers plotted.", + default=False, + ), + ParserL2.Flag( + name="--mode-multi", + commands=["--mode-multi"], + description="Generates one or more files with behavior similar to the KiCad GUI plotting. The given output path specifies a directory in which files may be output.", + default=False, + ), + ParserL2.Flag( + name="--force-a4", + commands=["-A", "--force-a4"], + description="Force A4 paper size.", + default=False, + ), + ParserL2.Flag( + name="--check-zones", + commands=["--check-zones"], + description="Check and refill zones if required", + default=False, + ), + ], + subcommands=[], + ), + ParserL2.Command( + name="stats", + description="Generate a board statistics report", + args=[ + ParserL2.Argument( + name="INPUT_FILE", + description="Input file", + arg_description="INPUT_FILE", + required=True, + ), + ParserL2.Argument( + name="--output", + description='Output file [nargs=0..1] [default: ""]', + arg_description="OUTPUT_FILE", + required=False, + ), + ParserL2.Argument( + name="--format", + description='Output file format, options: json, report [nargs=0..1] [default: "report"]', + arg_description="FORMAT", + required=False, + ), + ParserL2.Argument( + name="--units", + description='Report units; valid options: in, mm [nargs=0..1] [default: "mm"]', + arg_description="UNITS", + required=False, + ), + ], + flags=[ + ParserL2.Flag( + name="--help", + commands=["-h", "--help"], + description="Shows help message and exits", + default=False, + ), + ParserL2.Flag( + name="--exclude-footprints-without-pads", + commands=["--exclude-footprints-without-pads"], + description="Exclude footprints without pads", + default=False, + ), + ParserL2.Flag( + name="--subtract-holes-from-board", + commands=["--subtract-holes-from-board"], + description="Subtract holes from the board area", + default=False, + ), + ParserL2.Flag( + name="--subtract-holes-from-copper", + commands=["--subtract-holes-from-copper"], + description="Subtract holes from copper areas", + default=False, + ), + ], + subcommands=[], + ), + ParserL2.Command( + name="step", + description="Export STEP", + args=[ + ParserL2.Argument( + name="INPUT_FILE", + description="Input file", + arg_description="INPUT_FILE", + required=True, + ), + ParserL2.Argument( + name="--output", + description='Output file [nargs=0..1] [default: ""]', + arg_description="OUTPUT_FILE", + required=False, + ), + ParserL2.Argument( + name="--define-var", + description="Overrides or adds project variables, can be used multiple times to declare multiple variables.", + arg_description="KEY=VALUE", + required=False, + ), + ParserL2.Argument( + name="--variant", + description="The variant name(s) to output, can be used multiple times to specify multiple variants.", + arg_description="VAR", + required=False, + ), + ParserL2.Argument( + name="--component-filter", + description='Only include component 3D models matching this list of reference designators (comma-separated, wildcards supported) [nargs=0..1] [default: ""]', + arg_description="VAR", + required=False, + ), + ParserL2.Argument( + name="--min-distance", + description='Minimum distance between points to treat them as separate ones [nargs=0..1] [default: "0.01mm"]', + arg_description="MIN_DIST", + required=False, + ), + ParserL2.Argument( + name="--net-filter", + description='Only include copper items belonging to nets matching this wildcard [nargs=0..1] [default: ""]', + arg_description="VAR", + required=False, + ), + ParserL2.Argument( + name="--user-origin", + description='User-specified output origin ex. 1x1in, 1x1inch, 25.4x25.4mm (default unit mm) [nargs=0..1] [default: ""]', + arg_description="VAR", + required=False, + ), + ], + flags=[ + ParserL2.Flag( + name="--help", + commands=["-h", "--help"], + description="Shows help message and exits", + default=False, + ), + ParserL2.Flag( + name="--force", + commands=["-f", "--force"], + description="Overwrite output file", + default=False, + ), + ParserL2.Flag( + name="--no-unspecified", + commands=["--no-unspecified"], + description="Exclude 3D models for components with 'Unspecified' footprint type", + default=False, + ), + ParserL2.Flag( + name="--no-dnp", + commands=["--no-dnp"], + description="Exclude 3D models for components with 'Do not populate' attribute", + default=False, + ), + ParserL2.Flag( + name="--grid-origin", + commands=["--grid-origin"], + description="Use Grid Origin for output origin", + default=False, + ), + ParserL2.Flag( + name="--drill-origin", + commands=["--drill-origin"], + description="Use Drill Origin for output origin", + default=False, + ), + ParserL2.Flag( + name="--subst-models", + commands=["--subst-models"], + description="Substitute STEP or IGS models with the same name in place of VRML models", + default=False, + ), + ParserL2.Flag( + name="--board-only", + commands=["--board-only"], + description="Only generate a board with no components", + default=False, + ), + ParserL2.Flag( + name="--cut-vias-in-body", + commands=["--cut-vias-in-body"], + description="Cut via holes in board body even if conductor layers are not exported.", + default=False, + ), + ParserL2.Flag( + name="--no-board-body", + commands=["--no-board-body"], + description="Exclude board body", + default=False, + ), + ParserL2.Flag( + name="--no-components", + commands=["--no-components"], + description="Exclude 3D models for components", + default=False, + ), + ParserL2.Flag( + name="--include-tracks", + commands=["--include-tracks"], + description="Export tracks and vias", + default=False, + ), + ParserL2.Flag( + name="--include-pads", + commands=["--include-pads"], + description="Export pads", + default=False, + ), + ParserL2.Flag( + name="--include-zones", + commands=["--include-zones"], + description="Export zones", + default=False, + ), + ParserL2.Flag( + name="--include-inner-copper", + commands=["--include-inner-copper"], + description="Export elements on inner copper layers", + default=False, + ), + ParserL2.Flag( + name="--include-silkscreen", + commands=["--include-silkscreen"], + description="Export silkscreen graphics as a set of flat faces", + default=False, + ), + ParserL2.Flag( + name="--include-soldermask", + commands=["--include-soldermask"], + description="Export soldermask layers as a set of flat faces", + default=False, + ), + ParserL2.Flag( + name="--fuse-shapes", + commands=["--fuse-shapes"], + description="Fuse overlapping geometry together", + default=False, + ), + ParserL2.Flag( + name="--fill-all-vias", + commands=["--fill-all-vias"], + description="Don't cut via holes in conductor layers.", + default=False, + ), + ParserL2.Flag( + name="--no-extra-pad-thickness", + commands=["--no-extra-pad-thickness"], + description="Disable extra pad thickness (pads will have normal thickness)", + default=False, + ), + ParserL2.Flag( + name="--no-optimize-step", + commands=["--no-optimize-step"], + description="Do not optimize STEP file (enables writing parametric curves)", + default=False, + ), + ], + subcommands=[], + ), + ParserL2.Command( + name="stl", + description="Export STL", + args=[ + ParserL2.Argument( + name="INPUT_FILE", + description="Input file", + arg_description="INPUT_FILE", + required=True, + ), + ParserL2.Argument( + name="--output", + description='Output file [nargs=0..1] [default: ""]', + arg_description="OUTPUT_FILE", + required=False, + ), + ParserL2.Argument( + name="--define-var", + description="Overrides or adds project variables, can be used multiple times to declare multiple variables.", + arg_description="KEY=VALUE", + required=False, + ), + ParserL2.Argument( + name="--variant", + description="The variant name(s) to output, can be used multiple times to specify multiple variants.", + arg_description="VAR", + required=False, + ), + ParserL2.Argument( + name="--component-filter", + description='Only include component 3D models matching this list of reference designators (comma-separated, wildcards supported) [nargs=0..1] [default: ""]', + arg_description="VAR", + required=False, + ), + ParserL2.Argument( + name="--min-distance", + description='Minimum distance between points to treat them as separate ones [nargs=0..1] [default: "0.01mm"]', + arg_description="MIN_DIST", required=False, ), ParserL2.Argument( @@ -2039,17 +2651,17 @@ default=False, ), ParserL2.Flag( - name="--no-optimize-step", - commands=["--no-optimize-step"], - description="Do not optimize STEP file (enables writing parametric curves)", + name="--no-extra-pad-thickness", + commands=["--no-extra-pad-thickness"], + description="Disable extra pad thickness (pads will have normal thickness)", default=False, ), ], subcommands=[], ), ParserL2.Command( - name="stl", - description="Export STL", + name="stpz", + description="Export STEPZ", args=[ ParserL2.Argument( name="INPUT_FILE", @@ -2069,6 +2681,12 @@ arg_description="KEY=VALUE", required=False, ), + ParserL2.Argument( + name="--variant", + description="The variant name(s) to output, can be used multiple times to specify multiple variants.", + arg_description="VAR", + required=False, + ), ParserL2.Argument( name="--component-filter", description='Only include component 3D models matching this list of reference designators (comma-separated, wildcards supported) [nargs=0..1] [default: ""]', @@ -2209,6 +2827,18 @@ description="Don't cut via holes in conductor layers.", default=False, ), + ParserL2.Flag( + name="--no-extra-pad-thickness", + commands=["--no-extra-pad-thickness"], + description="Disable extra pad thickness (pads will have normal thickness)", + default=False, + ), + ParserL2.Flag( + name="--no-optimize-step", + commands=["--no-optimize-step"], + description="Do not optimize STEP file (enables writing parametric curves)", + default=False, + ), ], subcommands=[], ), @@ -2224,8 +2854,8 @@ ), ParserL2.Argument( name="--output", - description='Output file [nargs=0..1] [default: ""]', - arg_description="OUTPUT_FILE", + description='Output directory [nargs=0..1] [default: ""]', + arg_description="OUTPUT_DIR", required=False, ), ParserL2.Argument( @@ -2234,6 +2864,12 @@ arg_description="LAYER_LIST", required=False, ), + ParserL2.Argument( + name="--common-layers", + description='Layers to include on each plot, comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""]', + arg_description="COMMON_LAYER_LIST", + required=False, + ), ParserL2.Argument( name="--drawing-sheet", description='Path to drawing sheet, this overrides any existing project defined sheet when used [nargs=0..1] [default: ""]', @@ -2265,9 +2901,165 @@ required=False, ), ParserL2.Argument( - name="--common-layers", - description='Layers to include on each plot, comma separated list of untranslated layer names to include such as F.Cu,B.Cu [nargs=0..1] [default: ""]', - arg_description="COMMON_LAYER_LIST", + name="--scale", + description="Scale for the PCB, not for the border and title. Use 0 for autoscale [nargs=0..1] [default: 1]", + arg_description="SCALE", + required=False, + ), + ParserL2.Argument( + name="--variant", + description="The variant name(s) to output, can be used multiple times to specify multiple variants.", + arg_description="VAR", + required=False, + ), + ], + flags=[ + ParserL2.Flag( + name="--help", + commands=["-h", "--help"], + description="Shows help message and exits", + default=False, + ), + ParserL2.Flag( + name="--subtract-soldermask", + commands=["--subtract-soldermask"], + description="Subtract soldermask from silkscreen", + default=False, + ), + ParserL2.Flag( + name="--mirror", + commands=["-m", "--mirror"], + description="Mirror the board (useful for trying to show bottom layers)", + default=False, + ), + ParserL2.Flag( + name="--negative", + commands=["-n", "--negative"], + description="Plot as negative (useful for directly etching from the export)", + default=False, + ), + ParserL2.Flag( + name="--black-and-white", + commands=["--black-and-white"], + description="Black and white only", + default=False, + ), + ParserL2.Flag( + name="--sketch-pads-on-fab-layers", + commands=["--sp", "--sketch-pads-on-fab-layers"], + description="Draw pad outlines and their numbers on front and back fab layers", + default=False, + ), + ParserL2.Flag( + name="--hide-DNP-footprints-on-fab-layers", + commands=[ + "--hdnp", + "--hide-DNP-footprints-on-fab-layers", + ], + description="Don't plot text & graphics of DNP footprints on fab layers", + default=False, + ), + ParserL2.Flag( + name="--sketch-DNP-footprints-on-fab-layers", + commands=[ + "--sdnp", + "--sketch-DNP-footprints-on-fab-layers", + ], + description="Plot graphics of DNP footprints in sketch mode on fab layers", + default=False, + ), + ParserL2.Flag( + name="--crossout-DNP-footprints-on-fab-layers", + commands=[ + "--cdnp", + "--crossout-DNP-footprints-on-fab-layers", + ], + description="Plot an 'X' over the courtyard of DNP footprints on fab layers, and strikeout their reference designators", + default=False, + ), + ParserL2.Flag( + name="--fit-page-to-board", + commands=["--fit-page-to-board"], + description="Fit the page to the board", + default=False, + ), + ParserL2.Flag( + name="--exclude-drawing-sheet", + commands=["--exclude-drawing-sheet"], + description="No drawing sheet", + default=False, + ), + ParserL2.Flag( + name="--mode-single", + commands=["--mode-single"], + description="Generates a single file with the output arg path acting as the complete directory and filename path. COMMON_LAYER_LIST does not function in this mode. Instead LAYER_LIST controls all layers plotted.", + default=False, + ), + ParserL2.Flag( + name="--mode-multi", + commands=["--mode-multi"], + description="Generates one or more files with behavior similar to the KiCad GUI plotting. The given output path specifies a directory in which files may be output.", + default=False, + ), + ParserL2.Flag( + name="--check-zones", + commands=["--check-zones"], + description="Check and refill zones if required", + default=False, + ), + ], + subcommands=[], + ), + ParserL2.Command( + name="u3d", + description="Export U3D", + args=[ + ParserL2.Argument( + name="INPUT_FILE", + description="Input file", + arg_description="INPUT_FILE", + required=True, + ), + ParserL2.Argument( + name="--output", + description='Output file [nargs=0..1] [default: ""]', + arg_description="OUTPUT_FILE", + required=False, + ), + ParserL2.Argument( + name="--define-var", + description="Overrides or adds project variables, can be used multiple times to declare multiple variables.", + arg_description="KEY=VALUE", + required=False, + ), + ParserL2.Argument( + name="--variant", + description="The variant name(s) to output, can be used multiple times to specify multiple variants.", + arg_description="VAR", + required=False, + ), + ParserL2.Argument( + name="--component-filter", + description='Only include component 3D models matching this list of reference designators (comma-separated, wildcards supported) [nargs=0..1] [default: ""]', + arg_description="VAR", + required=False, + ), + ParserL2.Argument( + name="--min-distance", + description='Minimum distance between points to treat them as separate ones [nargs=0..1] [default: "0.01mm"]', + arg_description="MIN_DIST", + required=False, + ), + ParserL2.Argument( + name="--net-filter", + description='Only include copper items belonging to nets matching this wildcard [nargs=0..1] [default: ""]', + arg_description="VAR", + required=False, + ), + ParserL2.Argument( + name="--user-origin", + description='User-specified output origin ex. 1x1in, 1x1inch, 25.4x25.4mm (default unit mm) [nargs=0..1] [default: ""]', + arg_description="VAR", required=False, ), ], @@ -2279,90 +3071,117 @@ default=False, ), ParserL2.Flag( - name="--subtract-soldermask", - commands=["--subtract-soldermask"], - description="Subtract soldermask from silkscreen", + name="--force", + commands=["-f", "--force"], + description="Overwrite output file", + default=False, + ), + ParserL2.Flag( + name="--no-unspecified", + commands=["--no-unspecified"], + description="Exclude 3D models for components with 'Unspecified' footprint type", + default=False, + ), + ParserL2.Flag( + name="--no-dnp", + commands=["--no-dnp"], + description="Exclude 3D models for components with 'Do not populate' attribute", + default=False, + ), + ParserL2.Flag( + name="--grid-origin", + commands=["--grid-origin"], + description="Use Grid Origin for output origin", + default=False, + ), + ParserL2.Flag( + name="--drill-origin", + commands=["--drill-origin"], + description="Use Drill Origin for output origin", + default=False, + ), + ParserL2.Flag( + name="--subst-models", + commands=["--subst-models"], + description="Substitute STEP or IGS models with the same name in place of VRML models", + default=False, + ), + ParserL2.Flag( + name="--board-only", + commands=["--board-only"], + description="Only generate a board with no components", default=False, ), ParserL2.Flag( - name="--mirror", - commands=["-m", "--mirror"], - description="Mirror the board (useful for trying to show bottom layers)", + name="--cut-vias-in-body", + commands=["--cut-vias-in-body"], + description="Cut via holes in board body even if conductor layers are not exported.", default=False, ), ParserL2.Flag( - name="--negative", - commands=["-n", "--negative"], - description="Plot as negative (useful for directly etching from the export)", + name="--no-board-body", + commands=["--no-board-body"], + description="Exclude board body", default=False, ), ParserL2.Flag( - name="--black-and-white", - commands=["--black-and-white"], - description="Black and white only", + name="--no-components", + commands=["--no-components"], + description="Exclude 3D models for components", default=False, ), ParserL2.Flag( - name="--sketch-pads-on-fab-layers", - commands=["--sp", "--sketch-pads-on-fab-layers"], - description="Draw pad outlines and their numbers on front and back fab layers", + name="--include-tracks", + commands=["--include-tracks"], + description="Export tracks and vias", default=False, ), ParserL2.Flag( - name="--hide-DNP-footprints-on-fab-layers", - commands=[ - "--hdnp", - "--hide-DNP-footprints-on-fab-layers", - ], - description="Don't plot text & graphics of DNP footprints on fab layers", + name="--include-pads", + commands=["--include-pads"], + description="Export pads", default=False, ), ParserL2.Flag( - name="--sketch-DNP-footprints-on-fab-layers", - commands=[ - "--sdnp", - "--sketch-DNP-footprints-on-fab-layers", - ], - description="Plot graphics of DNP footprints in sketch mode on fab layers", + name="--include-zones", + commands=["--include-zones"], + description="Export zones", default=False, ), ParserL2.Flag( - name="--crossout-DNP-footprints-on-fab-layers", - commands=[ - "--cdnp", - "--crossout-DNP-footprints-on-fab-layers", - ], - description="Plot an 'X' over the courtyard of DNP footprints on fab layers, and strikeout their reference designators", + name="--include-inner-copper", + commands=["--include-inner-copper"], + description="Export elements on inner copper layers", default=False, ), ParserL2.Flag( - name="--fit-page-to-board", - commands=["--fit-page-to-board"], - description="Fit the page to the board", + name="--include-silkscreen", + commands=["--include-silkscreen"], + description="Export silkscreen graphics as a set of flat faces", default=False, ), ParserL2.Flag( - name="--exclude-drawing-sheet", - commands=["--exclude-drawing-sheet"], - description="No drawing sheet", + name="--include-soldermask", + commands=["--include-soldermask"], + description="Export soldermask layers as a set of flat faces", default=False, ), ParserL2.Flag( - name="--mode-single", - commands=["--mode-single"], - description="Generates a single file with the output arg path acting as the complete directory and filename path. COMMON_LAYER_LIST does not function in this mode. Instead LAYER_LIST controls all layers plotted.", + name="--fuse-shapes", + commands=["--fuse-shapes"], + description="Fuse overlapping geometry together", default=False, ), ParserL2.Flag( - name="--mode-multi", - commands=["--mode-multi"], - description="Generates one or more files with behavior similar to the KiCad GUI plotting. The given output path specifies a directory in which files may be output.", + name="--fill-all-vias", + commands=["--fill-all-vias"], + description="Don't cut via holes in conductor layers.", default=False, ), ParserL2.Flag( - name="--plot-invisible-text", - commands=["--plot-invisible-text"], - description="Deprecated. Has no effect.", + name="--no-extra-pad-thickness", + commands=["--no-extra-pad-thickness"], + description="Disable extra pad thickness (pads will have normal thickness)", default=False, ), ], @@ -2390,6 +3209,12 @@ arg_description="KEY=VALUE", required=False, ), + ParserL2.Argument( + name="--variant", + description="The variant name(s) to output, can be used multiple times to specify multiple variants.", + arg_description="VAR", + required=False, + ), ParserL2.Argument( name="--user-origin", description='User-specified output origin ex. 1x1in, 1x1inch, 25.4x25.4mm (default unit mm) [nargs=0..1] [default: ""]', @@ -2465,6 +3290,12 @@ arg_description="KEY=VALUE", required=False, ), + ParserL2.Argument( + name="--variant", + description="The variant name(s) to output, can be used multiple times to specify multiple variants.", + arg_description="VAR", + required=False, + ), ParserL2.Argument( name="--component-filter", description='Only include component 3D models matching this list of reference designators (comma-separated, wildcards supported) [nargs=0..1] [default: ""]', @@ -2605,11 +3436,62 @@ description="Don't cut via holes in conductor layers.", default=False, ), + ParserL2.Flag( + name="--no-extra-pad-thickness", + commands=["--no-extra-pad-thickness"], + description="Disable extra pad thickness (pads will have normal thickness)", + default=False, + ), ], subcommands=[], ), ], ), + ParserL2.Command( + name="import", + description="Import a non-KiCad PCB file to KiCad format", + args=[ + ParserL2.Argument( + name="INPUT_FILE", + description="Input file", + arg_description="INPUT_FILE", + required=True, + ), + ParserL2.Argument( + name="--output", + description='Output file [nargs=0..1] [default: ""]', + arg_description="OUTPUT_FILE", + required=False, + ), + ParserL2.Argument( + name="--format", + description='Input format hint: auto, pads, altium, eagle, cadstar, fabmaster, pcad, solidworks (default: auto) [nargs=0..1] [default: "auto"]', + arg_description="FORMAT", + required=False, + ), + ParserL2.Argument( + name="--report-format", + description='Import report format: none, json, text (default: none) [nargs=0..1] [default: "none"]', + arg_description="FORMAT", + required=False, + ), + ParserL2.Argument( + name="--report-file", + description='File path for import report (default: stdout) [nargs=0..1] [default: ""]', + arg_description="FILE", + required=False, + ), + ], + flags=[ + ParserL2.Flag( + name="--help", + commands=["-h", "--help"], + description="Shows help message and exits", + default=False, + ) + ], + subcommands=[], + ), ParserL2.Command( name="render", description="Renders the PCB in 3D view to PNG or JPEG image", @@ -2658,16 +3540,22 @@ ), ParserL2.Argument( name="--quality", - description='Render quality. Options: basic, high, user [nargs=0..1] [default: "basic"]', + description='Render quality. Options: basic, high, user, job_settings [nargs=0..1] [default: "basic"]', arg_description="QUALITY", required=False, ), ParserL2.Argument( name="--preset", - description='Color preset. Options: follow_pcb_editor, follow_plot_settings, legacy_preset_flag, ... [nargs=0..1] [default: "follow_plot_settings"]', + description='Appearance preset. Options: follow_pcb_editor, follow_plot_settings, or user-defined preset name [nargs=0..1] [default: "follow_plot_settings"]', arg_description="PRESET", required=False, ), + ParserL2.Argument( + name="--use-board-stackup-colors", + description="Colors defined in board stackup override those in preset [nargs=0..1] [default: true]", + arg_description="VAR", + required=False, + ), ParserL2.Argument( name="--zoom", description="Camera zoom [nargs=0..1] [default: 1]", @@ -2733,7 +3621,7 @@ ParserL2.Flag( name="--floor", commands=["--floor"], - description="Enables floor, shadows and post-processing, even if disabled in quality preset", + description="Enables floor, shadows and post-processing, even if disabled in quality setting", default=False, ), ParserL2.Flag( @@ -2745,6 +3633,33 @@ ], subcommands=[], ), + ParserL2.Command( + name="upgrade", + description="Upgrade the board file's format to the latest one", + args=[ + ParserL2.Argument( + name="INPUT_FILE", + description="Input file", + arg_description="INPUT_FILE", + required=True, + ) + ], + flags=[ + ParserL2.Flag( + name="--help", + commands=["-h", "--help"], + description="Shows help message and exits", + default=False, + ), + ParserL2.Flag( + name="--force", + commands=["--force"], + description="Forces the board file to be resaved regardless of versioning", + default=False, + ), + ], + subcommands=[], + ), ], ), ParserL2.Command( @@ -2864,6 +3779,12 @@ arg_description="OUTPUT_FILE", required=False, ), + ParserL2.Argument( + name="--variant", + description="The variant name(s) to output, can be used multiple times to specify multiple variants.", + arg_description="VAR", + required=False, + ), ParserL2.Argument( name="--preset", description='Use a named BOM preset setting from the schematic, e.g. "Grouped By Value". [nargs=0..1] [default: ""]', @@ -2878,7 +3799,7 @@ ), ParserL2.Argument( name="--fields", - description='An ordered list of fields to export. See documentation for special substitutions. [nargs=0..1] [default: "Reference,Value,Footprint,${QUANTITY},${DNP}"]', + description='An ordered list of fields to export. Generated fields such as QUANTITY, ITEM_NUMBER, DNP, EXCLUDE_FROM_BOM, EXCLUDE_FROM_BOARD, and EXCLUDE_FROM_SIM can be specified with or without ${} delimiters. [nargs=0..1] [default: "Reference,Value,Footprint,QUANTITY,DNP"]', arg_description="FIELDS", required=False, ), @@ -2900,6 +3821,12 @@ arg_description="SORT_BY", required=False, ), + ParserL2.Argument( + name="--sort-asc", + description="Sort ascending (true) or descending (false). [nargs=0..1] [default: true]", + arg_description="VAR", + required=False, + ), ParserL2.Argument( name="--filter", description='Filter string to remove output lines. [nargs=0..1] [default: ""]', @@ -2938,12 +3865,6 @@ description="Shows help message and exits", default=False, ), - ParserL2.Flag( - name="--sort-asc", - commands=["--sort-asc"], - description="Sort ascending (true) or descending (false).", - default=False, - ), ParserL2.Flag( name="--exclude-dnp", commands=["--exclude-dnp"], @@ -2953,7 +3874,7 @@ ParserL2.Flag( name="--include-excluded-from-bom", commands=["--include-excluded-from-bom"], - description="Include symbols marked 'Exclude from BOM'.", + description="Deprecated. Has no effect.", default=False, ), ParserL2.Flag( @@ -2999,6 +3920,12 @@ arg_description="KEY=VALUE", required=False, ), + ParserL2.Argument( + name="--variant", + description="The variant name(s) to output, can be used multiple times to specify multiple variants.", + arg_description="VAR", + required=False, + ), ParserL2.Argument( name="--theme", description='Color theme to use (will default to schematic settings) [nargs=0..1] [default: ""]', @@ -3007,7 +3934,7 @@ ), ParserL2.Argument( name="--default-font", - description='Default font name [nargs=0..1] [default: "KiCad Font"]', + description='Default font name [nargs=0..1] [default: ""]', arg_description="VAR", required=False, ), @@ -3037,6 +3964,12 @@ description="No drawing sheet", default=False, ), + ParserL2.Flag( + name="--draw-hop-over", + commands=["--draw-hop-over"], + description="Draw hop over at wire crossings", + default=False, + ), ], subcommands=[], ), @@ -3068,9 +4001,21 @@ arg_description="KEY=VALUE", required=False, ), + ParserL2.Argument( + name="--variant", + description="The variant name(s) to output, can be used multiple times to specify multiple variants.", + arg_description="VAR", + required=False, + ), + ParserL2.Argument( + name="--theme", + description='Color theme to use (will default to schematic settings) [nargs=0..1] [default: ""]', + arg_description="THEME_NAME", + required=False, + ), ParserL2.Argument( name="--default-font", - description='Default font name [nargs=0..1] [default: "KiCad Font"]', + description='Default font name [nargs=0..1] [default: ""]', arg_description="VAR", required=False, ), @@ -3082,13 +4027,13 @@ ), ParserL2.Argument( name="--pen-size", - description="Pen size [mm] [nargs=0..1] [default: 0.5]", + description="Deprecated. Has no effect. [nargs=0..1] [default: 0.5]", arg_description="PEN_SIZE", required=False, ), ParserL2.Argument( name="--origin", - description="Origin and scale: 0 bottom left, 1 centered, 2 page fit, 3 content fit [nargs=0..1] [default: 1]", + description="Deprecated. Has no effect. [nargs=0..1] [default: 1]", arg_description="ORIGIN", required=False, ), @@ -3100,12 +4045,24 @@ description="Shows help message and exits", default=False, ), + ParserL2.Flag( + name="--black-and-white", + commands=["-b", "--black-and-white"], + description="Black and white only", + default=False, + ), ParserL2.Flag( name="--exclude-drawing-sheet", commands=["-e", "--exclude-drawing-sheet"], description="No drawing sheet", default=False, ), + ParserL2.Flag( + name="--draw-hop-over", + commands=["--draw-hop-over"], + description="Draw hop over at wire crossings", + default=False, + ), ], subcommands=[], ), @@ -3125,6 +4082,12 @@ arg_description="OUTPUT_FILE", required=False, ), + ParserL2.Argument( + name="--variant", + description="The variant name(s) to output, can be used multiple times to specify multiple variants.", + arg_description="VAR", + required=False, + ), ParserL2.Argument( name="--format", description='Netlist output format, valid options: kicadsexpr, kicadxml, cadstar, orcadpcb2, spice, spicemodel, pads, allegro [nargs=0..1] [default: "kicadsexpr"]', @@ -3170,6 +4133,12 @@ arg_description="KEY=VALUE", required=False, ), + ParserL2.Argument( + name="--variant", + description="The variant name(s) to output, can be used multiple times to specify multiple variants.", + arg_description="VAR", + required=False, + ), ParserL2.Argument( name="--theme", description='Color theme to use (will default to schematic settings) [nargs=0..1] [default: ""]', @@ -3178,7 +4147,7 @@ ), ParserL2.Argument( name="--default-font", - description='Default font name [nargs=0..1] [default: "KiCad Font"]', + description='Default font name [nargs=0..1] [default: ""]', arg_description="VAR", required=False, ), @@ -3208,6 +4177,12 @@ description="No drawing sheet", default=False, ), + ParserL2.Flag( + name="--draw-hop-over", + commands=["--draw-hop-over"], + description="Draw hop over at wire crossings", + default=False, + ), ParserL2.Flag( name="--exclude-pdf-property-popups", commands=["--exclude-pdf-property-popups"], @@ -3263,6 +4238,12 @@ arg_description="KEY=VALUE", required=False, ), + ParserL2.Argument( + name="--variant", + description="The variant name(s) to output, can be used multiple times to specify multiple variants.", + arg_description="VAR", + required=False, + ), ParserL2.Argument( name="--theme", description='Color theme to use (will default to schematic settings) [nargs=0..1] [default: ""]', @@ -3271,7 +4252,7 @@ ), ParserL2.Argument( name="--default-font", - description='Default font name [nargs=0..1] [default: "KiCad Font"]', + description='Default font name [nargs=0..1] [default: ""]', arg_description="VAR", required=False, ), @@ -3301,6 +4282,12 @@ description="No drawing sheet", default=False, ), + ParserL2.Flag( + name="--draw-hop-over", + commands=["--draw-hop-over"], + description="Draw hop over at wire crossings", + default=False, + ), ParserL2.Flag( name="--no-background-color", commands=["-n", "--no-background-color"], @@ -3365,6 +4352,12 @@ arg_description="KEY=VALUE", required=False, ), + ParserL2.Argument( + name="--variant", + description="The variant name(s) to output, can be used multiple times to specify multiple variants.", + arg_description="VAR", + required=False, + ), ParserL2.Argument( name="--theme", description='Color theme to use (will default to schematic settings) [nargs=0..1] [default: ""]', @@ -3373,7 +4366,7 @@ ), ParserL2.Argument( name="--default-font", - description='Default font name [nargs=0..1] [default: "KiCad Font"]', + description='Default font name [nargs=0..1] [default: ""]', arg_description="VAR", required=False, ), @@ -3403,6 +4396,12 @@ description="No drawing sheet", default=False, ), + ParserL2.Flag( + name="--draw-hop-over", + commands=["--draw-hop-over"], + description="Draw hop over at wire crossings", + default=False, + ), ParserL2.Flag( name="--no-background-color", commands=["-n", "--no-background-color"], @@ -3414,6 +4413,33 @@ ), ], ), + ParserL2.Command( + name="upgrade", + description="Upgrade the schematic file's format to the latest one", + args=[ + ParserL2.Argument( + name="INPUT_FILE", + description="Input file", + arg_description="INPUT_FILE", + required=True, + ) + ], + flags=[ + ParserL2.Flag( + name="--help", + commands=["-h", "--help"], + description="Shows help message and exits", + default=False, + ), + ParserL2.Flag( + name="--force", + commands=["--force"], + description="Forces the schematic file to be resaved regardless of versioning", + default=False, + ), + ], + subcommands=[], + ), ], ), ParserL2.Command( @@ -3506,15 +4532,15 @@ description="Upgrades the symbol library to the current kicad version format", args=[ ParserL2.Argument( - name="INPUT_FILE", - description="Input file", - arg_description="INPUT_FILE", + name="INPUT_FILE_OR_DIR", + description="Input file or directory", + arg_description="INPUT_FILE_OR_DIR", required=True, ), ParserL2.Argument( name="--output", - description='Output file [nargs=0..1] [default: ""]', - arg_description="OUTPUT_FILE", + description='Output file or directory [nargs=0..1] [default: ""]', + arg_description="OUTPUT_FILE_OR_DIR", required=False, ), ], diff --git a/src/kicadcliwrapper/lib.py b/src/kicadcliwrapper/lib.py index bd770dc..9ae7fa3 100644 --- a/src/kicadcliwrapper/lib.py +++ b/src/kicadcliwrapper/lib.py @@ -52,7 +52,12 @@ class Command: def sanitize_name(name: str) -> str: - return re.sub(r"[^a-zA-Z0-9]", "_", name) + import keyword + + clean_name = re.sub(r"[^a-zA-Z0-9]", "_", name) + if clean_name[0].isdigit() or keyword.iskeyword(clean_name): + clean_name = "_" + clean_name + return clean_name def sanitize_flag_arg_name(name: str, l2_command: ParserL2.Command) -> str: