Development Highlight: PCBNew Layers, DRC and Toolbar Palettes

Some great workflow improving changes were made to PCBNew in this Development Highlight for the future KiCad V6 😄

Layer Management

Jon Evans introduced a brand new Appearance control in commit bd14f8a82.

The entire Appearance control which is on the right hand side of Pcbnew has received a visual and functional overhaul

Clip of the new Appearance control

In addition to the existing functionality, there is now the ability to Show all Layers, Dim non-selected layers and Hide non-selected Layers

Clip of the new layer dimming

Object types also get opacity and visibility control independent of layers

Clip of the new object options

Individual nets and net classes can also have color overrides sets independent of their layer

Clip of the new object options

Finally, there are Layer Presets, which allow you to either use predefined presets or your own to quickly switch layer settings.

Clip of the layer presets

User Layers

Wayne Stambaugh in commit 188232de6 added the ability to give all layers a custom name and nine new user definable non-copper layers.

Clip of the new layer options

Simply set the layer set to custom

Clip of the new layer options

And you’ll gain the ability to add the new User Layers

Clip of the new layer options

Toolbar Palettes

Several toolbar actions and new ones combined into toolbar palettes under one toolbar button in "drawing toolbar" which is located on the right hand side of Pcbnew.

These need palettes when clicked on and then dragged left, will open up to show you related tools you can activate and replace the existing tool button with.

Clip of the toolbar palettes

New Design Rule Check (DRC) Engine

Thanks to the work of multiple contributors including Tomasz Wlostowski, Jeff Young, and others. The DRC engine and dialog in PCBNew have received an overhaul.

The DRC dialog has received a visual uplift.

Clip of the new drc dialog

As a major part of the DRC engine overhaul, it has been made possible to script your own rules which allows for more complex rules than can be described by a dialog and makes it easier to reuse them across projects.

The Board Setup window under File > Board Setup contains the new page to store the rules

Clip of the new layer options

Rules look like this

(rule HV_HV
   # wider clearance between HV tracks
   (constraint clearance (min "1.5mm + 2.0mm"))
   (condition "A.NetClass == 'HV' && B.NetClass == 'HV'"))
(rule HV_unshielded
   (constraint clearance (min 2mm))
   (condition "A.NetClass == 'HV' && !A.insideArea('Shield*')))

More info on the syntax can be found by clicking the Syntax Help link in the Rules page of Board Setup and documentation will be updated for version 6.

Note These features and nightly builds are in development, please only use them for testing and experimentation