KiBot/docs/source/configuration/outputs/panelize.rst

453 lines
52 KiB
ReStructuredText

.. Automatically generated by KiBot, please don't edit this file
.. index::
pair: Panelize; panelize
Panelize
~~~~~~~~
Creates a panel to fabricate various copies of the PCB at once.
It currently uses the KiKit tool, which must be available. |br|
Consult KiKit docs for detailed information. |br|
`KiKit panelization docs <https://github.com/yaqwsx/KiKit/blob/master/doc/examples.md>`__. |br|
Current versions of KiKit only support KiCad 6 and my tests using
KiKit 1.0.5 (the last to support KiCad 5) shown some
incompatibilities. |br|
Note that you don't need to specify the units for all distances. |br|
If they are omitted they are assumed to be `units`. |br|
The same is valid for angles, using `default_angles`
Type: ``panelize``
Category: **PCB/fabrication**
Parameters:
- **comment** :index:`: <pair: output - panelize; comment>` [string=''] A comment for documentation purposes. It helps to identify the output.
- **dir** :index:`: <pair: output - panelize; dir>` [string='./'] Output directory for the generated files.
If it starts with `+` the rest is concatenated to the default dir.
- **name** :index:`: <pair: output - panelize; name>` [string=''] Used to identify this particular output definition.
Avoid using `_` as first character. These names are reserved for KiBot.
- **options** :index:`: <pair: output - panelize; options>` [dict] Options for the `Panelize` output.
- Valid keys:
- **configs** :index:`: <pair: output - panelize - options; configs>` [list(dict)|list(string)|string] One or more configurations used to create the panel.
Use a string to include an external configuration, i.e. `myDefault.json`.
You can also include a preset using `:name`, i.e. `:vcuts`.
Use a dict to specify the options using the KiBot YAML file.
- Valid keys:
- **cuts** :index:`: <pair: output - panelize - options - configs; cuts>` [dict] Specify how to perform the cuts on the tabs separating the board.
- Valid keys:
- **type** :index:`: <pair: output - panelize - options - configs - cuts; type>` [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.
- ``arg`` :index:`: <pair: output - panelize - options - configs - cuts; arg>` [string=''] Argument to pass to the plugin. Used for *plugin*.
- ``clearance`` :index:`: <pair: output - panelize - options - configs - cuts; clearance>` [number|string] Specify clearance for copper around V-cuts.
- ``code`` :index:`: <pair: output - panelize - options - configs - cuts; code>` [string=''] Plugin specification (PACKAGE.FUNCTION or PYTHON_FILE.FUNCTION). Used for *plugin*.
- *cut_curves* :index:`: <pair: output - panelize - options - configs - cuts; cut_curves>` Alias for cutcurves.
- ``cutcurves`` :index:`: <pair: output - panelize - options - configs - cuts; cutcurves>` [boolean=false] Specify if curves should be approximated by straight cuts (e.g., for cutting tabs on circular boards).
Used for *vcuts*.
- ``drill`` :index:`: <pair: output - panelize - options - configs - cuts; drill>` [number|string] Drill size used for the *mousebites*.
- *end_prolongation* :index:`: <pair: output - panelize - options - configs - cuts; end_prolongation>` Alias for endprolongation.
- ``endprolongation`` :index:`: <pair: output - panelize - options - configs - cuts; endprolongation>` [number|string] Prolongation on the end of V-CUT without text.
- ``layer`` :index:`: <pair: output - panelize - options - configs - cuts; layer>` [string='Cmts.User'] Specify the layer to render V-cuts on. Also used for the *layer* type.
- *line_width* :index:`: <pair: output - panelize - options - configs - cuts; line_width>` Alias for linewidth.
- ``linewidth`` :index:`: <pair: output - panelize - options - configs - cuts; linewidth>` [number|string] Line width to plot cuts with.
- ``offset`` :index:`: <pair: output - panelize - options - configs - cuts; offset>` [number|string] Specify the *mousebites* and *vcuts* offset, positive offset puts the cuts into the board,
negative puts the cuts into the tabs.
- ``prolong`` :index:`: <pair: output - panelize - options - configs - cuts; prolong>` [number|string] Distance for tangential prolongation of the cuts (to cut through the internal corner fillets
caused by milling). Used for *mousebites* and *layer*.
- ``spacing`` :index:`: <pair: output - panelize - options - configs - cuts; spacing>` [number|string] The spacing of the holes used for the *mousebites*.
- ``template`` :index:`: <pair: output - panelize - options - configs - cuts; template>` [string='V-CUT'] Text template for the V-CUT.
- *text_offset* :index:`: <pair: output - panelize - options - configs - cuts; text_offset>` Alias for textoffset.
- *text_prolongation* :index:`: <pair: output - panelize - options - configs - cuts; text_prolongation>` Alias for textprolongation.
- *text_size* :index:`: <pair: output - panelize - options - configs - cuts; text_size>` Alias for textsize.
- *text_thickness* :index:`: <pair: output - panelize - options - configs - cuts; text_thickness>` Alias for textthickness.
- ``textoffset`` :index:`: <pair: output - panelize - options - configs - cuts; textoffset>` [number|string] Text offset from the V-CUT.
- ``textprolongation`` :index:`: <pair: output - panelize - options - configs - cuts; textprolongation>` [number|string] Prolongation of the text size of V-CUT.
- ``textsize`` :index:`: <pair: output - panelize - options - configs - cuts; textsize>` [number|string] Text size for vcuts.
- ``textthickness`` :index:`: <pair: output - panelize - options - configs - cuts; textthickness>` [number|string] Text thickness for width.
- **fiducials** :index:`: <pair: output - panelize - options - configs; fiducials>` [dict] Used to add fiducial marks to the (rail/frame of) the panel.
- Valid keys:
- **type** :index:`: <pair: output - panelize - options - configs - fiducials; type>` [string='none'] [none,3fid,4fid,plugin] Add none, 3 or 4 fiducials to the (rail/frame of) the panel.
- *copper_size* :index:`: <pair: output - panelize - options - configs - fiducials; copper_size>` Alias for coppersize.
- ``coppersize`` :index:`: <pair: output - panelize - options - configs - fiducials; coppersize>` [number|string] Diameter of the copper spot.
- ``hoffset`` :index:`: <pair: output - panelize - options - configs - fiducials; hoffset>` [number|string] Horizontal offset from panel edges.
- ``opening`` :index:`: <pair: output - panelize - options - configs - fiducials; opening>` [number|string] Diameter of the solder mask opening.
- ``paste`` :index:`: <pair: output - panelize - options - configs - fiducials; paste>` [boolean=false] Include the fiducials in the paste layer (therefore they appear on the stencil).
- ``voffset`` :index:`: <pair: output - panelize - options - configs - fiducials; voffset>` [number|string] Vertical offset from panel edges.
- **framing** :index:`: <pair: output - panelize - options - configs; framing>` [dict] Specify the frame around the boards.
- Valid keys:
- **type** :index:`: <pair: output - panelize - options - configs - framing; type>` [string='none'] [none,railstb,railslr,frame,tightframe,plugin] Railstb: Add rails on top and bottom.
Railslr: Add rails on left and right.
Frame: Add a frame around the board.
Tighframe: Add a frame around the board which fills the whole area of the panel -
the boards have just a milled slot around their perimeter.
Plugin: Uses an external python function, only `code` and `arg` are relevant.
- ``arg`` :index:`: <pair: output - panelize - options - configs - framing; arg>` [string=''] Argument to pass to the plugin. Used for *plugin*.
- ``chamfer`` :index:`: <pair: output - panelize - options - configs - framing; chamfer>` [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_height* :index:`: <pair: output - panelize - options - configs - framing; chamfer_height>` Alias for chamferheight.
- *chamfer_width* :index:`: <pair: output - panelize - options - configs - framing; chamfer_width>` Alias for chamferwidth.
- ``chamferheight`` :index:`: <pair: output - panelize - options - configs - framing; chamferheight>` [number|string] Height of the chamfer frame corners, used for non 45 degrees chamfer.
- ``chamferwidth`` :index:`: <pair: output - panelize - options - configs - framing; chamferwidth>` [number|string] Width of the chamfer frame corners, used for non 45 degrees chamfer.
- ``code`` :index:`: <pair: output - panelize - options - configs - framing; code>` [string=''] Plugin specification (PACKAGE.FUNCTION or PYTHON_FILE.FUNCTION). Used for *plugin*.
- ``cuts`` :index:`: <pair: output - panelize - options - configs - framing; cuts>` [string='both'] [none,both,v,h] Specify whether to add cuts to the corners of the frame for easy removal.
Used for *frame*.
- ``fillet`` :index:`: <pair: output - panelize - options - configs - framing; fillet>` [number|string] Specify radius of fillet frame corners.
- ``hspace`` :index:`: <pair: output - panelize - options - configs - framing; hspace>` [number|string] Specify the horizontal space between PCB and the frame/rail.
- *max_total_height* :index:`: <pair: output - panelize - options - configs - framing; max_total_height>` Alias for maxtotalheight.
- *max_total_width* :index:`: <pair: output - panelize - options - configs - framing; max_total_width>` Alias for maxtotalwidth.
- ``maxtotalheight`` :index:`: <pair: output - panelize - options - configs - framing; maxtotalheight>` [number|string] Maximal height of the panel.
- ``maxtotalwidth`` :index:`: <pair: output - panelize - options - configs - framing; maxtotalwidth>` [number|string] Maximal width of the panel.
- *min_total_height* :index:`: <pair: output - panelize - options - configs - framing; min_total_height>` Alias for mintotalheight.
- *min_total_width* :index:`: <pair: output - panelize - options - configs - framing; min_total_width>` Alias for mintotalwidth.
- ``mintotalheight`` :index:`: <pair: output - panelize - options - configs - framing; mintotalheight>` [number|string] If needed, add extra material to the rail or frame to meet the minimal requested size.
Useful for services that require minimal panel size.
- ``mintotalwidth`` :index:`: <pair: output - panelize - options - configs - framing; mintotalwidth>` [number|string] If needed, add extra material to the rail or frame to meet the minimal requested size.
Useful for services that require minimal panel size.
- *slot_width* :index:`: <pair: output - panelize - options - configs - framing; slot_width>` Alias for slotwidth.
- ``slotwidth`` :index:`: <pair: output - panelize - options - configs - framing; slotwidth>` [number|string] Width of the milled slot for *tightframe*.
- ``space`` :index:`: <pair: output - panelize - options - configs - framing; space>` [number|string] Specify the space between PCB and the frame/rail. Overrides `hspace` and `vspace`.
- ``vspace`` :index:`: <pair: output - panelize - options - configs - framing; vspace>` [number|string] Specify the vertical space between PCB and the frame/rail.
- ``width`` :index:`: <pair: output - panelize - options - configs - framing; width>` [number|string] Specify with of the rails or frame.
- **layout** :index:`: <pair: output - panelize - options - configs; layout>` [dict] Layout used for the panel.
- Valid keys:
- **cols** :index:`: <pair: output - panelize - options - configs - layout; cols>` [number=1] Specify the number of columns of boards in the grid pattern.
- **rows** :index:`: <pair: output - panelize - options - configs - layout; rows>` [number=1] Specify the number of rows of boards in the grid pattern.
- ``alternation`` :index:`: <pair: output - panelize - options - configs - layout; alternation>` [string='none'] [none,rows,cols,rowsCols] Specify alternations of board rotation.
none: Do not alternate.
rows: Rotate boards by 180° on every next row.
cols: Rotate boards by 180° on every next column.
rowsCols: Rotate boards by 180° based on a chessboard pattern.
- ``arg`` :index:`: <pair: output - panelize - options - configs - layout; arg>` [string=''] Argument to pass to the plugin. Used for *plugin*.
- *bake_text* :index:`: <pair: output - panelize - options - configs - layout; bake_text>` Alias for baketext.
- ``baketext`` :index:`: <pair: output - panelize - options - configs - layout; baketext>` [boolean=true] A flag that indicates if text variables should be substituted or not.
- ``code`` :index:`: <pair: output - panelize - options - configs - layout; code>` [string=''] Plugin specification (PACKAGE.FUNCTION or PYTHON_FILE.FUNCTION). Used for *plugin*.
- *h_back_bone* :index:`: <pair: output - panelize - options - configs - layout; h_back_bone>` Alias for hbackbone.
- *h_bone_cut* :index:`: <pair: output - panelize - options - configs - layout; h_bone_cut>` Alias for hbonecut.
- *h_bone_first* :index:`: <pair: output - panelize - options - configs - layout; h_bone_first>` Alias for hbonefirst.
- *h_bone_skip* :index:`: <pair: output - panelize - options - configs - layout; h_bone_skip>` Alias for hboneskip.
- ``hbackbone`` :index:`: <pair: output - panelize - options - configs - layout; hbackbone>` [number|string] The width of horizontal backbone (0 means no backbone). The backbone does not increase the
spacing of the boards.
- ``hbonecut`` :index:`: <pair: output - panelize - options - configs - layout; hbonecut>` [boolean=true] If there are both backbones specified, specifies if there should be a horizontal cut where the backbones
cross.
- ``hbonefirst`` :index:`: <pair: output - panelize - options - configs - layout; hbonefirst>` [number=0] Specify first horizontal backbone to render.
- ``hboneskip`` :index:`: <pair: output - panelize - options - configs - layout; hboneskip>` [number=0] Skip every n horizontal backbones. I.e., 1 means place only every other backbone.
- ``hspace`` :index:`: <pair: output - panelize - options - configs - layout; hspace>` [number|string] Specify the horizontal gap between the boards.
- *rename_net* :index:`: <pair: output - panelize - options - configs - layout; rename_net>` Alias for renamenet.
- *rename_ref* :index:`: <pair: output - panelize - options - configs - layout; rename_ref>` Alias for renameref.
- ``renamenet`` :index:`: <pair: output - panelize - options - configs - layout; renamenet>` [string='Board_{n}-{orig}'] A pattern by which to rename the nets. You can use {n} and {orig} to get the board number and original name.
- ``renameref`` :index:`: <pair: output - panelize - options - configs - layout; renameref>` [string='{orig}'] A pattern by which to rename the references. You can use {n} and {orig} to get the board number and original
name.
- ``rotation`` :index:`: <pair: output - panelize - options - configs - layout; rotation>` [number|string] Rotate the boards before placing them in the panel.
- ``space`` :index:`: <pair: output - panelize - options - configs - layout; space>` [number|string] Specify the gap between the boards, overwrites `hspace` and `vspace`.
- ``type`` :index:`: <pair: output - panelize - options - configs - layout; type>` [string='grid'] [grid,plugin] In the plugin type only `code` and `arg` are relevant.
- *v_back_bone* :index:`: <pair: output - panelize - options - configs - layout; v_back_bone>` Alias for vbackbone.
- *v_bone_cut* :index:`: <pair: output - panelize - options - configs - layout; v_bone_cut>` Alias for vbonecut.
- *v_bone_first* :index:`: <pair: output - panelize - options - configs - layout; v_bone_first>` Alias for vbonefirst.
- *v_bone_skip* :index:`: <pair: output - panelize - options - configs - layout; v_bone_skip>` Alias for vboneskip.
- ``vbackbone`` :index:`: <pair: output - panelize - options - configs - layout; vbackbone>` [number|string] The width of vertical backbone (0 means no backbone). The backbone does not increase the
spacing of the boards.
- ``vbonecut`` :index:`: <pair: output - panelize - options - configs - layout; vbonecut>` [boolean=true] If there are both backbones specified, specifies if there should be a vertical cut where the backbones
cross.
- ``vbonefirst`` :index:`: <pair: output - panelize - options - configs - layout; vbonefirst>` [number=0] Specify first vertical backbone to render.
- ``vboneskip`` :index:`: <pair: output - panelize - options - configs - layout; vboneskip>` [number=0] Skip every n vertical backbones. I.e., 1 means place only every other backbone.
- ``vspace`` :index:`: <pair: output - panelize - options - configs - layout; vspace>` [number|string] Specify the vertical gap between the boards.
- **page** :index:`: <pair: output - panelize - options - configs; page>` [dict] Sets page size on the resulting panel and position the panel in the page.
- Valid keys:
- *page_size* :index:`: <pair: output - panelize - options - configs - page; page_size>` Alias for type.
- *size* :index:`: <pair: output - panelize - options - configs - page; size>` Alias for type.
- **type** :index:`: <pair: output - panelize - options - configs - page; 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,
USLetter-portrait,USLegal-portrait,USLedger-portrait] Paper size. The default `inherit` option inherits
paper size from the source board. This feature is not supported on KiCAD 5.
- ``anchor`` :index:`: <pair: output - panelize - options - configs - page; anchor>` [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.
- ``height`` :index:`: <pair: output - panelize - options - configs - page; height>` [number|string] Height for the `custom` paper size.
- *pos_x* :index:`: <pair: output - panelize - options - configs - page; pos_x>` Alias for posx.
- *pos_y* :index:`: <pair: output - panelize - options - configs - page; pos_y>` Alias for posy.
- ``posx`` :index:`: <pair: output - panelize - options - configs - page; posx>` [number|string] The X position of the panel on the page. Can be expressed as a page size percentage.
- ``posy`` :index:`: <pair: output - panelize - options - configs - page; posy>` [number|string] The Y position of the panel on the page. Can be expressed as a page size percentage.
- ``width`` :index:`: <pair: output - panelize - options - configs - page; width>` [number|string] Width for the `custom` paper size.
- **tabs** :index:`: <pair: output - panelize - options - configs; tabs>` [dict] Style of the tabs used to join the PCB copies.
- Valid keys:
- **type** :index:`: <pair: output - panelize - options - configs - tabs; type>` [string='spacing'] [fixed,spacing,full,annotation,plugin] Fixed: Place given number of tabs on the PCB edge.
Spacing: Place tabs on the PCB edges based on spacing.
Full: Create tabs that are full width of the PCB.
Corner: Create tabs in the corners of the PCB.
Annotation: Add tabs based on PCB annotations.
Plugin: Uses an external python function, only `code` and `arg` are relevant.
- ``arg`` :index:`: <pair: output - panelize - options - configs - tabs; arg>` [string=''] Argument to pass to the plugin. Used for *plugin*.
- ``code`` :index:`: <pair: output - panelize - options - configs - tabs; code>` [string=''] Plugin specification (PACKAGE.FUNCTION or PYTHON_FILE.FUNCTION). Used for *plugin*.
- ``cutout`` :index:`: <pair: output - panelize - options - configs - tabs; cutout>` [number|string] When your design features open pockets on the side, this parameter specifies extra cutout
depth in order to ensure that a sharp corner of the pocket can be milled. Used for *full*.
- ``hcount`` :index:`: <pair: output - panelize - options - configs - tabs; hcount>` [number=1] Number of tabs in the horizontal direction. Used for *fixed*.
- ``hwidth`` :index:`: <pair: output - panelize - options - configs - tabs; hwidth>` [number|string] The width of tabs in the horizontal direction. Used for *fixed* and *spacing*.
- *min_distance* :index:`: <pair: output - panelize - options - configs - tabs; min_distance>` Alias for mindistance.
- ``mindistance`` :index:`: <pair: output - panelize - options - configs - tabs; mindistance>` [number|string] Minimal spacing between the tabs. If there are too many tabs, their count is reduced.
Used for *fixed*.
- *patch_corners* :index:`: <pair: output - panelize - options - configs - tabs; patch_corners>` Alias for patchcorners.
- ``patchcorners`` :index:`: <pair: output - panelize - options - configs - tabs; 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.
- ``spacing`` :index:`: <pair: output - panelize - options - configs - tabs; spacing>` [number|string] The maximum spacing of the tabs. Used for *spacing*.
- *tab_footprints* :index:`: <pair: output - panelize - options - configs - tabs; tab_footprints>` Alias for tabfootprints.
- ``tabfootprints`` :index:`: <pair: output - panelize - options - configs - tabs; tabfootprints>` [string='kikit:Tab'] The footprint/s used for the *annotation* type. You can specify a list of footprints separated by comma.
- ``vcount`` :index:`: <pair: output - panelize - options - configs - tabs; vcount>` [number=1] Number of tabs in the vertical direction. Used for *fixed*.
- ``vwidth`` :index:`: <pair: output - panelize - options - configs - tabs; vwidth>` [number|string] The width of tabs in the vertical direction. Used for *fixed* and *spacing*.
- ``width`` :index:`: <pair: output - panelize - options - configs - tabs; width>` [number|string] The width of tabs in both directions. Overrides both `vwidth` and `hwidth`.
Used for *fixed*, *spacing*, *corner* and *annotation*.
- **tooling** :index:`: <pair: output - panelize - options - configs; tooling>` [dict] Used to add tooling holes to the (rail/frame of) the panel.
- Valid keys:
- **type** :index:`: <pair: output - panelize - options - configs - tooling; type>` [string='none'] [none,3hole,4hole,plugin] Add none, 3 or 4 holes to the (rail/frame of) the panel.
- ``arg`` :index:`: <pair: output - panelize - options - configs - tooling; arg>` [string=''] Argument to pass to the plugin. Used for *plugin*.
- ``code`` :index:`: <pair: output - panelize - options - configs - tooling; code>` [string=''] Plugin specification (PACKAGE.FUNCTION or PYTHON_FILE.FUNCTION). Used for *plugin*.
- ``hoffset`` :index:`: <pair: output - panelize - options - configs - tooling; hoffset>` [number|string] Horizontal offset from panel edges.
- ``paste`` :index:`: <pair: output - panelize - options - configs - tooling; paste>` [boolean=false] If True, the holes are included in the paste layer (therefore they appear on the stencil).
- ``size`` :index:`: <pair: output - panelize - options - configs - tooling; size>` [number|string] Diameter of the holes.
- *solder_mask_margin* :index:`: <pair: output - panelize - options - configs - tooling; solder_mask_margin>` Alias for soldermaskmargin.
- ``soldermaskmargin`` :index:`: <pair: output - panelize - options - configs - tooling; soldermaskmargin>` [number|string] Solder mask expansion/margin. Use 1.3mm for JLCPCB.
- ``voffset`` :index:`: <pair: output - panelize - options - configs - tooling; voffset>` [number|string] Vertical offset from panel edges.
- ``copperfill`` :index:`: <pair: output - panelize - options - configs; copperfill>` [dict] Fill non-board areas of the panel with copper.
- Valid keys:
- **type** :index:`: <pair: output - panelize - options - configs - copperfill; type>` [string='none'] [none,solid,hatched,hex] How to fill non-board areas of the panel with copper.
- ``clearance`` :index:`: <pair: output - panelize - options - configs - copperfill; clearance>` [number|string] Extra clearance from the board perimeters. Suitable for, e.g., not filling the tabs with
copper.
- ``diameter`` :index:`: <pair: output - panelize - options - configs - copperfill; diameter>` [number|string] Diameter of hexagons.
- *edge_clearance* :index:`: <pair: output - panelize - options - configs - copperfill; edge_clearance>` Alias for edgeclearance.
- ``edgeclearance`` :index:`: <pair: output - panelize - options - configs - copperfill; edgeclearance>` [number|string] Specifies clearance between the fill and panel perimeter.
- ``layers`` :index:`: <pair: output - panelize - options - configs - copperfill; layers>` [string|list(string)] List of layers to fill. Can be a comma-separated string.
Using *all* means all external copper layers.
- ``orientation`` :index:`: <pair: output - panelize - options - configs - copperfill; orientation>` [number|string] The orientation of the hatched strokes.
- ``spacing`` :index:`: <pair: output - panelize - options - configs - copperfill; spacing>` [number|string] The space between the hatched strokes or hexagons.
- ``threshold`` :index:`: <pair: output - panelize - options - configs - copperfill; threshold>` [number=15] Remove fragments smaller than threshold. Expressed as a percentage.
- ``width`` :index:`: <pair: output - panelize - options - configs - copperfill; width>` [number|string] The width of the hatched strokes.
- ``debug`` :index:`: <pair: output - panelize - options - configs; debug>` [dict] Debug options.
- Valid keys:
- ``deterministic`` :index:`: <pair: output - panelize - options - configs - debug; deterministic>` [boolean=false] Deterministic.
- ``drawBackboneLines`` :index:`: <pair: output - panelize - options - configs - debug; drawBackboneLines>` [boolean=false] Draw backbone lines.
- ``drawPartitionLines`` :index:`: <pair: output - panelize - options - configs - debug; drawPartitionLines>` [boolean=false] Draw partition lines.
- ``drawboxes`` :index:`: <pair: output - panelize - options - configs - debug; drawboxes>` [boolean=false] Draw boxes.
- ``drawtabfail`` :index:`: <pair: output - panelize - options - configs - debug; drawtabfail>` [boolean=false] Draw tab fail.
- ``trace`` :index:`: <pair: output - panelize - options - configs - debug; trace>` [boolean=false] Trace.
- ``expand_text`` :index:`: <pair: output - panelize - options - configs; expand_text>` [boolean=true] Expand text variables and KiBot %X markers in text objects.
- ``extends`` :index:`: <pair: output - panelize - options - configs; extends>` [string=''] A configuration to use as base for this one. Use the following format: `OUTPUT_NAME[CFG_NAME]`.
- ``name`` :index:`: <pair: output - panelize - options - configs; name>` [string=''] A name to identify this configuration. If empty will be the order in the list, starting with 1.
Don't use just a number or it will be confused as an index.
- ``post`` :index:`: <pair: output - panelize - options - configs; post>` [dict] Finishing touches to the panel.
- Valid keys:
- ``copperfill`` :index:`: <pair: output - panelize - options - configs - post; copperfill>` [boolean=false] Fill tabs and frame with copper (e.g., to save etchant or to increase rigidity of flex-PCB panels).
- ``dimensions`` :index:`: <pair: output - panelize - options - configs - post; dimensions>` [boolean=false] Draw dimensions with the panel size..
- *edge_width* :index:`: <pair: output - panelize - options - configs - post; edge_width>` Alias for edgewidth.
- ``edgewidth`` :index:`: <pair: output - panelize - options - configs - post; edgewidth>` [number|string] Specify line width for the Edge.Cuts of the panel.
- *mill_radius* :index:`: <pair: output - panelize - options - configs - post; mill_radius>` Alias for millradius.
- *mill_radius_outer* :index:`: <pair: output - panelize - options - configs - post; mill_radius_outer>` Alias for millradiusouter.
- ``millradius`` :index:`: <pair: output - panelize - options - configs - post; millradius>` [number|string] Simulate the milling operation (add fillets to the internal corners).
Specify mill radius (usually 1 mm). 0 radius disables the functionality.
- ``millradiusouter`` :index:`: <pair: output - panelize - options - configs - post; millradiusouter>` [number|string] Like `millradius`, but modifies only board outer counter.
No internal features of the board are affected.
- ``origin`` :index:`: <pair: output - panelize - options - configs - post; origin>` [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.
- *reconstruct_arcs* :index:`: <pair: output - panelize - options - configs - post; reconstruct_arcs>` Alias for reconstructarcs.
- ``reconstructarcs`` :index:`: <pair: output - panelize - options - configs - post; reconstructarcs>` [boolean=false] The panelization process works on top of a polygonal representation of the board.
This options allows to reconstruct the arcs in the design before saving the panel.
- *refill_zones* :index:`: <pair: output - panelize - options - configs - post; refill_zones>` Alias for refillzones.
- ``refillzones`` :index:`: <pair: output - panelize - options - configs - post; refillzones>` [boolean=false] Refill the user zones after the panel is build.
This is only necessary when you want your zones to avoid cuts in panel.
- ``script`` :index:`: <pair: output - panelize - options - configs - post; script>` [string=''] A path to custom Python file. The file should contain a function kikitPostprocess(panel, args) that
receives the prepared panel as the kikit.panelize.Panel object and the user-supplied arguments as a
string - see `scriptarg`. The function can make arbitrary changes to the panel - you can append text,
footprints, alter labels, etc. The function is invoked after the whole panel is constructed
(including all other postprocessing). If you try to add a functionality for a common fabrication
houses via scripting, consider submitting PR for KiKit.
- *script_arg* :index:`: <pair: output - panelize - options - configs - post; script_arg>` Alias for scriptarg.
- ``scriptarg`` :index:`: <pair: output - panelize - options - configs - post; scriptarg>` [string=''] An arbitrary string passed to the user post-processing script specified in script.
- ``type`` :index:`: <pair: output - panelize - options - configs - post; type>` [string='auto'] [auto] Currently fixed.
- ``source`` :index:`: <pair: output - panelize - options - configs; source>` [dict] Used to adjust details of which part of the PCB is panelized.
- Valid keys:
- **type** :index:`: <pair: output - panelize - options - configs - source; type>` [string='auto'] [auto,rectangle,annotation] How we select the area of the PCB used for the panelization.
*auto* uses all the area reported by KiCad, *rectangle* a specified rectangle and
*annotation* selects a contour marked by a kikit:Board footprint.
- ``brx`` :index:`: <pair: output - panelize - options - configs - source; brx>` [number|string] Bottom right X coordinate of the rectangle used. Used for *rectangle*.
- ``bry`` :index:`: <pair: output - panelize - options - configs - source; bry>` [number|string] Bottom right Y coordinate of the rectangle used. Used for *rectangle*.
- ``ref`` :index:`: <pair: output - panelize - options - configs - source; ref>` [string=''] Reference for the kikit:Board footprint used to select the contour. Used for *annotation*.
- ``stack`` :index:`: <pair: output - panelize - options - configs - source; stack>` [string='inherit'] [inherit,2layer,4layer,6layer] Used to reduce the number of layers used for the panel.
- ``tlx`` :index:`: <pair: output - panelize - options - configs - source; tlx>` [number|string] Top left X coordinate of the rectangle used. Used for *rectangle*.
- ``tly`` :index:`: <pair: output - panelize - options - configs - source; tly>` [number|string] Top left Y coordinate of the rectangle used. Used for *rectangle*.
- ``tolerance`` :index:`: <pair: output - panelize - options - configs - source; tolerance>` [number|string] Extra space around the PCB reported size to be included. Used for *auto* and *annotation*.
- ``text`` :index:`: <pair: output - panelize - options - configs; text>` [dict] Used to add text to the panel.
- Valid keys:
- **text** :index:`: <pair: output - panelize - options - configs - text; text>` [string=''] The text to be displayed. Note that you can escape ; via \\.
Available variables in text: *date* formats current date as <year>-<month>-<day>,
*time24* formats current time in 24-hour format,
*boardTitle* the title from the source board,
*boardDate* the date from the source board,
*boardRevision* the revision from the source board,
*boardCompany* the company from the source board,
*boardComment1*-*boardComment9* comments from the source board.
- **type** :index:`: <pair: output - panelize - options - configs - text; type>` [string='none'] [none,simple] Currently fixed. BTW: don't ask me about this ridiculous default, is how KiKit works.
- ``anchor`` :index:`: <pair: output - panelize - options - configs - text; anchor>` [string='mt'] [tl,tr,bl,br,mt,mb,ml,mr,c] Origin of the text. 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.
- ``height`` :index:`: <pair: output - panelize - options - configs - text; height>` [number|string] Height of the characters (the same parameters as KiCAD uses).
- ``hjustify`` :index:`: <pair: output - panelize - options - configs - text; hjustify>` [string='center'] [left,right,center] Horizontal justification of the text.
- ``hoffset`` :index:`: <pair: output - panelize - options - configs - text; hoffset>` [number|string] Specify the horizontal offset from anchor. Respects KiCAD coordinate system.
- ``layer`` :index:`: <pair: output - panelize - options - configs - text; layer>` [string='F.SilkS'] Specify text layer.
- ``orientation`` :index:`: <pair: output - panelize - options - configs - text; orientation>` [number|string] Specify the orientation (angle).
- ``plugin`` :index:`: <pair: output - panelize - options - configs - text; plugin>` [string=''] Specify the plugin that provides extra variables for the text.
- ``thickness`` :index:`: <pair: output - panelize - options - configs - text; thickness>` [number|string] Stroke thickness.
- ``vjustify`` :index:`: <pair: output - panelize - options - configs - text; vjustify>` [string='center'] [left,right,center] Vertical justification of the text.
- ``voffset`` :index:`: <pair: output - panelize - options - configs - text; voffset>` [number|string] Specify the vertical offset from anchor. Respects KiCAD coordinate system.
- ``width`` :index:`: <pair: output - panelize - options - configs - text; width>` [number|string] Width of the characters (the same parameters as KiCAD uses).
- ``text2`` :index:`: <pair: output - panelize - options - configs; text2>` [dict] Used to add text to the panel.
- Valid keys:
- **text** :index:`: <pair: output - panelize - options - configs - text2; text>` [string=''] The text to be displayed. Note that you can escape ; via \\.
Available variables in text: *date* formats current date as <year>-<month>-<day>,
*time24* formats current time in 24-hour format,
*boardTitle* the title from the source board,
*boardDate* the date from the source board,
*boardRevision* the revision from the source board,
*boardCompany* the company from the source board,
*boardComment1*-*boardComment9* comments from the source board.
- **type** :index:`: <pair: output - panelize - options - configs - text2; type>` [string='none'] [none,simple] Currently fixed. BTW: don't ask me about this ridiculous default, is how KiKit works.
- ``anchor`` :index:`: <pair: output - panelize - options - configs - text2; anchor>` [string='mt'] [tl,tr,bl,br,mt,mb,ml,mr,c] Origin of the text. 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.
- ``height`` :index:`: <pair: output - panelize - options - configs - text2; height>` [number|string] Height of the characters (the same parameters as KiCAD uses).
- ``hjustify`` :index:`: <pair: output - panelize - options - configs - text2; hjustify>` [string='center'] [left,right,center] Horizontal justification of the text.
- ``hoffset`` :index:`: <pair: output - panelize - options - configs - text2; hoffset>` [number|string] Specify the horizontal offset from anchor. Respects KiCAD coordinate system.
- ``layer`` :index:`: <pair: output - panelize - options - configs - text2; layer>` [string='F.SilkS'] Specify text layer.
- ``orientation`` :index:`: <pair: output - panelize - options - configs - text2; orientation>` [number|string] Specify the orientation (angle).
- ``plugin`` :index:`: <pair: output - panelize - options - configs - text2; plugin>` [string=''] Specify the plugin that provides extra variables for the text.
- ``thickness`` :index:`: <pair: output - panelize - options - configs - text2; thickness>` [number|string] Stroke thickness.
- ``vjustify`` :index:`: <pair: output - panelize - options - configs - text2; vjustify>` [string='center'] [left,right,center] Vertical justification of the text.
- ``voffset`` :index:`: <pair: output - panelize - options - configs - text2; voffset>` [number|string] Specify the vertical offset from anchor. Respects KiCAD coordinate system.
- ``width`` :index:`: <pair: output - panelize - options - configs - text2; width>` [number|string] Width of the characters (the same parameters as KiCAD uses).
- ``text3`` :index:`: <pair: output - panelize - options - configs; text3>` [dict] Used to add text to the panel.
- Valid keys:
- **text** :index:`: <pair: output - panelize - options - configs - text3; text>` [string=''] The text to be displayed. Note that you can escape ; via \\.
Available variables in text: *date* formats current date as <year>-<month>-<day>,
*time24* formats current time in 24-hour format,
*boardTitle* the title from the source board,
*boardDate* the date from the source board,
*boardRevision* the revision from the source board,
*boardCompany* the company from the source board,
*boardComment1*-*boardComment9* comments from the source board.
- **type** :index:`: <pair: output - panelize - options - configs - text3; type>` [string='none'] [none,simple] Currently fixed. BTW: don't ask me about this ridiculous default, is how KiKit works.
- ``anchor`` :index:`: <pair: output - panelize - options - configs - text3; anchor>` [string='mt'] [tl,tr,bl,br,mt,mb,ml,mr,c] Origin of the text. 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.
- ``height`` :index:`: <pair: output - panelize - options - configs - text3; height>` [number|string] Height of the characters (the same parameters as KiCAD uses).
- ``hjustify`` :index:`: <pair: output - panelize - options - configs - text3; hjustify>` [string='center'] [left,right,center] Horizontal justification of the text.
- ``hoffset`` :index:`: <pair: output - panelize - options - configs - text3; hoffset>` [number|string] Specify the horizontal offset from anchor. Respects KiCAD coordinate system.
- ``layer`` :index:`: <pair: output - panelize - options - configs - text3; layer>` [string='F.SilkS'] Specify text layer.
- ``orientation`` :index:`: <pair: output - panelize - options - configs - text3; orientation>` [number|string] Specify the orientation (angle).
- ``plugin`` :index:`: <pair: output - panelize - options - configs - text3; plugin>` [string=''] Specify the plugin that provides extra variables for the text.
- ``thickness`` :index:`: <pair: output - panelize - options - configs - text3; thickness>` [number|string] Stroke thickness.
- ``vjustify`` :index:`: <pair: output - panelize - options - configs - text3; vjustify>` [string='center'] [left,right,center] Vertical justification of the text.
- ``voffset`` :index:`: <pair: output - panelize - options - configs - text3; voffset>` [number|string] Specify the vertical offset from anchor. Respects KiCAD coordinate system.
- ``width`` :index:`: <pair: output - panelize - options - configs - text3; width>` [number|string] Width of the characters (the same parameters as KiCAD uses).
- ``text4`` :index:`: <pair: output - panelize - options - configs; text4>` [dict] Used to add text to the panel.
- Valid keys:
- **text** :index:`: <pair: output - panelize - options - configs - text4; text>` [string=''] The text to be displayed. Note that you can escape ; via \\.
Available variables in text: *date* formats current date as <year>-<month>-<day>,
*time24* formats current time in 24-hour format,
*boardTitle* the title from the source board,
*boardDate* the date from the source board,
*boardRevision* the revision from the source board,
*boardCompany* the company from the source board,
*boardComment1*-*boardComment9* comments from the source board.
- **type** :index:`: <pair: output - panelize - options - configs - text4; type>` [string='none'] [none,simple] Currently fixed. BTW: don't ask me about this ridiculous default, is how KiKit works.
- ``anchor`` :index:`: <pair: output - panelize - options - configs - text4; anchor>` [string='mt'] [tl,tr,bl,br,mt,mb,ml,mr,c] Origin of the text. 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.
- ``height`` :index:`: <pair: output - panelize - options - configs - text4; height>` [number|string] Height of the characters (the same parameters as KiCAD uses).
- ``hjustify`` :index:`: <pair: output - panelize - options - configs - text4; hjustify>` [string='center'] [left,right,center] Horizontal justification of the text.
- ``hoffset`` :index:`: <pair: output - panelize - options - configs - text4; hoffset>` [number|string] Specify the horizontal offset from anchor. Respects KiCAD coordinate system.
- ``layer`` :index:`: <pair: output - panelize - options - configs - text4; layer>` [string='F.SilkS'] Specify text layer.
- ``orientation`` :index:`: <pair: output - panelize - options - configs - text4; orientation>` [number|string] Specify the orientation (angle).
- ``plugin`` :index:`: <pair: output - panelize - options - configs - text4; plugin>` [string=''] Specify the plugin that provides extra variables for the text.
- ``thickness`` :index:`: <pair: output - panelize - options - configs - text4; thickness>` [number|string] Stroke thickness.
- ``vjustify`` :index:`: <pair: output - panelize - options - configs - text4; vjustify>` [string='center'] [left,right,center] Vertical justification of the text.
- ``voffset`` :index:`: <pair: output - panelize - options - configs - text4; voffset>` [number|string] Specify the vertical offset from anchor. Respects KiCAD coordinate system.
- ``width`` :index:`: <pair: output - panelize - options - configs - text4; width>` [number|string] Width of the characters (the same parameters as KiCAD uses).
- **output** :index:`: <pair: output - panelize - options; output>` [string='%f-%i%I%v.%x'] Filename for the output (%i=panel, %x=kicad_pcb). Affected by global options.
- ``create_preview`` :index:`: <pair: output - panelize - options; create_preview>` [boolean=false] Use PcbDraw to create a preview of the panel.
- ``default_angles`` :index:`: <pair: output - panelize - options; default_angles>` [string='deg'] [deg,°,rad] Angles used when omitted.
- ``dnf_filter`` :index:`: <pair: output - panelize - options; dnf_filter>` [string|list(string)='_none'] Name of the filter to mark components as not fitted.
A short-cut to use for simple cases where a variant is an overkill.
- ``pre_transform`` :index:`: <pair: output - panelize - options; pre_transform>` [string|list(string)='_none'] Name of the filter to transform fields before applying other filters.
A short-cut to use for simple cases where a variant is an overkill.
- ``title`` :index:`: <pair: output - panelize - options; title>` [string=''] Text used to replace the sheet title. %VALUE expansions are allowed.
If it starts with `+` the text is concatenated.
- ``units`` :index:`: <pair: output - panelize - options; units>` [string='mm'] [millimeters,inches,mils,mm,cm,dm,m,mil,inch,in] Units used when omitted.
- ``variant`` :index:`: <pair: output - panelize - options; variant>` [string=''] Board variant to apply.
- **type** :index:`: <pair: output - panelize; type>` 'panelize'
- ``category`` :index:`: <pair: output - panelize; category>` [string|list(string)=''] The category for this output. If not specified an internally defined category is used.
Categories looks like file system paths, i.e. **PCB/fabrication/gerber**.
The categories are currently used for `navigate_results`.
- ``disable_run_by_default`` :index:`: <pair: output - panelize; disable_run_by_default>` [string|boolean] Use it to disable the `run_by_default` status of other output.
Useful when this output extends another and you don't want to generate the original.
Use the boolean true value to disable the output you are extending.
- ``extends`` :index:`: <pair: output - panelize; extends>` [string=''] Copy the `options` section from the indicated output.
Used to inherit options from another output of the same type.
- ``groups`` :index:`: <pair: output - panelize; groups>` [string|list(string)=''] One or more groups to add this output. In order to catch typos
we recommend to add outputs only to existing groups. You can create an empty group if
needed.
- ``output_id`` :index:`: <pair: output - panelize; output_id>` [string=''] Text to use for the %I expansion content. To differentiate variations of this output.
- ``priority`` :index:`: <pair: output - panelize; priority>` [number=50] [0,100] Priority for this output. High priority outputs are created first.
Internally we use 10 for low priority, 90 for high priority and 50 for most outputs.
- ``run_by_default`` :index:`: <pair: output - panelize; run_by_default>` [boolean=true] When enabled this output will be created when no specific outputs are requested.