Board editor : Improving via insertion

Here is an issue I want to make.
As you will see, it needs some brainstorming of the best way to do that.
What’s for you the best way to improve the insertion of vias ?


To add via, the only way is to use the “Add Via” icon (or the same in the menu).
The problem is that you have to select the good one.
All the more that for now, the net names are not correctly shown on pads (


Add an auto-net via functionality that set automatically the net of the via regarding to the closest net.
Worth case is that you put the via on a pad (or trace) with same net, and move it after.
It can be an option (checkbox in the via context menu).

Another way is to draw a trace and when typing ‘v’ (for example), it places a via at the current position.

Or to place a via when the user change of layer during the routing of a trace

Some brainstorming:

  • By default, the net could be set to “Auto”.
    • When set to “Auto”, when placing a via on a plane, the via will use the net of that plane. This is often useful for stitching vias.
    • When a via touches multiple nets, a dialog could be shown to choose the desired net.
  • I like the approach with typing v for adding a via when drawing a trace. In general, there are quite a few keyboard shortcuts I’d like to have in the board editor. Would we need some foundational work for this first, @ubruhin? Some kind of keyboard shortcut manager class? Or could these things already be cleanly implemented today?

If there a wire and a plane at the inserted position, it should take the wire.
If the user wants the plane he can put it in another place.

And it can be useful that when placing a via on a wire, it adds a node (it divide the segment in two parts) to really insert the via.

My proposal for adding a vias:

Routing mode (I drawing a trace currently - DrawTrace command is active) - placing ‘Via’ which is connected to an actually routed track.

  • click to ‘Add Via’ button or press hotkey ‘V’- add via on cursor location aligned to current grid. Routed track without layer change!
  • change layer by command toolbox or press hotkeys ‘+’, ‘-’ or ‘L’ to change active routing layer (+/- as inc/dec of signal layer, L - change between Top and Bottom layer only) of routed track with place vias aligned to grid also. This method requires visibled a ‘Via’ toolbox during drawing trace! Maybe is most higher time for declaring a new command: ‘Routing’ and ‘UnRouting’ :slight_smile:

Really no, draw trace is for drawing a base element, not route whole track. Routing is more complex action/command and require more parameters.
Btw: ‘Unrouting’ is not ‘Removing’.

Normal mode (no commands active)

  • click to ‘Add Via’ button or press hotkey ‘V’ and placed via is automatically connected to manually selected signal (by command toolbox).
  • click to Add Via icon or press hotkey ‘V’ and placed via which is not connected, because I manually selected ‘no signal’ (by command toolbox). Value ‘no signal’, needs to be add to signal’s listbox (can be used also for free traces, plane,…).
    Placed ‘via’, is aligned to a grid of course.

Automatic connection method sounds good and will be needed, but I propose this to delay to future, until resolve system of moving object catching to SNAP points (I will prepare proposal). This is little bit long way run.