Feature request Idea: Use **[Ctlr]** to accept DRC violations, and create net names

Recently I was experimenting with custom rules to modify the clearance around tracks. This did not work very well, and I had to deal with a lot of DRC violations. When moving a track that already has a DRC violation, you need to use the [Ctrl] key to accept a new position if that new position still has a DRC violation:

I found this behavior a bit annoying, probably because I do not understand it. If the new position still has a DRC violation, there is no big change for as far as KiCad is concerned, so why use that extra key? Solving the DRC violations often required two or 3 drags of track segments to completely solve it, and I was continuously toggling the [Ctrl] key (KiCad does box selection when [Ctrl] is held).

In this other thread: cant-connect-pads I got the idea to turn it around. Requests for drawing a PCB without a schematic are a recurring topic, and KiCad does not work very well this way. Drawing a PCB without a schematic is also useful for reverse-engineering.

What if [Ctrl] always overrules DRC and allows you to create DRC violations. This would be a very simple addition to the KiCad codebase, and if combined with net renaming (see below) it is also a quite powerful feature.

Net renaming

When a footprint is placed on the PCB, all pins are part of the net, and tracks can be drawn between random pads, but because it’s all the same net, KiCad does not enforce clearances between such connections. If KiCad auto-generates a net name when tracks are connected to a pad with the net name Then KiCad would enforce clearances.

Similar when a symbol is placed first on the schematic, and then [F8] to the PCB. In this case the pins have net names like: nconnected-(U2-Vout-Pad10) All pins have a different name which prevents making connections.

These features would make reverse-engineering a project like below much easier.

Also worth mentioning:
Net names for pads and tracks can be set by opening the properties dialog for a pad or a track. You can select any existing net name, or create a new one:

When changing a net name, KiCad has an option to update all connected copper to the new net name:
image

With the [Ctrl] key Idea above, this would combine these functions and make reverse-engineering a lot quicker and easier.

KiCad V8 also has a: PCB Editor / Tools / Update Schematic from PCB, and with this you can also push changed net names back to the schematic. and this creates labels on pins.

image

This net creation seems to be the last piece of the puzzle that is still missing at the moment to make reverse engineering “fairly comfortable”.

Any ideas on this, is it worth a feature request on gitlab?

I think those are both worthwhile features, although I don’t run into either problem very often with my workflow. The reverse-engineering workflow is the more interesting one of the two for me. I have, in the past, had to re-create an existing board from a bare PCB, or needed to create a one-off board, without wanting (or needing) a schematic.

For me - the biggest issue I have with Kicad is positioning. As many other people have noticed, moving multiple parts to precise positions is often quite cumbersome. I suspect that all the tools are there, it’s just that the UI is somewhat opaque as to the best way to actually do the move…