Origin and it's axis [absolute coordinate origin]

please forgive my butting it - from my ‘User’ standpoint, it’s simple and need no other approach…

I set the Auxillary Origin and the Grid Origin (Usually overlapping but image shows them separated only for Clarity in this post.

Pressing Spacebar will set the Cursor current point to ‘Zero’ and mouse dist is shown at bottom of window.

Also, I set these Origins in my Template files so they are always where I want them when starting a new project using my templates.

[EDIT] Oh, and the Origin: Origins are set at Top-Left to reflect the starting point of Monitor Pixels. Thus, no matter the size of the Monitor, the Origin is always constant. Thus, graphic programmers prefer this same location. SVG spec declare this as the only valid ref point and most other graphic programs follow this protocol.

FYI - I CNC mill my PCB’s and prefer origin at Lower-Left for milling. Thus, my default PCB setup is shown below…

Lastly, if exporting Gerbers, click the box ‘Use Auxillary Origin’. It makes life easier…

Simple question, How do I add this component in the center of the PCB using Position X and Y ???

There may be an easier way, but a “brute force” method would be to calculate the center from the bounding box of the outline, then place the component there.

You can try if the distribute and align stuff from the right click context menu helps. Select two parallel lines, the chip and then distribute in the orthogonal direction of the lines you currently selected.

Three methods come to my mind:

What Rene said, but in pictures (one align center and one align middle)

Or put your component in a corner and then use math in the move exactly window:

image

Or put your component in a corner, make that corner the 0,0 position (space bar) and then move your component with the mouse to the center.

In your picture you have selected only the Reference of the footprint not the footprint itself.

Have you tried to enter X=0 and Y=0 and place your PCB so that it has a center at 0,0?
Before starting first PCB with KiCad I spend some time to make my decisions how I will be using KiCad. One of them was that I will be placing PCBs around point 0,0. It is not because I’d like to place any IC at center but I really always have some symmetry in PCB (dimension, holes) and it is just easier to position one hole at +3mm and another at -3mm then to calculate the right positions. I have nothing against negative numbers :slight_smile:

1 Like

I agreed with your point and Placing an IC is just for the reference but if we have absolute origin at bottom left if will be easy for all the component and the mechanical dimension.

Thank you for pointing that out, anyway this is just for reference I just want to place component at specific location for example at center or at very complex position for example x = 2mm and y = 2.44mm with respect to origin at the bottom left…

I think you indicating this for footprint editor, there already an (0,0) origin present in the center so that will be easy for us. but in the pcbnew it is very difficult because the origin is present somewhere at top left of the sheet

I agree with you that it could be more straight forward, but that is PCBNew, where I quickly defined a board border and put the first semi-complex footprint that I found, the footprint has a reference on its center and the rest works as I described.

EDIT:
Define your border and your footprint:

Make your corner the 0,0 coordinate (space bar)

Move your footprint to the corner:

Move your footprint exactly where it should be:

Profit!

1 Like

this will help if we want to add the component with respect to some lines or in the center but what if i want to place this ic at very specific location something like at (x = 2.55mm, y=4.46mm) ??

Okay, Thank you, Will tryout that…

EDIT: Hello, Thank you so much, this actually helped me and may also help others too.

1 Like

I’m used to have origin at bottom left as I was using Protel 3 for many years, but I don’t see any important difference between having origin at bottom left or at top left.
I prefer to have the origin at center and I am using PCBNew that way (I have modified the frame definition to replace it with small cross at origin).

1 Like

Well it would be of help if you ask the question you want an answer to. After all placing it at a specific point is a very different usecase then placing something at the center.

To be honest placing it somewhere with a known distance is actually a lot easier. There are at least two options.

One is the place relative tool. Here it now depends on what you want your thing to be relative to. If you want to have the second thing relative to another footprint (example a mounting hole) then you just need to select your object -> ctrl + r (or right click -> position relative) and in that dialog say “select item” and click the reference mounting hole. Enter your desired distance into the respective fields and click ok (you can even use polar coordinates here so can say i want distance 20mm but 45°)

Be aware that the tool uses the center of a footprint (as set in the footprint editor) or center of graphical object for calculating the distance.

Which means if your reference point is the end of a line then you will need to either place some temporary object there (a layer alignment marker would do) or more likely the grid or auxilary (=local) origin.
Snap to object makes this quite easy as you can use that to snap whatever tool to the end of a line (you can force it with “Alt”*). And then in the dialog select either the origin you have placed or again via select item your new reference object.


And then there is the move exactly tool. You can simply first place your footprint exactly at your reference point (snap by object again) and then us ctrl+m (right click -> move exactly) to get it to wherever you want it to be.


To be honest both these tools are much more useful to me than a manual selection for a the origin could ever be. After all that way i can just place stuff relative to whatever. What i would however like is being able to select for example the end of a line as the reference or even the intersection of two lines.

2 Likes

And there is even another way.
Knowing the origin and dimensions of your board, let’s say the bottom left corner is at absolute coordinates (50,50) and the board is 50x20, edit the footprint properties and enter 50+25 for X and 50-10 for Y .

1 Like

Hello, Thank you so much for the detailed explanation, this is what i wanted to learn. This actually solved my issue. Thanks Again. :grinning:

I’m working on porting this to 5.99 now. There have been a lot of changes to the KiCad code base in the last year, but I’m making progress.

Not much else to do this weekend, ya know…

4 Likes

Just having a play with 5.9.9.0
I placed a cross hair at 0.0, Importing my dxf & positioned the 2 cross hairs. I now have a an accurate mechanical drawing to align components, mounting holes, keepout etc.
Only problem is the Y values are inverted (both my 2D & 3D CAD have +y above zero on screen. Maybe could add a checkbox “Invert y”, that would be cool.

. The significant benefit now is being able to set the origin same as my mech. CAD, this enables 1:1 position verification.(especially after changes).

regards

The internal coordinate system of KiCad will not be changed, it will be what it has been: the zero point in the upper left corner of the “page”, X from left to right, Y from top to down. The changeable coordinates are for the UI only.