I’d like to resurrect the topic outlined in Is it possible to create panelized boards in 2.0? . I freely acknowledge the existence of gerber panelizers, and the ability for the manufacturer to panelize them for you. Both are fine for a lot of situations, but sometimes board designers want to explicitly design the panels themselves, for varied reasons.
I’m willing to implement this feature myself and contribute it to the project.
I have been doing some research into the existing code structure as to how it may be integrated. Here’s what I would propose –
- We’d create a third tab tool – a peer to the Schematic tab and the Board tab – named “Panel”.
- The code for the Panel tab would start by cloning the existing Board tab. This will keep the two separate (avoiding lots of potentially-confusing conditional code). Where there are common functions between the two, we could extract a library.
- The Panel tab would effectively replace the component placement aspects of the Board tab with board placements. Placed boards would be referenced rather than duplicating board data. That is, the Panel data would store “board A at X,Y, rotation R”, NOT “traces… vias… components…”.
- Whereas the Board tab can place traces, vias, etc, the Panel tab would have the ability to place primitives such as tabs, panel-level fiducials, tooling holes, v-grooves, and text.
- The Panel tab would NOT be able to edit individual board data (i.e., routing, components, etc.). It would, however, provide an “Edit Board” context menu link back to the Boards tab.
- The first pass of the code would not hook the in-app board ordering just yet, but would facilitate generating gerbers of the panelized boards. The in-app ordering would be connected as a follow-on effort (i.e., a second release).
There are two points of this effort that require explicit approval from @ubruhin :
- The file format would need to be updated to include the Panel data/information (individual board positions & rotations, as well as primitive data and settings). The current plan would be to model the additions after the
boards/section as presently structured, creating apanels/section. It is envisioned that ALL data changes would be isolated to this new section. This approach should be backwards-compatible with the existing app code. - (Eventually) We would need to update the board ordering system a bit so manufacturers know if the data received is an individual board, or pre-panelized data. Some manufacturers adjust their pricing model based on this detail. It is for this reason that I have explicitly scoped the ordering aspects to a second stage/release.
Thoughts?