Check this installations resources/panelizePresets/default.json and panelize_ui_sections.py before adding parameters, these are the way, the truth, and the light.
-
source.type: "auto" is appropriate for an ordinary single-board file.
-
tabs.type: "spacing" places tabs symmetrically and cannot exclude a particular side.
-
With fixed tabs:
- hcount controls tabs projecting from left/right edges.
- vcount controls tabs projecting from top/bottom edges.
- A zero count suppresses that pair of directions.
-
Use annotation tabs when only selected segments or one side must be excluded.
-
Protected tab directions must be derived from each board’s geometry and rotation. Never hardcode “bottom” or “right” as a universal
rule.
-
The global mouse-bite cut method processes every generated cut path, including framing.cuts.
-
Therefore, framing.cuts: "both" with mouse bites drills break rows through the rails.
-
Use framing.cuts: "none" for a continuous frame.
-
Tooling and fiducial offsets are measured inward from the panel’s outer edges.
-
To center a feature across a 5 mm frame, use a 2.5 mm perpendicular offset.
-
Tooling holes and fiducials with identical counts and offsets overlap. Separate them along the rail.
-
paste: true means the feature gets an aperture on the stencil paste layers. It does not control whether a drilled hole is visible.
-
framing.fillet rounds exterior panel corners.
-
post.millradius rounds concave interior routed corners.
-
post.reconstructarcs: true produces real Edge.Cuts arcs instead of dense line-segment approximations.
python3 -m json.tool panelize.json
kikit panelize -p panelize.json input.kicad_pcb output-panel.kicad_pcb
kikit panelize -p panelize.json -d resolved.json input.kicad_pcb output-panel.kicad_pcb