Aligning elements on schematics

It would be great to be able to align selected elements in the schematic editor, just like we can in the PCB editor.

Did I miss this function or is it indeed not there? Am I the only one finding it useful, was it ever mentioned for v7 and didn’t make it to the release?

I’m unsure how to understand “align” in this context. Could you provide an example?

Exactly like in the PCB editor. Selecting two objects, and being able to align them according to the usual criterions (top, v center, bottom, left, h center, right), and likewise being able to distribute a number of elements horizontally or vertically.

if you want to drag them in a sequential manner, then disable the grid or, alternatively, snap to grid

I see more problems than advantages. If one symbol horizontally has even (times 50 mils) length and second has odd length and you align them ‘h center’ than one end being off grid.
If symbol does’t have pins at right (like transistor) its most right graphic dot (in its circle) can be off grid and if you align it ‘right’ with symbol having pin at right you will get it off grid.

Aligning few symbols is not a problem. Aligning lot the same symbols is done during their first placement. If I want a vertical row of some symbols I:

  • place first one,
  • copy it under this first one,
  • select both and copy them under first 2 (now I have 4),
  • select them, copy (I have 8),
  • next copy and I have 16,
  • next and I have 32.

All them are aligned as there is no idea to not place them aligned.

The same can be done with blocks containing several symbols (like transistor with some resistors and capacitors).


Agree with @Piotr

By the time you have opened the align function, decided what needs aligning, how it is to be aligned, distances between symbols, aligned and then moved to where you wish, the job would be finished and forgotten if done manually.

We are dealing with a schematic here, 50mil grid and no board tolerances, in fact, no board. It is just a pretty picture. :slightly_smiling_face:

While I acknowledge all reasons Piotr mentioned I can also imagine some usecases. Yes, all this could be done with manual aligning items, but for some users this could be helpful. As this would be a auxiliary function nobody would be forced to use it.

@Asterix : If you want this feature, write a good feature request on gitlab. With reasonng for this request, maybe example usecases. And also show the not so easy usecases (like the one mentioned by Piotr: pins ending offgrid).

I also agree with Piotr and jmk.
Aligning things in the schematic editor is so trivially simple (on a normal 10mil grid) that I do not see how this function could be very useful. It is probably also not easy to implement because the schematic becomes a mess if things are not lined up on a reasonably coarse grid, and that would have to be put in the alignment thing too.

On top of that, you can also set the grid to your preferred alignment width or height, and then use that custom grid. KiCad V8 is going to have further grid improvements, among which different grids for different items, so you can keep schematic pins on a coarser grid then symbol texts.

There are also over 500 wishlist items on gitlab. I’d much rather see more widely usable features implemented. For example python scripting in the schematic editor. That would probably let you make a selection, type in a line or two with an alignment distance, and python aligns your schematic symbols (or creates an array or whatever).

Yes, implementing the “aligning” function later on as python addon is a good idea.
And also yes to “the python API is more important” than this aligning function.

But I think opening a feature request is nevertheless ok. Let’s see how many upvotes such a wishlist item is able to collect. Maybe we are a minority and there is big crowd in the real world which is waiting for a schematic aligning feature.
In the end the programmers decide (sometimes in favor of my workflow, sometimes not).


@mf_ibfeew, I’ll give you a :+1: for an open mind! :smiley:

Edit: I have to agree with Paul. I see a huge number of variables having to be set before an alignment tool can be executed, so would such a tool enhance Kicad? This would require a lot of programing expertise, an expertise maybe better spent on other projects.
I’m also a firm believer in a schematic being visually appealing and easy to follow for the reader. Symmetry, in my opinion, is not a consideration.

Like you, mf_ibfeew, I do agree that if the OP can see a use for this function, he can put together a case and raise a wish on Gitlab.

Agree with @jmk about open-mindedness.
But you and others ignore a nasty reality:
Perhaps 0.0001% of KiCAD users also visit Gitlab and cast a vote. Everybody else avoid it like the plague.
You have developers voting for others’ suggestions. That’s all.

I appreciate open-mindedness.
But there is also the reality of over 500 open feature requests on gitlab and a relative scarcity of KiCad developers. Those combined man they will have plenty of work for several years even if not a single new feature request is added.

