405 lines
44 KiB
ReStructuredText
405 lines
44 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*.
|
|
- ``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.
|
|
- ``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*.
|
|
|
|
- **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.
|
|
- ``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.
|
|
- ``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.
|
|
- *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*.
|
|
- ``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.
|
|
- ``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.
|
|
- ``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.
|
|
- ``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='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
|
|
(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.
|
|
- ``posy`` :index:`: <pair: output - panelize - options - configs - page; posy>` [number|string] The Y position of the panel on the page.
|
|
- ``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*.
|
|
- ``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.
|
|
- ``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] 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.
|
|
- ``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.
|
|
- ``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..
|
|
- *mill_radius* :index:`: <pair: output - panelize - options - configs - post; mill_radius>` Alias for millradius.
|
|
- ``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.
|
|
- ``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>` [string=''] Type of output.
|
|
- ``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.
|
|
|