Circular arrangement of vias

Please dont tell me, i have to get out my pencil and note down the center coordinates of a circle that i want to place vias around, when creating an circular array.

I even tried to be smart and started thinking there must be an easier way: Then i had the idea to place the origin there instead of noting down the coords. It did not work. It didnt work with the origin for drill files either!

A google search only brought results with scripting…

Can it be done without scripting? I dont want to write a script nor have more paper on my desk.

Of course i tried to use this function. But usually the center is not at 0,0.

You can use: PCB Editor / Place / Drill/Place File Origin (Also in the toolbar on the right side) to define a center point, and then use (0, 0) in the array tool as the center point (relative to that drill origin)

I did, but it didnt work. Wtf?

Maybe this assumes that that origin is also also set to be used as the display coordinates origin?

I moved the Drill/File Origin and created another array (from resistors this time), and this confirms that this origin is used for the array center.

Yes, indeed, that seems to be the cause. For the previous arrays, PCB Editor / Preferences / Preferences / PCB Editor / Origins & Axis / Display Origin was set to Drill/place file origin


When I set this to Grid Origin (and move the grid origin), then the grid origin is used as the center point of the array.

I also had a look at the official documentation. It does not mention what the center point of a circular array is. This is a bit confusing, but in retrospect, it’s also quite simple and logic. In the array tool you can set absolute coordinates for the center point, and these absolute coordinates are interpreted in “display coordinates”, and this can be any of the three options listed in the preferences.

Another option is to use the Place Footprint plugin. I have not used it myself so I don’t know what it does exactly, but it claims to be able to create a circular array.

Now that did the trick!

But WHY is this called “display origin”??

Because KiCad always uses its own internal coordinate system internally, in internal workings and in the file format, and what you see in the UI can be changed. Actual coordinates of items etc. aren’t changed, only how they are displayed. Being able to change the visible coordinate system – origin and direction of axis – has been added to KiCad only “recently” in its history.

the concept of display origin, drill origin, grid origin confuses me also.

What confuses me is why User’s don’t understand how simple it is to try and succeed…

Only need to:
Try one and see outcome.
Try two and see outcome.
Try three and see outcome.

And make Notes about them…


Try Coordinate system, grid and origins in the PCB Editor.

It should be named “user origin” or user defined origin, because this is what the user sees and uses. Has absolutely nothing to to with a display.

1 Like

Well, it’s “what the user sees in the display” vs. “what the program uses internally”. It has much to do with display.

we’re probably running into interpretations and definition confusion with the english language WRT the word ‘display’.
A better word, IMO for display would be the canvas. LOL…
For me the ‘display’ is the whole monitor… Not the window area with its own coordination origin.

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