From 5cb08fd0cf406b6aa7446ab12e35323c7a6b10b5 Mon Sep 17 00:00:00 2001 From: Dreaded_X Date: Sun, 6 Jun 2021 02:48:31 +0200 Subject: [PATCH] Automated production file generation using kibot --- .gitignore | 3 +- jlcpcb.kibot.yaml | 120 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 121 insertions(+), 2 deletions(-) create mode 100644 jlcpcb.kibot.yaml diff --git a/.gitignore b/.gitignore index db6ab17..91f0a51 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,4 @@ -Gerber/ -Gerber.zip +JLCPCB/ *.sch-bak fp-info-cache *.kicad_pcb-bak diff --git a/jlcpcb.kibot.yaml b/jlcpcb.kibot.yaml new file mode 100644 index 0000000..2b3cd7f --- /dev/null +++ b/jlcpcb.kibot.yaml @@ -0,0 +1,120 @@ +# Gerber and drill files for JLCPCB, without stencil +# URL: https://jlcpcb.com/ +# Based on setting used by Gerber Zipper (https://github.com/g200kg/kicad-gerberzipper) +kibot: + version: 1 + +filters: + - name: only_jlc_parts + comment: 'Only parts with JLC (LCSC) code' + type: generic + include_only: + - column: 'LCSC#' + regex: '^C\d+' + +variants: + - name: rotated + comment: 'Just a place holder for the rotation filter' + type: kibom + variant: rotated + pre_transform: _rot_footprint + +outputs: + - name: JLCPCB_gerbers + comment: Gerbers compatible with JLCPCB + type: gerber + dir: JLCPCB/Gerber + options: &gerber_options + exclude_edge_layer: true + exclude_pads_from_silkscreen: true + plot_sheet_reference: false + plot_footprint_refs: true + plot_footprint_values: false + force_plot_invisible_refs_vals: false + tent_vias: true + use_protel_extensions: false + create_gerber_job_file: false + disable_aperture_macros: true + gerber_precision: 4.6 + use_gerber_x2_attributes: false + use_gerber_net_attributes: false + line_width: 0.1 + subtract_mask_from_silk: true + layers: + - F.Cu + - B.Cu + - F.SilkS + - B.SilkS + - F.Mask + - B.Mask + - F.Paste + - B.Paste + - Edge.Cuts + + - name: JLCPCB_drill + comment: Drill files compatible with JLCPCB + type: excellon + dir: JLCPCB/Gerber + options: + pth_and_npth_single_file: false + pth_id: '-PTH' + npth_id: '-NPTH' + metric_units: false + output: "%f%i.%x" + + - name: JLCPCB + comment: ZIP file for JLCPCB + type: compress + dir: JLCPCB + options: + files: + - from_output: JLCPCB_gerbers + dest: / + - from_output: JLCPCB_drill + dest: / + + - name: 'JLCPCB_position' + comment: "Pick and place file, JLCPCB style" + type: position + dir: JLCPCB + options: + variant: rotated + output: '%f_cpl_jlc.%x' + format: CSV + units: millimeters + separate_files_for_front_and_back: false + only_smd: true + columns: + - id: Ref + name: Designator + - Val + - Package + - id: PosX + name: "Mid X" + - id: PosY + name: "Mid Y" + - id: Rot + name: Rotation + - id: Side + name: Layer + + - name: 'JLCPCB_bom' + comment: "BoM for JLCPCB" + type: bom + dir: JLCPCB + options: + output: '%f_%i_jlc.%x' + exclude_filter: 'only_jlc_parts' + ref_separator: ',' + columns: + - field: Value + name: Comment + - field: References + name: Designator + - Footprint + - field: 'LCSC#' + name: 'LCSC Part #' + csv: + hide_pcb_info: true + hide_stats_info: true + quote_all: true