Moving parts in schematic


I’m wondering wheter there is a setting to do what I want…
When moving a part in schematic, the wires attached to it don’t move. I would appreciate if I could move
parts, wires, and sub blocks. Actually moving a block of several components is a lot of work because the wires
get disconnected and the only way (apparently) to do it is to delete the wires and re wire one by one.
Is there a setting somewhere to make wire act lik rubber bands?
By the way, suppose that I move a component away. It gets disconnected. Then if I move it back to the same
place, will it be reconnected? Is there a distance condition for 2 wires to be considered as connected?
For example less than 1 grid?



There is rubber-banding, but not as you expect.
Grab the part with [G] instead of [M] and see for yourself…

[quote=“roboya, post:1, topic:8807”]
I would appreciate if I could moveparts, wires, and sub blocks. Actually moving a block of several components is a lot of work because the wiresget disconnected and the only way (apparently) to do it is to delete the wires and re wire one by one.[/quote]

Use a block selection over all you want to move and then hit [TAB] and see how it works.
You still have to be careful WHAT you select and HOW you move that block (direction) - it behaves similar to [G]…

Check the ENDs of wires and pins.
Unconnected = small circle/square visible
Connected = no small circle/square
Test for connected - grab part/junction with [G] and try to move it, if wires rubber band with the movement they are connected - cancel operation with [ESC]

wires/pins/junctions connect when they are on the same coordinate, there is no ‘snapping’ here. Stick to 100/50 mill grid and don’t change it in EEschema and you will have no problem.

For more shortcuts, use [Shift] + [?]


Hello Joan!

Sorry for the delay.
Many thanks, it just works as I wanted.
It could be G in both cases (component or block) for homogeneity,
but beside this, it works fine.
I have been searching fow a while, but is it possible to break a wire in
a few parts? After moving a component or a block, some wires will end
at an unwanted angle, therefore the need of breaking it in 2 or more parts.


You can do this in “Legacy” canvas. Hover the cursor over the track at the location you want to add a break, right-click, and select “Break Track”. The capability seems to be not yet implemented in OpenGL. (At least, not in my nightly circa Feb 2017.)


Hello Dale!
Thanks, it works! Not exactly as I expected (I thought the just broken parts would stick
to the cursor as rubber bands until I lay the break point somewhere, but this can be done
in 2 steps. Is the opposite operation possible (merge 2 segments into a single one when they
are aligned)? Is there a special setup allowing to do this automatically?

I found an oddity. Here is how to reproduce it.
Suppose you have 2 segments AB and BC
Break AB into 2 segments (AI and IB) (using right click)
Move I with G command to verify it works (it should)
Move I to B.
Right click on B. It gives you the choice of 3 segments, AB, BB and BC.
Might be good to get rid of a segment if the beginning is the same as the end.

I believe this automatically happens (at least in some cases) when you edit tracks in OpenGL.

I believe there is a “Clean Up Tracks” tool that is supposed to delete all those little crumbs and spatters of tracks.

These questions may trigger a philosophical debate over whether the actions (merging co-linear segments, and deleting extraneous segments) are necessary.



Thanks for your reply.

I believe this automatically happens (at least in some cases) when you edit tracks in OpenGL.
Yes, but OpenGL is for the PCB, right?

Automatically cleanup colinear wires in the present state would be counter productive. Example:
you break a wire into 2, but the sytem automatically merges them into one. It could be used if
the break & move break point happens in one action. Then if you drop the breakpoint at the same
place, or an another location of the same line, then if would do nothing.

But for a non-segment as explained above (segment BB), I think it wouldn’t harm to have it automatically


Yes @dchisholm is talking about pcb new. I think he missed the fact that you have been asking about eeschema.

I don’t think the stable version of eeschema has any wire cleanup tools. (Nightly has some cleanup tools for wires. This is meant to help with the automatic management of the junction circle.)

If your later remark was in any way meant for pcb_new: In open gl you don’t really need the break track feature anymore because there is the “delete old tracks” feature, interactive drag and the shove router.

1 Like

I briefly looked in to what it would take to implement a more intelligent wire cleanup algorithm for eeschema, and decided that it was not worth doing so before eeschema is ported to the GAL framework. There are a few other things that need to happen before that can even start, but perhaps for KiCad 6.0 or 7.0…


Just a heads up - we love the work you guys are putting into the software! :+1:


I’m not currently using nightlies but does this mean you have to run another tool to get junction dots managed automatically?

I think the intention is that eeschema does the management. Not sure how well it has been implemented.
I personally did not test this. (As i am also only running stable)
More details here:

There are a few changes in nightlies that will be in 5.0 related to wiring. Basically, a number of cases where eeschema did not properly manage the junctions between wires when you drag wires are now working better. You can also drop a component onto an existing wire and the component will be inserted into the wire, which is a nice time saver! (Seth Hillbrand is responsible for these improvements)


You are correct - I had PCBNew on my mind when I wrote that.