Skip to content

Commit

Permalink
[Panelize][Added] Support for all new options
Browse files Browse the repository at this point in the history
- upto 1.5.1
- Including current git status
  • Loading branch information
set-soft committed Mar 22, 2024
1 parent b351793 commit b732c00
Show file tree
Hide file tree
Showing 8 changed files with 290 additions and 63 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [1.6.5] - Unreleased
### Added
- KiCad 8 support
- Panelize: support for all new options (upto 1.5.1)

### Changed
- KiRi: continue even on corrupted schematics (#583)
- Variants: avoid W045 on nameless pads. Assuming they are on purpose and not
Expand Down
87 changes: 78 additions & 9 deletions docs/samples/generic_plot.kibot.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -1797,14 +1797,21 @@ outputs:
# [number|string] Extra clearance from the board perimeters. Suitable for, e.g., not filling the tabs with
# copper
clearance: 0.5
# [number|string] Diameter of hexagons
diameter: 7
# `edge_clearance` is an alias for `edgeclearance`
# [number|string] Specifies clearance between the fill and panel perimeter
edgeclearance: 0.5
# [string|list(string)] List of layers to fill. Can be a comma-separated string.
# Using *all* means all external copper layers
layers: 'F.Cu,B.Cu'
# [number|string] The orientation of the hatched strokes
orientation: 45
# [number|string] The space between the hatched strokes
# [number|string] The space between the hatched strokes or hexagons
spacing: 1
# [string='none'] [none,solid,hatched] How to fill non-board areas of the panel with copper
# [number=15] Remove fragments smaller than threshold. Expressed as a percentage
threshold: 15
# [string='none'] [none,solid,hatched,hex] How to fill non-board areas of the panel with copper
type: 'none'
# [number|string] The width of the hatched strokes
width: 1
Expand All @@ -1822,8 +1829,14 @@ outputs:
cutcurves: false
# [number|string] Drill size used for the *mousebites*
drill: 0.5
# `end_prolongation` is an alias for `endprolongation`
# [number|string] Prolongation on the end of V-CUT without text
endprolongation: 3
# [string='Cmts.User'] Specify the layer to render V-cuts on. Also used for the *layer* type
layer: 'Cmts.User'
# `line_width` is an alias for `linewidth`
# [number|string] Line width to plot cuts with
linewidth: 0.3
# [number|string] Specify the *mousebites* and *vcuts* offset, positive offset puts the cuts into the board,
# negative puts the cuts into the tabs
offset: 0
Expand All @@ -1832,6 +1845,20 @@ outputs:
prolong: 0
# [number|string] The spacing of the holes used for the *mousebites*
spacing: 0.8
# [string='V-CUT'] Text template for the V-CUT
template: 'V-CUT'
# `text_offset` is an alias for `textoffset`
# `text_prolongation` is an alias for `textprolongation`
# `text_size` is an alias for `textsize`
# `text_thickness` is an alias for `textthickness`
# [number|string] Text offset from the V-CUT
textoffset: 3
# [number|string] Prolongation of the text size of V-CUT
textprolongation: 3
# [number|string] Text size for vcuts
textsize: 2
# [number|string] Text thickness for width
textthickness: 0.3
# [string='none'] [none,mousebites,vcuts,layer,plugin] Layer: When KiKit reports it cannot perform cuts, you can render the cuts
# into a layer with this option to understand what's going on. Shouldn't be used for the final design
type: 'none'
Expand Down Expand Up @@ -1862,6 +1889,8 @@ outputs:
hoffset: 0
# [number|string] Diameter of the solder mask opening
opening: 1
# [boolean=false] Include the fiducials in the paste layer (therefore they appear on the stencil)
paste: false
# [string='none'] [none,3fid,4fid,plugin] Add none, 3 or 4 fiducials to the (rail/frame of) the panel
type: 'none'
# [number|string] Vertical offset from panel edges
Expand All @@ -1870,8 +1899,15 @@ outputs:
framing:
# [string=''] Argument to pass to the plugin. Used for *plugin*
arg: ''
# [number|string] Specify the size of chamfer frame corners
# [number|string] Specify the size of chamfer frame corners. You can also separately specify `chamferwidth`
# and `chamferheight` to create a non 45 degrees chamfer
chamfer: 0
# `chamfer_height` is an alias for `chamferheight`
# `chamfer_width` is an alias for `chamferwidth`
# [number|string] Height of the chamfer frame corners, used for non 45 degrees chamfer
chamferheight: 0
# [number|string] Width of the chamfer frame corners, used for non 45 degrees chamfer
chamferwidth: 0
# [string=''] Plugin specification (PACKAGE.FUNCTION or PYTHON_FILE.FUNCTION). Used for *plugin*
code: ''
# [string='both'] [none,both,v,h] Specify whether to add cuts to the corners of the frame for easy removal.
Expand All @@ -1881,6 +1917,12 @@ outputs:
fillet: 0
# [number|string] Specify the horizontal space between PCB and the frame/rail
hspace: 2
# `max_total_height` is an alias for `maxtotalheight`
# `max_total_width` is an alias for `maxtotalwidth`
# [number|string] Maximal height of the panel
maxtotalheight: 10000
# [number|string] Maximal width of the panel
maxtotalwidth: 10000
# `min_total_height` is an alias for `mintotalheight`
# `min_total_width` is an alias for `mintotalwidth`
# [number|string] If needed, add extra material to the rail or frame to meet the minimal requested size.
Expand Down Expand Up @@ -1922,12 +1964,18 @@ outputs:
code: ''
# [number=1] Specify the number of columns of boards in the grid pattern
cols: 1
# `h_back_bone` is an alias for `hbackbone`
# `h_bone_cut` is an alias for `hbonecut`
# `h_bone_first` is an alias for `hbonefirst`
# `h_bone_skip` is an alias for `hboneskip`
# [number|string] The width of horizontal backbone (0 means no backbone). The backbone does not increase the
# spacing of the boards
hbackbone: 0
# [boolean=true] If there are both backbones specified, specifies if there should be a horizontal cut where the backbones
# cross
hbonecut: true
# [number=0] Specify first horizontal backbone to render
hbonefirst: 0
# [number=0] Skip every n horizontal backbones. I.e., 1 means place only every other backbone
hboneskip: 0
# [number|string] Specify the horizontal gap between the boards
Expand All @@ -1947,12 +1995,18 @@ outputs:
space: null
# [string='grid'] [grid,plugin] In the plugin type only `code` and `arg` are relevant
type: 'grid'
# `v_back_bone` is an alias for `vbackbone`
# `v_bone_cut` is an alias for `vbonecut`
# `v_bone_first` is an alias for `vbonefirst`
# `v_bone_skip` is an alias for `vboneskip`
# [number|string] The width of vertical backbone (0 means no backbone). The backbone does not increase the
# spacing of the boards
vbackbone: 0
# [boolean=true] If there are both backbones specified, specifies if there should be a vertical cut where the backbones
# cross
vbonecut: true
# [number=0] Specify first vertical backbone to render
vbonefirst: 0
# [number=0] Skip every n vertical backbones. I.e., 1 means place only every other backbone
vboneskip: 0
# [number|string] Specify the vertical gap between the boards
Expand All @@ -1962,18 +2016,18 @@ outputs:
name: ''
# [dict] Sets page size on the resulting panel and position the panel in the page
page:
# [string='tl'] [tl,tr,bl,br,mt,mb,ml,mr,c] Point of the panel to be placed at given position. Can be one of tl, tr, bl, br
# [string='mt'] [tl,tr,bl,br,mt,mb,ml,mr,c] Point of the panel to be placed at given position. Can be one of tl, tr, bl, br
# (corners), mt, mb, ml, mr (middle of sides), c (center). The anchors refer to the panel outline
anchor: 'tl'
anchor: 'mt'
# [number|string] Height for the `custom` paper size
height: 210
# `page_size` is an alias for `type`
# `pos_x` is an alias for `posx`
# `pos_y` is an alias for `posy`
# [number|string] The X position of the panel on the page
posx: 15
# [number|string] The Y position of the panel on the page
posy: 15
# [number|string] The X position of the panel on the page. Can be expressed as a page size percentage
posx: '50%'
# [number|string] The Y position of the panel on the page. Can be expressed as a page size percentage
posy: 20
# `size` is an alias for `type`
# [string='inherit'] [inherit,custom,A0,A1,A2,A3,A4,A5,A,B,C,D,E,USLetter,USLegal,USLedger,A0-portrait,A1-portrait,A2-portrait,
# A3-portrait,A4-portrait,A5-portrait,A-portrait,B-portrait,C-portrait,D-portrait,E-portrait,
Expand All @@ -1988,10 +2042,17 @@ outputs:
copperfill: false
# [boolean=false] Draw dimensions with the panel size.
dimensions: false
# `edge_width` is an alias for `edgewidth`
# [number|string] Specify line width for the Edge.Cuts of the panel
edgewidth: 0.1
# `mill_radius` is an alias for `millradius`
# `mill_radius_outer` is an alias for `millradiusouter`
# [number|string] Simulate the milling operation (add fillets to the internal corners).
# Specify mill radius (usually 1 mm). 0 radius disables the functionality
millradius: 0
# [number|string] Like `millradius`, but modifies only board outer counter.
# No internal features of the board are affected
millradiusouter: 0
# [string='tl'] [tl,tr,bl,br,mt,mb,ml,mr,c] Specify if the auxiliary origin an grid origin should be placed.
# Can be one of tl, tr, bl, br (corners), mt, mb, ml, mr (middle of sides), c (center).
# Empty string does not changes the origin
Expand Down Expand Up @@ -2053,6 +2114,11 @@ outputs:
# [number|string] Minimal spacing between the tabs. If there are too many tabs, their count is reduced.
# Used for *fixed*
mindistance: 0
# `patch_corners` is an alias for `patchcorners`
# [boolean=true] The full tabs are appended to the nearest flat face of the PCB. If the PCB has sharp corners, you want to
# add patches of substrate to these corners. However, if the PCB has fillet or miter, you don't want to
# apply the patches
patchcorners: true
# [number|string] The maximum spacing of the tabs. Used for *spacing*
spacing: 10
# `tab_footprints` is an alias for `tabfootprints`
Expand Down Expand Up @@ -2228,6 +2294,9 @@ outputs:
paste: false
# [number|string] Diameter of the holes
size: 1.152
# `solder_mask_margin` is an alias for `soldermaskmargin`
# [number|string] Solder mask expansion/margin. Use 1.3mm for JLCPCB
soldermaskmargin: 0
# [string='none'] [none,3hole,4hole,plugin] Add none, 3 or 4 holes to the (rail/frame of) the panel
type: 'none'
# [number|string] Vertical offset from panel edges
Expand Down
Loading

0 comments on commit b732c00

Please sign in to comment.