And the combination of a very small improvement, which is probably difficult to implement because of the “grid thing”, and other ways that are already planned (python scripting), just do not add up to this feature being something viable in my mind.

Warning Off topic? rant.
At the moment I would like to make some bug reports (for mostly small things), but sifting though the 1500 open issues just to check if something is already reported is a serious distraction from “other things” getting done. So much that I have dropped it for the moment until I can at least get KiCad V7.99 running, because a lot of small usability things I’m still seeing in V7.0.7 may have been already resolved in V7.99. At the moment I am not impressed with KiCad V7. It sure has a bunch of nice features, but it has so many small nuisances that overall it feels like a step backward from V6. V7.0.0 was apparently very buggy (have not used it myself) and both V7.0.3 and V7.0.4 got pulled just for or after release because of … bugs?.

1 Like

I watched the presentation and what surprised me was the announcement of new functions and one of them is a window with the name of the program before launching (Altium hello) … the second thing is that there is strange silence about replacing plug-ins with built-in functions … it seems that the developers do not see Altium and they don’t take the best from there… I’m not saying that it needs to be repeated exactly, but there should be a standard… the third point is that after the release of a new version you need to wait about six months to start using it on an ongoing basis… the connection between releases is minimal and when converting a project from old to new, many errors appear… without new functions you can live without stability…

Thanks for all the comments. A few points:

  • Generally speaking, we sure are all unique, but I rather doubt I’m the only one who would find this feature useful. I’m sure I’m not that unique.
  • This is a pretty common feature for any “graphical” editor. I have seen it in other schematic editors too. This is not particularly unusual.
  • Depending on how you set up the schematic editor’s preferences, manually aligning objects using the grid as a guide may or may not work well. In my case, I do prefer displaying ‘dots’ for the grid and using a normal cursor (not a full window crosshair), so I’m pretty much in the worst case possible for manual alignment, especially at lower zoom levels (so to manage the alignment of larger blocks). But I find full window crosshair and easier to see grids much too obtrusive. A personal preference for sure, but here too I doubt I’m the only user liking less obtrusive views.
  • Yes I realize that the grid system in KiCad’s schematic editor would make this relatively difficult. Point fully taken. But because it’s potentially a difficult task considering KiCad’s constraints and design doesn’t mean the feature is useless. Just a thought. Again I’m sure it’s not trivial at all with a number of potential corner cases.
  • The way I would see it is that objects, or groups of objects would be referenced by their bounding box for alignment (pretty standard way of handling graphical ojects alignment). For symbols, I think the bounding box should not include the pins. Not including the pins would (as far as I’ve thought about it) yield the best results from a user’s perspective.

Certainly grid requirements make it a potential headache. Now, from KiCad v8 presentation, there seems to be significant improvements planned for the grid system in the schematic editor; I don’t know the full extent of these improvements yet, but from what I’ve gotten so far, they may make implementing this alignment feature much easier. We’ll see.

I’ve wanted this feature for years. There’s already an issue for it, you can upvote it there: Align and Distribute tools for Eeschema/Symbol Editor (#6769) · Issues · KiCad / KiCad Source Code / kicad · GitLab

That is quite clearly a different feature request.

“There is no right click menu for pin alignment meaning pins have to be individually aligned manually”

. . . it’s all about pins and about the symbol editor. Just use the grid . . .

Yes, although it may look similar from the title, it seems focused on aligning and distributing pins in the symbol editor, for which IMHO it’s much less of a problem.

Actually the main issue, as I exposed earlier, with the schematic editor is when dealing with lower zoom levels and larger blocks that we want to align for esthetic reasons, and in this case, the grid is not particularly helpful, especially when not using a full-window crosshair cursor.

Thinking about it, since the feature looks rather complex to implement with maybe limited added value for many, for now I think the easiest will be to use what’s already there: I’ll add a hotkey for switching full-window crosshairs (which I hadn’t checked that there was a hotkey setting for it), which should work for now. Again, at low zoom levels, it’s not going to allow perfect alignment to the grid, but it should be good enough.

1 Like

A post was split to a new topic: Snap-lines for aligning elements etc

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.