Main | News | Doc | Support | People | Events & timeline | pcb-rnd

# pcb-rnd - the [tostyle] patch

TODO: This feature has to be revisited for padstacks!

Footprints bring their own hole sizes, copper ring sizes and clearances. These parameters often depend on the manufacturing process, and such a value coming from a footprint may differ much from the values used on the board already.

PCB has actions (and menus and hotkeys) to change sizes manually. In my practice, I try to stick to the sizes defined in my routing styles and try to avoid manually changing clearances or ring sizes. Still, the random values coming from various footprints should be changed.

After many years of struggling with this, I realized the feature I need is a way to change object sizes to not a relative or absolute number but to the current routing style. The [tostyle] patch does exactly this. It implements the following new features:

- change clearance size now works on elements: it changes the clearance of all pins/pads; this is the same as change drill has been working for a long time
- size change actions normally take a value and a unit; if the value is not a number but text style, the value is copied from the currently active routing style
- a new ChangeSizes() action that attempts to execute the other three change size actions with the same arguments and fails only if all of them failed; the three sizes are: main size, drill size, clearance size
- a menu item and hotkey binding to key 'Shift+Y' (for routing stYle) that calls ChangeSizes() of the selected or current object(s) to resize them to the current routing style

The new route style set works on:

- lines and arcs: sets their line width and clearance
- vias and individual pins: sets their ring dia, drill dia and clearance
- individual pads: sets their clearance
- elements: set all their pins and pads

## Example

GUI: select a routing style; hover above a line, a via, a pin/pad of an element or the silk of an element; press Shift+Y; undo if necessary.

CLI: select objects, execute action ChangeSizes(selected, style)

CLI: to adjust drill sizes only: select objects, execute action ChangeDrillSize(selected, style)

## save/load and compatibility

Not affected, since the patch introduces actions and UI changes, no change related to the data model.

## plans

No plans, the feature is complete.