[ request] "Clean wires" in schematics


The pcb editor has a nice feature: clean tracks and vias.

This could be useful in the schematics editor as well.

When you move a component, it often results in a mess in the wires. So, a clean up function would be useful, IMHO…

Have a nice day

I’m not sure about this request. Personally, I doubt I’d ever use it.

Take these examples:

If I Dragged or Moved the IC, I’d use the existing wires, one at a time, to help redraw the connector pins to the IC pins. I use Hotkey “Back tick” to highlight the net, redraw the wire to something sensible, then “Alt + 4” (Select connection) > Delete to remove the now unwanted section/s of the wire.

Pink wire is new net and kept part of old net.
Pink, shaded blue, is the “Alt + 4” part of the old net which can now be removed with the Delete key.

In the second example, dragging the wires to create new connections is probably easier (and quicker) than deleting the lot and starting again.

Don’t you think it’s a bit tedious?
What if the wires could be “auto-routed” based on their labels/net names ?
Such an “autorouter” shouldn’t be that difficult to implement since the constraints are much lighter than for the traces on a pcb (most of all, two wires may cross each other, which makes the whole process way much easier…)

The subject was “clean wires” not auto-routing.

I don’t think auto-routing schematics is feasible.
You will have to give a net name to every pin on every symbol before you pushed go. And if I forgot a bypass cap: “now what did I name that net???”. Constraints would be impossible to manage because the auto-router doesn’t know what you are designing.

Auto-routers in the PCB are dead easy, by comparison, because all they are doing is replacing wires with tracks and shuffling the already connected footprints around.

Besides, drawing a wire to connect five pins just has to be easier and quicker than typing maybe 20 or more characters, and with far fewer mistakes, not to mention the horrific punishment to ones’ OCD the auto- router may cause. :dizzy_face:

I don’t trust Autorouter’s and won’t use them.

And, I quit using Fritzing a few years ago. But, I do keep it around (and have upgraded it). One of the, perhaps, few good things about Fritzing is it’s Easy-to-use, adjustable Autorouter that can populate using Jumper-Wires where needed in PCB.

The point of this response is Not to promote Fritzing but rather, only to show that Schematics (and PCB’s) can be Autorouted in Fritzing… Thus, I can imagine there are Kicad compatible Autorouters that may also Autoroute Schematic’s…

tool similar to “clean tracks and vias” for the schematic editor

I can imagine that this could be useful for some people, under some circumstances. Like with many ideas it would be your task to write a (official) feature request on gitlab.

This request should be a little more specific than your short opening text in this thread.

To give also my opinions and thoughts regarding this idea:

  • I think I personally won’t use it - I often forget the usage of more special tools. For cleanup work I would still end up with dumb manually click-select-delete deleting remaining wires

  • I’m also not sure how good/bad the relation between invested programming work in respect to gained user comfort would be. But in the end this decision is up to the developers. And it depends on available developer time and developer interest.

  • If such a feature is implemented, than I think:

    • possible actions could be derived from the ERC:
      • cleanup (deleting) completely unconnected wires (ERC-check: wires not connected to anything)
      • cleanup dangling wire ends
      • cleanup unconnected local+global labels
    • it must be possible to restrict the cleanup-work to:
      • current selection including selected subsheets
      • current selection without including selected subsheets
      • currently opened subsheet
      • the complete global schematic

The tool-restriction to the current selection is necessary because for instance dangling wire ends on connectors are used deliberately by some users, whereas dangling wire ends on other parts of the schematic are unwanted. So it must be possible to restrict the cleanup to specific areas of the schematic.

At least, have the wires “following” the part to which they are connected when the part is moved, just like it happens in DesignSpark.
The example given by jmk above is unbelievebly tedious for such an advanced CAD program as KiCad

I used the term Autorouter by analogy, not implying that the way of working should be exactly the same.

Apparently my suggestion does not meet any success, but if someone already used DesignSpark in those use-cases, he would understand what I mean and see the benefit of it.


At least, have the wires “following” the part to which they are connected when the part is moved, just like it happens in DesignSpark.

But this would be a different thing than a subsequently “cleanup wires” tool.
And with v7 there are multiple possibilitiesto retain the connected wires:

  • moving a connected symbol: symbol is disconnected from wires and freely moved (leaving old wires behind) - right picture of jmk
  • dragging a connected symbol with “any angle setting”: retains connection, the wires are not moved but than get arbitrary angles to retain the original connection to the pins (similar to left picture of jmk)
  • dragging a connected symbol with “90° / 45° angle setting”: the connection algorithm tries to retain the wire connections and tries to retain nice 45°/90° angles (with good looking 90° bends) on the wires. This mode shows currently mixed results and maybe needs improvement, but at least it’s going into the direction “retain connectivity and 90° wire bending”

So the discussion is good, so you could clarify what you really want.

I went out of my way to deliberately create a big, hard to follow and difficult to clean, mess with the LH illustration. Personally, I wouldn’t get myself into this position in the first place. Like PCB footprint placement, I’ll place all symbols thoughtfully on the schematic before attaching wires and the very little cleanup would be:

As I mentioned in my first comment; “personally, I wouldn’t bother”, but if you see a use, by all means, open a request. :slightly_smiling_face:

1 Like

One thing I’ve thought about once, but didn’t follow up on: what if we could have airwires in the schematic?

You’d have two modes, one where the netlist changes when editing, and one where it doesn’t, and anything that would change the netlist is highlighted. That way, you could remove wires and get an airwire instead, “reconnect this”.

This is a lot of work though.

1 Like

As far as I’d be concerned, too much work for too little use.
My workflow on a schematic involves very little symbol moving once the wires have been placed. When I do move symbols after wires are attached, it is usually in large selections to balance out the look of the sheet.

1 Like

A schematic is an abstract drawing to show the reader a clear, intended, workflow of a physical circuit.

If you are going to move components around in such a way that requires a large clean up of a wiring mess, you have failed to show the reader a clear, intended, workflow in the first place, or, you have changed the workflow (which means a different physical circuit).


I can see where this is coming from, I sometimes get little stub wires after copying or deleting. A useful side effect is that almost but not quite connected wires to off grid pins would be removed.
Not a high priority though.

1 Like