Where is (0,0) on your CNC and where is it mentally when you draw?

Hi,

I’m still writing my design software for my MPCNC (Any interest in writing software for the MPCNC? - #51 by rwillett) and am pondering how to handle what is technically a simple issue, where should (0,0) be on the CNC machine AND in the software.

Most software I use tends to assume (0,0) is somewhere top leftish on the screen. I haven’t ysed Photoshop or Illustrator for years, but all the stuff I use such as Afinity Designer, Affiity Publisher, Affinity Photo puts (0,0) at top left.

Fusion 360 is 3D so life sometimes is complicated but I think it puts it bottom left.

My MPCNC assumes (0,0) is bottom left.

So if I keep my software as TL for (0,0) I will have to translate all operations to bottom right AND put a cutting area on the software. e.g. the user can define a cutting area of height 400mm x width 600mm. This means that (0,0) on the MPCNC is actually (0,400) in the software and bottom right is (600,0) on the MPCNC and (600,400) in the software.

The maths is trivial and I have to iterate across the points anyway so doing a quick translate on points makes no difference, but mentally it feels odd to have the design software with origin at TL when most MPCNC machines are (I assume) BL.

Thoughts and views welcomed.

Rob

My mental image while drawing agrees with the CNC. I think of it as a 2D graph with the origin on the lower left. This also agrees with 3D printing, and most other tools.

I can adjust to which quadrant I’m working in when drawing, but honestly, I don’t pay a whole lot of attention to what the absolute coordinates are, since those are very unlikely to coincide with what I’m actually printing or cutting. In CAD, I tend to center my first or main feature on the origin of the XY plane. This is still true, even if the finished piece will be the YZ or XZ plane, or of the whole part will be somewhere else entirely.

I know many people who set their 3D printer up so that the origin is at the center of the bed, so that they can run the same Gcode on multiple printers, and the kinematics don’t matter (Deltas are often configured this way regardless, I gather.) I still like the origin at the front left of the bed. I would rather re-slice for a different printer anyway, and I haven’t really got any intention to run anyone else’s gcode on my printer.

In general though, CAD programs I’ve used I work similar to the machine.

In Tinkercad, you can choose not to place a ruler origin, or you can place the origin to any quadrant, but I place it bottom right. FreeCAD increases Y to the top and X to the right (XY plane viewed from the “top”) Fusion360 does the same. I think that’s a reasonable choice.

(0,0) on my machine is wherever the router happens to be when I power it up. (0,0) when drawing is usually lower left.

But conceptually (0,0) is bottom left, when you increment X it goes to the right and when you increment Y it goes away from you?

Its not the absolute position of (0,0) but the relative direction of X and Y that I’m trying to understand how most people think of it. I didn’t make myself clear.

Thanks

Rob

https://docs.v1engineering.com/learn/coordinates/

IMO, it is preferable to have it at the lower left. But with the option to put it in the center. If I am cutting something out of flat stock, I want to preserve the stock, so setting the zero in the BL means I can use the least of the material. If I am carving onto an existing door or something, then I would want to make sure the design is centered on the workpiece.

Transforming coordinates is a really common problem. If you don’t have a reason to do it yet, you will. So I would suggest expect transforms and make the transforms and which coordinates you are in explicit. It just doesn’t help to cut corners.

@jeffeb3

I hadn’t seen that article, so thanks for that. It’s really confirmed what I thought, I will have to manage multiple coordinate systems.

Moving the origin to the centre of the bed isn’t an issue, nor the X axis, just the Y axis is back to front. I need to think about how to parameterise it so we can move the origin around the various corners. I has thought about this when writing the ruler code, but had put it on the back burner for another day, that day is coming up now.

Thanks

Rob

1 Like

I’ve always used the bottom left as 0,0.
This is so that you have a definite “home” spot to return to no matter what you place in the CNC machine, and its easy to check that you are in fact at 0,0 on the corner instead of starting at a center point.
Its also been easier to think of the workspace as the upper right quadrant of a graph such that movement on the X-axis going from left to right (0 to another point) is a positive move. Same with the Y-axis, moving away/up from the 0,0 point is also positive.
Its a bit more tricky if 0,0 is at the center and you want to move to a negative point. You have to keep track of +/- absolute points instead of all positive.
I also learned AutoCAD in college, and the lower left was 0,0. I guess that location in the lower left has always been used for my experiences.

Being conventionally taught, I am also a conventional bottom left type when it comes to raw maths and theory… but with cad I do a lot of things with the origin to make modeling easier. For example something that has mostly cylindrical features may be easier to model with xy centered on the model, or an enclosure where the bottom of a pcb centered on a mounting hole may make sense. Sometimes I have the origin centered on the bottom of a mounting hole on a pcb if it helps me means easier and more accurate translation of measurements to cad.

For cam, it also depends… generally my thinking in cam has been molded by using f360 for everything cam. I know that doesn’t say much, but it sounds like you know fusion so that should be a good idea of what I am used to doing.

As with the overriding majority so far, I too am a bottom left user. It’s a first quadrant thing for me and how I was taught to draw graphs at school. If it aint broke…

Bottom left because this is America

Lower Left mentally. My biggest mental problem is my Burly is setup with a larger Y than X.
Can’t count the times I’ve exported a job from estlcam and then realized everything is 90 degrees off :smiley:
I know I could change it, but if it ain’t broke…

@kd2018

We only use metric here, hope your mental maths is up to date :slight_smile:

Rob

@ddbuster

Having the Y greater than the X isn’t a problem. Currently I allow widths up to 2.5 metres by 2.5 metres. For those countriues that haven’t quite yet moved to metric, thats 8.2 feet by 8.2 feet.

There’s no real issue with going even more but some things like calculating the cuts on a 2.5 metre by 2.5 metre could well take a long time.

I wantd to put some limits in as the wider and longer the options, the more data I have to work with.

If anybody feels that 2.5 metres by 2.5 metres is too small, let me know.

Rob

So the concensus is that lower left is the way to go.

Does anybody (or any machine) use Top Right or Bottom Right?

Having things centered is just a flavour of bottom left (or top left).

Thanks

Rob