Setting origin of coordinates

One very easy workaround for this problem is to move the board to the 0,0 point, then do your operations that is easier to do when for instance a board outline corner is at 0,0 and when you are done move the board back to a nice looking place in the middle of the drawing.

Drawing the outline (or at least one corner) with a grid like 1.00 mm or larger, makes the board easier to move to 0,0 and back again (being on the same grid)…

1 Like

You are right, Magnus, this is exactly what I do, except that I don’t do manual move, but a Ctrl-M with a [+20;+20] displacement. If I still need to convert coordinates, let it be easy.
Still, from the viewpoint of how hard to make it:
relative coords are existing, they are initialised by Space, they are displayed on bottom status line.
Some --I think not too hard-- modifications needed:

  • All coordinates given by numbers (e.g. at Footprint Properties - Position - X,Y) are counting in relative coord system.
  • Let relative coord origin make to survive: save and restore to/from .kicad_pcb or .pro file.
  • Make a hotkey (e.g. Ctrl-Space) to reset relative coords for convenience.
    (Stored coordinates may be in original absolute system, a displacement is only needed when displaying and editing numerically)
2 Likes

I’m a new user to KiCad, having previously used Design Spark for the last few years.
I’ve found myself here after suffering the same issue as the original poster, why does KiCad not has a moveable Origin?

The very helpful comments made by Joan have helped in understanding what KiCad currently provides.

Despite trying to apply a new page layout with the Origin in the Lower Left corner I’ve been unable to get the Origin to move.
Regards Sean

Somewhere deep down there of course need to exist some ABSOLUTE origin. On top of that there could be an “absolute” origin from where all x and y values in boxes and dialogues stemmed, relative to the ABSOLUTE origin hidden away from the user.

In the new canvas you can select everything, hit ‘ctrl-m’ and easily move everything by a defined distance. I would say that is very close to a movable “absolute” origin, or equivalent even depending on your philosophy. You just need negate the distance you want to move =)

And with the page layout editor I didn’t know existed until I read this thread even the page borders can be moved out of the way. And in the new canvas you’re also allowed to pan beyond the page limits with ‘ctrl/shift-mousewheel’!

Finally I found a way to resolve this using auxiliary axis in KiCad 5. First make the auxiliary axis to your preferred position. Then while plotting use auxiliary axis as origin.Attaching the screenshot for same.

1 Like

That’s great, but I want to see coordinates in my axis in that case. I still see only the sort of arbitrary axis.

Screenshot_2019-06-13_21-37-08

I get my coordinates from the mechanics guys, so need those as inputs. If I simply plot my coordinates for others, I could use any reference I want.

1 Like

User-selectable display origin support is coming in v6.

2 Likes

User coordinates are good and all but it might not be the best workflow. A better approach might be Kicad StepUp: a Seamless ECAD/MCAD PCB Data Integration

2 Likes

This may have been mentioned already but in the Layer Manager, Items menu you can just turn of worksheet so the drawing border and title block is no longer visible.

@b_dar:Thank you! Exactly what I needed.

Re Template: What the heck is up with the default template origin? The upper-left inside corner is 12,12 and the outer corner is 10,10. Is there a reason for this? It feels super arbitrary.

A number of common issues could be quickly resolved by simply updating the default template so the upper inside corner aligns with 0,0. Is there a reason not to?

Re: Coordinate system. The odd thing about the eschema coordinate system isn’t the default template being positioned in the 4th quadrant of the Cartesian plane. The odd thing is that the numbering system used for the y-axis does not conform to the typical Cartesian coordinate system used to describe the quadrants. In the usual (mathematical) system, y values in the 4th plane, heading away from origin, would typically decrease in value. With Eschema, these Y values get larger going down and smaller going up.

The inverted-Y is an analog analog. People working with video refreshes and plotters view an information stream as starting at the top with 0,0 and then proceeding to [max,max]. Kicad outputs to a “plotter” … ergo. While not entirely invalid, in GUI-based editor/creator software generally it is kind of an anachronism these days IMO.

For me, it is less work at every later stage to have coordinates output from this tool to represent true offset from origin in the orthogonal coordinate system used by all the other software. So it was interesting to notice KiCad converts from it’s internal system to classic orthogonal coordinates when creating Gerber output. The output places objects positioned within the default template in the 4th plane with properly adjusted negative Y values (raw KiCad coordinates would likely create a mirror of the expected output in the 1st plane for most external tools)

That makes much of this moot for my purpose.

Getting more traditional coordinate output for Gerber files is mostly a matter of ignoring the default template and shifting work to the proper plane. Start with an origin of 0,0. Then place board outlines/components in the traditional +/+ plane and simply work with an “-” indicator on the Y coordinate. This generates Gerber output with objects correctly positioned in the desired positive coordinate space when loaded in other processing tools.

Without reading all the 2 year old posts, :wink: , legacy code. I think the developers have this on their list. Not sure if it will be V6 or not. Someone that knows will probably venture along to correct me shortly.

Hi, I will spam to upvote these issues to get implemented in v7 (coordinate system related):







1 Like

Average hobbyist here: I see the PCBNew screen like a sheet of paper, that I draw on. If I want a PCB that’s 100 x 100 mm, then I draw that somewhere in the middle. Using the tool, I can measure from anywhere to anywhere, to place things etc.

I quickly learned that using large grids for most the stuff saves me a LOT of time too.

So why IS the absolute coordinate position so important?

This seems to be implemented in v6 now. See Preferences → Preferences → PCB Editor → Origins & Axes.

Thank you Kicaders for finally making this something normal. (normal in the sense of caders).

I think you mean v7, but yes I already noticed and used it just this week, as I have a great customer who delivers exact placement for connectors that I can now just enter.

Apart from some stability issues, v7 has been a godsend so far.

1 Like

I just enter connector placements since I started to use KiCad (v4.0.7) .
The only cost was to have no sheet frame and position your PCB regarding the origin as you want.

You’re welcome. This was one of my biggest annoyances when I started using KiCad, so I fixed it. The power of open source development!

No. The “Origins and Axes” feature was first implemented in v6.

1 Like

I think this thread can now be closed as the function was implemented over 1 year ago.