[Internal Templates] Made manufacturers gerber layer parametrizable

- Also made JLCPCB_stencil more like JLCPCB
This commit is contained in:
Salvador E. Tropea 2023-06-14 08:20:42 -03:00
parent 9f507e61a0
commit 2a357364d4
10 changed files with 68 additions and 111 deletions

View File

@ -75,6 +75,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
effect the names of the git points are chnaged. This is because main/master effect the names of the git points are chnaged. This is because main/master
only applies to the main worktree. So the names now refer to the closest only applies to the main worktree. So the names now refer to the closest
tag. tag.
- JLCPCB_stencil: Is now just like JLCPCB. The only difference is the added
layers.
### Fixed ### Fixed
- KiCad v6/7 schematic: - KiCad v6/7 schematic:

View File

@ -5433,13 +5433,13 @@ They include support for:
- _Elecrow_drill: Drill files - _Elecrow_drill: Drill files
- _Elecrow_compress: Gerbers and drill files compressed in a ZIP - _Elecrow_compress: Gerbers and drill files compressed in a ZIP
- _Elecrow: _Elecrow_gerbers+_Elecrow_drill - _Elecrow: _Elecrow_gerbers+_Elecrow_drill
- Elecrow_stencil: same as Elecrow, but also generates gerbers for F.Paste and B.Paste layers. - [Elecrow_stencil](https://www.elecrow.com/): same as **Elecrow**, but also generates gerbers for F.Paste and B.Paste layers.
- [FusionPCB](https://www.seeedstudio.io/fusion.html): contain fabrication outputs compatible with FusionPCB - [FusionPCB](https://www.seeedstudio.io/fusion.html): contain fabrication outputs compatible with FusionPCB
- _FusionPCB_gerbers: Gerbers - _FusionPCB_gerbers: Gerbers
- _FusionPCB_drill: Drill files - _FusionPCB_drill: Drill files
- _FusionPCB_compress: Gerbers and drill files compressed in a ZIP - _FusionPCB_compress: Gerbers and drill files compressed in a ZIP
- _FusionPCB: _FusionPCB_gerbers+_FusionPCB_drill - _FusionPCB: _FusionPCB_gerbers+_FusionPCB_drill
- FusionPCB_stencil: same as FusionPCB, but also generates gerbers for F.Paste and B.Paste layers. - [FusionPCB_stencil](https://www.seeedstudio.io/fusion.html): same as **FusionPCB**, but also generates gerbers for F.Paste and B.Paste layers.
- [JLCPCB](https://jlcpcb.com/): contain fabrication outputs compatible with JLC PCB. Only SMD components. - [JLCPCB](https://jlcpcb.com/): contain fabrication outputs compatible with JLC PCB. Only SMD components.
Use the `field_lcsc_part` global option to specify the LCSC part number field if KiBot fails to detect it. Use the `field_lcsc_part` global option to specify the LCSC part number field if KiBot fails to detect it.
- _JLCPCB_gerbers: Gerbers. - _JLCPCB_gerbers: Gerbers.
@ -5450,16 +5450,7 @@ They include support for:
- _JLCPCB_fab: _JLCPCB_gerbers+_JLCPCB_drill - _JLCPCB_fab: _JLCPCB_gerbers+_JLCPCB_drill
- _JLCPCB_assembly: _JLCPCB_position+_JLCPCB_bom - _JLCPCB_assembly: _JLCPCB_position+_JLCPCB_bom
- _JLCPCB: _JLCPCB_fab+_JLCPCB_assembly - _JLCPCB: _JLCPCB_fab+_JLCPCB_assembly
- [JLCPCB_stencil](https://jlcpcb.com/): Derived from JLCPCB, adds solder paste gerbers for stencils. Only SMD components. - [JLCPCB_stencil](https://jlcpcb.com/): same as **JLCPCB**, but also generates gerbers for F.Paste and B.Paste layers.
- _JLCPCB_gerbers: Gerbers.
- _JLCPCB_gerbers_stencil: Gerbers for the solder paste stencils. Disabled by default.
- _JLCPCB_drill: Drill files
- _JLCPCB_position: Pick and place, applies the `_rot_footprint` filter. You can change this filter.
- _JLCPCB_bom: List of LCSC parts, assumes a field named `LCSC#` contains the LCSC codes. You can change this filter.
- _JLCPCB_compress: Gerbers, drill, position and BoM files compressed in a ZIP
- _JLCPCB_fab: _JLCPCB_gerbers+_JLCPCB_gerbers_stencil+_JLCPCB_drill
- _JLCPCB_assembly: _JLCPCB_position+_JLCPCB_bom
- _JLCPCB: _JLCPCB_fab+_JLCPCB_assembly
- [JLCPCB_with_THT](https://jlcpcb.com/): same as **JLCPCB**, but also including THT components. - [JLCPCB_with_THT](https://jlcpcb.com/): same as **JLCPCB**, but also including THT components.
- [JLCPCB_stencil_with_THT](https://jlcpcb.com/): same as **JLCPCB_stencil**, but also including THT components. - [JLCPCB_stencil_with_THT](https://jlcpcb.com/): same as **JLCPCB_stencil**, but also including THT components.
- [MacroFab_XYRS](https://help.macrofab.com/knowledge/macrofab-required-design-files): XYRS position file in MacroFab format - [MacroFab_XYRS](https://help.macrofab.com/knowledge/macrofab-required-design-files): XYRS position file in MacroFab format
@ -5468,7 +5459,7 @@ They include support for:
- _P-Ban_gerbers: Gerbers. You need to define the layers for more than 8. - _P-Ban_gerbers: Gerbers. You need to define the layers for more than 8.
- _P-Ban_drill: Drill files - _P-Ban_drill: Drill files
- _P-Ban: _P-Ban_gerbers+_P-Ban_drill - _P-Ban: _P-Ban_gerbers+_P-Ban_drill
- P-Ban_stencil: same as P-Ban, but also generates gerbers for F.Paste and B.Paste layers. - [P-Ban_stencil](https://www.p-ban.com/): same as **P-Ban**, but also generates gerbers for F.Paste and B.Paste layers.
- [PCB2Blender_2_1](https://github.com/30350n/pcb2blender) - [PCB2Blender_2_1](https://github.com/30350n/pcb2blender)
- _PCB2Blender_layers_2_1: The layers in SVG format. Disabled by default. - _PCB2Blender_layers_2_1: The layers in SVG format. Disabled by default.
- _PCB2Blender_vrml_2_1: The VRML for the board. Disabled by default. - _PCB2Blender_vrml_2_1: The VRML for the board. Disabled by default.
@ -5485,7 +5476,7 @@ They include support for:
- _PCBWay_drill: Drill files - _PCBWay_drill: Drill files
- _PCBWay_compress: Gerbers and drill files compressed in a ZIP - _PCBWay_compress: Gerbers and drill files compressed in a ZIP
- _PCBWay: _PCBWay_gerbers+_PCBWay_drill - _PCBWay: _PCBWay_gerbers+_PCBWay_drill
- PCBWay_stencil: same as PCBWay, but also generates gerbers for F.Paste and B.Paste layers. - [PCBWay_stencil](https://www.pcbway.com): same as **PCBWay**, but also generates gerbers for F.Paste and B.Paste layers.
#### Using other output as base for a new one #### Using other output as base for a new one

View File

@ -1314,13 +1314,13 @@ They include support for:
- _Elecrow_drill: Drill files - _Elecrow_drill: Drill files
- _Elecrow_compress: Gerbers and drill files compressed in a ZIP - _Elecrow_compress: Gerbers and drill files compressed in a ZIP
- _Elecrow: _Elecrow_gerbers+_Elecrow_drill - _Elecrow: _Elecrow_gerbers+_Elecrow_drill
- Elecrow_stencil: same as Elecrow, but also generates gerbers for F.Paste and B.Paste layers. - [Elecrow_stencil](https://www.elecrow.com/): same as **Elecrow**, but also generates gerbers for F.Paste and B.Paste layers.
- [FusionPCB](https://www.seeedstudio.io/fusion.html): contain fabrication outputs compatible with FusionPCB - [FusionPCB](https://www.seeedstudio.io/fusion.html): contain fabrication outputs compatible with FusionPCB
- _FusionPCB_gerbers: Gerbers - _FusionPCB_gerbers: Gerbers
- _FusionPCB_drill: Drill files - _FusionPCB_drill: Drill files
- _FusionPCB_compress: Gerbers and drill files compressed in a ZIP - _FusionPCB_compress: Gerbers and drill files compressed in a ZIP
- _FusionPCB: _FusionPCB_gerbers+_FusionPCB_drill - _FusionPCB: _FusionPCB_gerbers+_FusionPCB_drill
- FusionPCB_stencil: same as FusionPCB, but also generates gerbers for F.Paste and B.Paste layers. - [FusionPCB_stencil](https://www.seeedstudio.io/fusion.html): same as **FusionPCB**, but also generates gerbers for F.Paste and B.Paste layers.
- [JLCPCB](https://jlcpcb.com/): contain fabrication outputs compatible with JLC PCB. Only SMD components. - [JLCPCB](https://jlcpcb.com/): contain fabrication outputs compatible with JLC PCB. Only SMD components.
Use the `field_lcsc_part` global option to specify the LCSC part number field if KiBot fails to detect it. Use the `field_lcsc_part` global option to specify the LCSC part number field if KiBot fails to detect it.
- _JLCPCB_gerbers: Gerbers. - _JLCPCB_gerbers: Gerbers.
@ -1331,16 +1331,7 @@ They include support for:
- _JLCPCB_fab: _JLCPCB_gerbers+_JLCPCB_drill - _JLCPCB_fab: _JLCPCB_gerbers+_JLCPCB_drill
- _JLCPCB_assembly: _JLCPCB_position+_JLCPCB_bom - _JLCPCB_assembly: _JLCPCB_position+_JLCPCB_bom
- _JLCPCB: _JLCPCB_fab+_JLCPCB_assembly - _JLCPCB: _JLCPCB_fab+_JLCPCB_assembly
- [JLCPCB_stencil](https://jlcpcb.com/): Derived from JLCPCB, adds solder paste gerbers for stencils. Only SMD components. - [JLCPCB_stencil](https://jlcpcb.com/): same as **JLCPCB**, but also generates gerbers for F.Paste and B.Paste layers.
- _JLCPCB_gerbers: Gerbers.
- _JLCPCB_gerbers_stencil: Gerbers for the solder paste stencils. Disabled by default.
- _JLCPCB_drill: Drill files
- _JLCPCB_position: Pick and place, applies the `_rot_footprint` filter. You can change this filter.
- _JLCPCB_bom: List of LCSC parts, assumes a field named `LCSC#` contains the LCSC codes. You can change this filter.
- _JLCPCB_compress: Gerbers, drill, position and BoM files compressed in a ZIP
- _JLCPCB_fab: _JLCPCB_gerbers+_JLCPCB_gerbers_stencil+_JLCPCB_drill
- _JLCPCB_assembly: _JLCPCB_position+_JLCPCB_bom
- _JLCPCB: _JLCPCB_fab+_JLCPCB_assembly
- [JLCPCB_with_THT](https://jlcpcb.com/): same as **JLCPCB**, but also including THT components. - [JLCPCB_with_THT](https://jlcpcb.com/): same as **JLCPCB**, but also including THT components.
- [JLCPCB_stencil_with_THT](https://jlcpcb.com/): same as **JLCPCB_stencil**, but also including THT components. - [JLCPCB_stencil_with_THT](https://jlcpcb.com/): same as **JLCPCB_stencil**, but also including THT components.
- [MacroFab_XYRS](https://help.macrofab.com/knowledge/macrofab-required-design-files): XYRS position file in MacroFab format - [MacroFab_XYRS](https://help.macrofab.com/knowledge/macrofab-required-design-files): XYRS position file in MacroFab format
@ -1349,7 +1340,7 @@ They include support for:
- _P-Ban_gerbers: Gerbers. You need to define the layers for more than 8. - _P-Ban_gerbers: Gerbers. You need to define the layers for more than 8.
- _P-Ban_drill: Drill files - _P-Ban_drill: Drill files
- _P-Ban: _P-Ban_gerbers+_P-Ban_drill - _P-Ban: _P-Ban_gerbers+_P-Ban_drill
- P-Ban_stencil: same as P-Ban, but also generates gerbers for F.Paste and B.Paste layers. - [P-Ban_stencil](https://www.p-ban.com/): same as **P-Ban**, but also generates gerbers for F.Paste and B.Paste layers.
- [PCB2Blender_2_1](https://github.com/30350n/pcb2blender) - [PCB2Blender_2_1](https://github.com/30350n/pcb2blender)
- _PCB2Blender_layers_2_1: The layers in SVG format. Disabled by default. - _PCB2Blender_layers_2_1: The layers in SVG format. Disabled by default.
- _PCB2Blender_vrml_2_1: The VRML for the board. Disabled by default. - _PCB2Blender_vrml_2_1: The VRML for the board. Disabled by default.
@ -1366,7 +1357,7 @@ They include support for:
- _PCBWay_drill: Drill files - _PCBWay_drill: Drill files
- _PCBWay_compress: Gerbers and drill files compressed in a ZIP - _PCBWay_compress: Gerbers and drill files compressed in a ZIP
- _PCBWay: _PCBWay_gerbers+_PCBWay_drill - _PCBWay: _PCBWay_gerbers+_PCBWay_drill
- PCBWay_stencil: same as PCBWay, but also generates gerbers for F.Paste and B.Paste layers. - [PCBWay_stencil](https://www.pcbway.com): same as **PCBWay**, but also generates gerbers for F.Paste and B.Paste layers.
#### Using other output as base for a new one #### Using other output as base for a new one

View File

@ -641,6 +641,8 @@ class CfgYamlReader(object):
content, replaced = do_replace(k, v, content, replaced) content, replaced = do_replace(k, v, content, replaced)
if depth >= 20: if depth >= 20:
logger.error('Maximum depth of definition replacements reached, loop?') logger.error('Maximum depth of definition replacements reached, loop?')
if GS.debug_level > 3:
logger.debug('YAML after expanding definitions:\n'+content)
# Create an stream from the string # Create an stream from the string
fstream = io.StringIO(content) fstream = io.StringIO(content)
try: try:

View File

@ -36,12 +36,7 @@ outputs:
inner_extension_pattern: '.g%n' inner_extension_pattern: '.g%n'
edge_cut_extension: '.gml' edge_cut_extension: '.gml'
layers: layers:
- copper @_KIBOT_GERBER_LAYERS@
- F.SilkS
- B.SilkS
- F.Mask
- B.Mask
- Edge.Cuts
@_KIBOT_F_PASTE@ @_KIBOT_F_PASTE@
@_KIBOT_B_PASTE@ @_KIBOT_B_PASTE@
@ -70,3 +65,10 @@ outputs:
definitions: definitions:
_KIBOT_F_PASTE: '' _KIBOT_F_PASTE: ''
_KIBOT_B_PASTE: '' _KIBOT_B_PASTE: ''
_KIBOT_GERBER_LAYERS: |
- copper
- F.SilkS
- B.SilkS
- F.Mask
- B.Mask
- Edge.Cuts

View File

@ -37,12 +37,7 @@ outputs:
inner_extension_pattern: '.gl%N' inner_extension_pattern: '.gl%N'
edge_cut_extension: '.gml' edge_cut_extension: '.gml'
layers: layers:
- copper @_KIBOT_GERBER_LAYERS@
- F.SilkS
- B.SilkS
- F.Mask
- B.Mask
- Edge.Cuts
@_KIBOT_F_PASTE@ @_KIBOT_F_PASTE@
@_KIBOT_B_PASTE@ @_KIBOT_B_PASTE@
@ -70,3 +65,10 @@ outputs:
definitions: definitions:
_KIBOT_F_PASTE: '' _KIBOT_F_PASTE: ''
_KIBOT_B_PASTE: '' _KIBOT_B_PASTE: ''
_KIBOT_GERBER_LAYERS: |
- copper
- F.SilkS
- B.SilkS
- F.Mask
- B.Mask
- Edge.Cuts

View File

@ -49,12 +49,9 @@ outputs:
subtract_mask_from_silk: true subtract_mask_from_silk: true
inner_extension_pattern: '.g%n' inner_extension_pattern: '.g%n'
layers: layers:
- copper @_KIBOT_GERBER_LAYERS@
- F.SilkS @_KIBOT_F_PASTE@
- B.SilkS @_KIBOT_B_PASTE@
- F.Mask
- B.Mask
- Edge.Cuts
- name: _JLCPCB_drill - name: _JLCPCB_drill
comment: Drill files compatible with JLCPCB comment: Drill files compatible with JLCPCB
@ -133,3 +130,12 @@ outputs:
... ...
definitions: definitions:
_KIBOT_POS_ONLY_SMD: true _KIBOT_POS_ONLY_SMD: true
_KIBOT_F_PASTE: ''
_KIBOT_B_PASTE: ''
_KIBOT_GERBER_LAYERS: |
- copper
- F.SilkS
- B.SilkS
- F.Mask
- B.Mask
- Edge.Cuts

View File

@ -6,47 +6,6 @@ kibot:
import: import:
- file: JLCPCB - file: JLCPCB
outputs: definitions:
# We exclude the _JLCPCB_compress _KIBOT_F_PASTE: '- F.Paste'
- _JLCPCB_gerbers _KIBOT_B_PASTE: '- B.Paste'
- _JLCPCB_drill
- _JLCPCB_position
- _JLCPCB_bom
groups:
# We exlclude the _JLCPCB_fab
- _JLCPCB_assembly
- _JLCPCB
groups:
- name: _JLCPCB_fab
outputs:
- _JLCPCB_gerbers
- _JLCPCB_gerbers_stencil
- _JLCPCB_drill
outputs:
- name: _JLCPCB_gerbers_stencil
comment: Gerbers for the stencils compatible with JLCPCB
type: gerber
dir: JLCPCB
extends: _JLCPCB_gerbers
layers:
- F.Paste
- B.Paste
- name: _JLCPCB_compress
comment: ZIP file for JLCPCB
type: compress
dir: JLCPCB
options:
files:
- from_output: _JLCPCB_gerbers
dest: /
- from_output: _JLCPCB_gerbers_stencil
dest: /
- from_output: _JLCPCB_drill
dest: /
- from_output: _JLCPCB_position
dest: /
- from_output: _JLCPCB_bom
dest: /

View File

@ -37,19 +37,7 @@ outputs:
layers: layers:
# Note: a more generic approach is to use 'copper' but then the filenames # Note: a more generic approach is to use 'copper' but then the filenames
# are slightly different. # are slightly different.
- F.Cu @_KIBOT_GERBER_LAYERS@
- B.Cu
- In1.Cu
- In2.Cu
- In3.Cu
- In4.Cu
- In5.Cu
- In6.Cu
- F.SilkS
- B.SilkS
- F.Mask
- B.Mask
- Edge.Cuts
@_KIBOT_F_PASTE@ @_KIBOT_F_PASTE@
@_KIBOT_B_PASTE@ @_KIBOT_B_PASTE@
@ -83,3 +71,17 @@ outputs:
definitions: definitions:
_KIBOT_F_PASTE: '' _KIBOT_F_PASTE: ''
_KIBOT_B_PASTE: '' _KIBOT_B_PASTE: ''
_KIBOT_GERBER_LAYERS: |
- 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

View File

@ -34,14 +34,7 @@ outputs:
subtract_mask_from_silk: false subtract_mask_from_silk: false
inner_extension_pattern: '.gl%N' inner_extension_pattern: '.gl%N'
layers: layers:
- copper @_KIBOT_GERBER_LAYERS@
- F.SilkS
- B.SilkS
- F.Mask
- B.Mask
- F.Paste
- B.Paste
- Edge.Cuts
@_KIBOT_F_PASTE@ @_KIBOT_F_PASTE@
@_KIBOT_B_PASTE@ @_KIBOT_B_PASTE@
@ -80,3 +73,10 @@ outputs:
definitions: definitions:
_KIBOT_F_PASTE: '' _KIBOT_F_PASTE: ''
_KIBOT_B_PASTE: '' _KIBOT_B_PASTE: ''
_KIBOT_GERBER_LAYERS: |
- copper
- F.SilkS
- B.SilkS
- F.Mask
- B.Mask
- Edge.Cuts