From 75059b7b860f5a322d9234651648125ee845b6e3 Mon Sep 17 00:00:00 2001 From: "Salvador E. Tropea" Date: Thu, 14 Jan 2021 10:40:59 -0300 Subject: [PATCH] Added gerber and drill examples for various manufacturers. From KiCad Gerber Zipper. --- CHANGELOG.md | 6 +++ README.md | 11 +++++ debian/docs | 5 +- docs/README.in | 11 +++++ docs/samples/Elecrow.kibot.yaml | 48 +++++++++++++++++++ docs/samples/Elecrow_stencil.kibot.yaml | 50 ++++++++++++++++++++ docs/samples/FusionPCB.kibot.yaml | 48 +++++++++++++++++++ docs/samples/JLCPCB.kibot.yaml | 54 ++++++++++++++++++++++ docs/samples/JLCPCB_stencil.kibot.yaml | 47 +++++++++++++++++++ docs/samples/P-Ban.kibot.yaml | 61 +++++++++++++++++++++++++ docs/samples/PCBWay.kibot.yaml | 53 +++++++++++++++++++++ 11 files changed, 390 insertions(+), 4 deletions(-) create mode 100644 docs/samples/Elecrow.kibot.yaml create mode 100644 docs/samples/Elecrow_stencil.kibot.yaml create mode 100644 docs/samples/FusionPCB.kibot.yaml create mode 100644 docs/samples/JLCPCB.kibot.yaml create mode 100644 docs/samples/JLCPCB_stencil.kibot.yaml create mode 100644 docs/samples/P-Ban.kibot.yaml create mode 100644 docs/samples/PCBWay.kibot.yaml diff --git a/CHANGELOG.md b/CHANGELOG.md index 272ac28b..4945b09d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - More control over the name of the drill and gerber files. - More options to customize the excellon output. - Custom reports for plot outputs (i.e. custom gerber job generation) +- Example configurations for gerber and drill files for: + - [Elecrow](https://www.elecrow.com/) + - [FusionPCB](https://www.seeedstudio.io/fusion.html) + - [JLCPCB](https://jlcpcb.com/) + - [P-Ban](https://www.p-ban.com/) + - [PCBWay](https://www.pcbway.com) ### Changed - Now the default output name applies to the DRC and ERC report names. diff --git a/README.md b/README.md index 97726f8f..279e27de 100644 --- a/README.md +++ b/README.md @@ -1592,6 +1592,16 @@ If your manufacturer has problems with your files check the following: * Use arcaic role mechanism (`use_protel_extensions` set to `true`) * Disable **aperture macros** (KiCad 6 only: `disable_aperture_macros` set to `true`) +The [kicad-gerberzipper](https://github.com/g200kg/kicad-gerberzipper) is an action plugin for KiCad oriented to help to generate gerber and drill files for some manufacturers. +I adapted the configurations from kicad-gerberzipper to KiBot configurations, you can find them in the `docs/samples/` directory. +They include support for: + +- [Elecrow](https://www.elecrow.com/) +- [FusionPCB](https://www.seeedstudio.io/fusion.html) +- [JLCPCB](https://jlcpcb.com/) +- [P-Ban](https://www.p-ban.com/) +- [PCBWay](https://www.pcbway.com) + ## Notes about the position file @@ -1813,6 +1823,7 @@ The internal list of rotations is: - **KiBoM**: Oliver Henry Walters (@SchrodingersGat) - **Interactive HTML BoM**: @qu1ck - **PcbDraw**: Jan Mrázek (@yaqwsx) +- **KiCad Gerber Zipper**: @g200kg - **Contributors**: - **Error filters ideas**: Leandro Heck (@leoheck) - **GitHub Actions Integration/SVG output**: @nerdyscout diff --git a/debian/docs b/debian/docs index 62c69160..2d260676 100644 --- a/debian/docs +++ b/debian/docs @@ -1,5 +1,2 @@ README.md -docs/samples/example_1.kibot.yaml -docs/samples/generic_plot.kibot.yaml -docs/samples/ardu_prog.kibot.yaml - +docs/samples/*.kibot.yaml diff --git a/docs/README.in b/docs/README.in index 0ae25967..a2fd0dec 100644 --- a/docs/README.in +++ b/docs/README.in @@ -710,6 +710,16 @@ If your manufacturer has problems with your files check the following: * Use arcaic role mechanism (`use_protel_extensions` set to `true`) * Disable **aperture macros** (KiCad 6 only: `disable_aperture_macros` set to `true`) +The [kicad-gerberzipper](https://github.com/g200kg/kicad-gerberzipper) is an action plugin for KiCad oriented to help to generate gerber and drill files for some manufacturers. +I adapted the configurations from kicad-gerberzipper to KiBot configurations, you can find them in the `docs/samples/` directory. +They include support for: + +- [Elecrow](https://www.elecrow.com/) +- [FusionPCB](https://www.seeedstudio.io/fusion.html) +- [JLCPCB](https://jlcpcb.com/) +- [P-Ban](https://www.p-ban.com/) +- [PCBWay](https://www.pcbway.com) + ## Notes about the position file @@ -931,6 +941,7 @@ The internal list of rotations is: - **KiBoM**: Oliver Henry Walters (@SchrodingersGat) - **Interactive HTML BoM**: @qu1ck - **PcbDraw**: Jan Mrázek (@yaqwsx) +- **KiCad Gerber Zipper**: @g200kg - **Contributors**: - **Error filters ideas**: Leandro Heck (@leoheck) - **GitHub Actions Integration/SVG output**: @nerdyscout diff --git a/docs/samples/Elecrow.kibot.yaml b/docs/samples/Elecrow.kibot.yaml new file mode 100644 index 00000000..48ec8bdb --- /dev/null +++ b/docs/samples/Elecrow.kibot.yaml @@ -0,0 +1,48 @@ +# Gerber and drill files for Elecrow, without stencil +# URL: https://www.elecrow.com/ +# Based on setting used by Gerber Zipper (https://github.com/g200kg/kicad-gerberzipper) +kibot: + version: 1 + +outputs: + - name: gerbers + comment: Gerbers with names compatible with KiCad + type: gerber + dir: Elecrow + options: &gerber_options + exclude_edge_layer: true + exclude_pads_from_silkscreen: true + plot_sheet_reference: false + plot_footprint_refs: true + plot_footprint_values: true + force_plot_invisible_refs_vals: false + tent_vias: true + use_protel_extensions: true + create_gerber_job_file: false + output: "%f.%x" + gerber_precision: 4.6 + use_gerber_x2_attributes: false + use_gerber_net_attributes: false + disable_aperture_macros: true + line_width: 0.1 + uppercase_extensions: true + subtract_mask_from_silk: true + inner_extension_pattern: '.g%n' + edge_cut_extension: '.gml' + layers: + - copper + - F.SilkS + - B.SilkS + - F.Mask + - B.Mask + - Edge.Cuts + + - name: drill + comment: Drill files + type: excellon + dir: Elecrow + options: + pth_and_npth_single_file: false + pth_id: '' + npth_id: '-NPTH' + output: "%f%i.TXT" diff --git a/docs/samples/Elecrow_stencil.kibot.yaml b/docs/samples/Elecrow_stencil.kibot.yaml new file mode 100644 index 00000000..33d22f58 --- /dev/null +++ b/docs/samples/Elecrow_stencil.kibot.yaml @@ -0,0 +1,50 @@ +# Gerber and drill files for Elecrow, with stencil (solder paste) +# URL: https://www.elecrow.com/ +# Based on setting used by Gerber Zipper (https://github.com/g200kg/kicad-gerberzipper) +kibot: + version: 1 + +outputs: + - name: gerbers + comment: Gerbers with names compatible with KiCad + type: gerber + dir: Elecrow + options: &gerber_options + exclude_edge_layer: true + exclude_pads_from_silkscreen: true + plot_sheet_reference: false + plot_footprint_refs: true + plot_footprint_values: true + force_plot_invisible_refs_vals: false + tent_vias: true + use_protel_extensions: true + create_gerber_job_file: false + output: "%f.%x" + gerber_precision: 4.6 + use_gerber_x2_attributes: false + use_gerber_net_attributes: false + disable_aperture_macros: true + line_width: 0.1 + uppercase_extensions: true + subtract_mask_from_silk: true + inner_extension_pattern: '.g%n' + edge_cut_extension: '.gml' + layers: + - copper + - F.SilkS + - B.SilkS + - F.Mask + - B.Mask + - F.Paste + - B.Paste + - Edge.Cuts + + - name: drill + comment: Drill files + type: excellon + dir: Elecrow + options: + pth_and_npth_single_file: false + pth_id: '' + npth_id: '-NPTH' + output: "%f%i.TXT" diff --git a/docs/samples/FusionPCB.kibot.yaml b/docs/samples/FusionPCB.kibot.yaml new file mode 100644 index 00000000..c19e9206 --- /dev/null +++ b/docs/samples/FusionPCB.kibot.yaml @@ -0,0 +1,48 @@ +# Gerber and drill files for FusionPCB, without stencil +# URL: https://www.seeedstudio.io/fusion.html +# Based on setting used by Gerber Zipper (https://github.com/g200kg/kicad-gerberzipper) +kibot: + version: 1 + +outputs: + - name: gerbers + comment: Gerbers with names compatible with KiCad + type: gerber + dir: FusionPCB + options: &gerber_options + exclude_edge_layer: true + exclude_pads_from_silkscreen: true + plot_sheet_reference: false + plot_footprint_refs: true + plot_footprint_values: true + force_plot_invisible_refs_vals: false + tent_vias: true + use_protel_extensions: true + create_gerber_job_file: false + output: "%f.%x" + gerber_precision: 4.6 + use_gerber_x2_attributes: false + use_gerber_net_attributes: false + disable_aperture_macros: true + line_width: 0.1 + uppercase_extensions: true + subtract_mask_from_silk: false + use_aux_axis_as_origin: true + inner_extension_pattern: '.gl%N' + edge_cut_extension: '.gml' + layers: + - copper + - F.SilkS + - B.SilkS + - F.Mask + - B.Mask + - Edge.Cuts + + - name: drill + comment: Drill files + type: excellon + dir: FusionPCB + options: + pth_and_npth_single_file: true + use_aux_axis_as_origin: true + output: "%f.TXT" diff --git a/docs/samples/JLCPCB.kibot.yaml b/docs/samples/JLCPCB.kibot.yaml new file mode 100644 index 00000000..ef4dd337 --- /dev/null +++ b/docs/samples/JLCPCB.kibot.yaml @@ -0,0 +1,54 @@ +# 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 + +outputs: + - name: gerbers + comment: Gerbers with names compatible with KiCad + type: gerber + dir: JLCPCB + 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: + # Note: a more generic approach is to use 'copper' but then the filenames + # are slightly different. + - F.Cu + - B.Cu + - In1.Cu + - In2.Cu + - In3.Cu + - In4.Cu + - In5.Cu + - In6.Cu + - F.SilkS + - B.SilkS + - F.Mask + - B.Mask + - Edge.Cuts + + - name: drill + comment: Drill files + type: excellon + dir: JLCPCB + options: + pth_and_npth_single_file: false + pth_id: '-PTH' + npth_id: '-NPTH' + metric_units: false + output: "%f%i.%x" diff --git a/docs/samples/JLCPCB_stencil.kibot.yaml b/docs/samples/JLCPCB_stencil.kibot.yaml new file mode 100644 index 00000000..8f959d8c --- /dev/null +++ b/docs/samples/JLCPCB_stencil.kibot.yaml @@ -0,0 +1,47 @@ +# Gerber and drill files for JLCPCB, with stencil (solder paste) +# URL: https://jlcpcb.com/ +# Based on setting used by Gerber Zipper (https://github.com/g200kg/kicad-gerberzipper) +kibot: + version: 1 + +outputs: + - name: gerbers + comment: Gerbers with names compatible with KiCad + type: gerber + dir: JLCPCB + 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: + - copper + - F.SilkS + - B.SilkS + - F.Mask + - B.Mask + - F.Paste + - B.Paste + - Edge.Cuts + + - name: drill + comment: Drill files + type: excellon + dir: JLCPCB + options: + pth_and_npth_single_file: false + pth_id: '-PTH' + npth_id: '-NPTH' + metric_units: false + output: "%f%i.%x" diff --git a/docs/samples/P-Ban.kibot.yaml b/docs/samples/P-Ban.kibot.yaml new file mode 100644 index 00000000..3003bce2 --- /dev/null +++ b/docs/samples/P-Ban.kibot.yaml @@ -0,0 +1,61 @@ +# Gerber and drill files for P-Ban, without stencil +# URL: https://www.p-ban.com/ +# Based on setting used by Gerber Zipper (https://github.com/g200kg/kicad-gerberzipper) +kibot: + version: 1 + +outputs: + - name: gerbers + comment: Gerbers with names compatible with KiCad + type: gerber + dir: P-Ban + options: &gerber_options + exclude_edge_layer: true + exclude_pads_from_silkscreen: true + plot_sheet_reference: false + plot_footprint_refs: true + plot_footprint_values: true + force_plot_invisible_refs_vals: false + tent_vias: true + use_protel_extensions: true + create_gerber_job_file: false + gerber_precision: 4.6 + use_gerber_x2_attributes: true + use_gerber_net_attributes: false + line_width: 0.15 + subtract_mask_from_silk: false + inner_extension_pattern: '.gp%n' + custom_reports: + - output: '製造基準書.txt' + content: '部品面パターン : ${filename(F.Cu)}\r\n半田面パターン : ${filename(B.Cu)}\r\n内層パターン1 : ${filename(In1.Cu)}\r\n内層パターン2 : ${filename(In2.Cu)}\r\n内層パターン3 : ${filename(In3.Cu)}\r\n内層パターン4 : ${filename(In4.Cu)}\r\n内層パターン5 : ${filename(In5.Cu)}\r\n内層パターン6 : ${filename(In6.Cu)}\r\n部品面レジスト : ${filename(F.Mask)}\r\n半田面レジスト : ${filename(B.Mask)}\r\n部品面シルク : ${filename(F.SilkS)}\r\n半田面シルク : ${filename(B.SilkS)}\r\n基板外形 : ${filename(Edge.Cuts)}\r\n\nドリルデータ : ${basename}.drl\r\nドリルマップ : ${basename}-drl_map.gbr\r\nドリルリスト : ${basename}-drl.rpt\r\n' + layers: + # Note: a more generic approach is to use 'copper' but then the filenames + # are slightly different. + - F.Cu + - B.Cu + - In1.Cu + - In2.Cu + - In3.Cu + - In4.Cu + - In5.Cu + - In6.Cu + - F.SilkS + - B.SilkS + - F.Mask + - B.Mask + - Edge.Cuts + + - name: drill + comment: Drill files + type: excellon + dir: P-Ban + options: + pth_and_npth_single_file: true + map: + type: gerber + report: + filename: '%f-drl.rpt' + zeros_format: SUPPRESS_LEADING + left_digits: 3 + right_digits: 3 + output: "%f.drl" diff --git a/docs/samples/PCBWay.kibot.yaml b/docs/samples/PCBWay.kibot.yaml new file mode 100644 index 00000000..c8a2dbb3 --- /dev/null +++ b/docs/samples/PCBWay.kibot.yaml @@ -0,0 +1,53 @@ +# Gerber and drill files for PCBWay, with stencil (solder paste) +# URL: https://www.pcbway.com +# Based on setting used by Gerber Zipper (https://github.com/g200kg/kicad-gerberzipper) +kibot: + version: 1 + +outputs: + - name: gerbers + comment: Gerbers with names compatible with KiCad + type: gerber + dir: PCBWay + options: &gerber_options + exclude_edge_layer: true + exclude_pads_from_silkscreen: true + plot_sheet_reference: false + plot_footprint_refs: true + plot_footprint_values: true + force_plot_invisible_refs_vals: false + tent_vias: true + use_protel_extensions: true + create_gerber_job_file: false + output: "%f.%x" + gerber_precision: 4.6 + use_gerber_x2_attributes: false + use_gerber_net_attributes: false + disable_aperture_macros: true + line_width: 0.1 + subtract_mask_from_silk: false + inner_extension_pattern: '.gl%N' + layers: + - copper + - F.SilkS + - B.SilkS + - F.Mask + - B.Mask + - F.Paste + - B.Paste + - Edge.Cuts + + - name: drill + comment: Drill files + type: excellon + dir: PCBWay + options: + metric_units: false + minimal_header: true + zeros_format: SUPPRESS_LEADING + left_digits: 3 + right_digits: 3 + pth_and_npth_single_file: false + pth_id: '' + npth_id: '-NPTH' + output: "%f%i.drl"