Making MDI move the Machine to specific Location

So I’ve read what I can find and this is still fuzzy and what I am trying to do, based on my reading, does not make the machine move where I want it to move.

I am trying to tell CM to manually send a command to the machine to move the gantry/router back to a known set of coordinates. That is, I initialized my machine, set zero on my work, wrote down a position that was shown on the CM XYZ location readout, but then want to later tell CM to send the machine back to those known set of coordinates which were taken from the CM readout previously.

Can someone please help me figure this out? If my machine has been initialized, zero set, and I want it to go to a position I noted from the readout (say X 11.459 and Y -0.873) what is the command in MDI? I am confused by what I am reading as I am seeing stuff about relative position vs absolute position. I just want to say to the machine, “go to these XY coordinates” and have it move to that spot regardless of the gantry/router’s current parked location. Hope this makes sense.


As your work zero can change, you’ll want to use MACHINE coordinates for this. Machine coordinates, by default, will always be negative with the origin back right.
If you have those machine coordinates (let’s say X-112Y-200), you can send the command:
The G53 forces machine coordinates, but it is not modal meaning you’ll have to explicitly call it for every move in machine coordinates. Without the G53, you’re moving in work coordinates which should be, by default in the G54 coordinate system.
You are also in absolute position mode by default and that won’t change unless you change it. This means you’re telling the machine where to go, not how far to move.


You can also use 'Quick Actions" to do this:


Sorry, but I’m not following this, or perhaps I did not explain well or am just a little thick. I’m just now getting a handle on G code and how “machine coordinates,” absolute coordinates, relative coordinates, G54, or G this and that, etc. all work. What I want to do is pretty straightforward:

Here it goes again: I turn on my machine, initialize–machine returns to home corner, homes switches and sets up. I then manually move the bit to the center point on my work, I zero X and Y (offsets are now zero) and hit “zero” to tell CM “this is the starting point.”.

Now, I move the machine to, say, one corner of my workpiece, but I note the coordinates in the readout on CM. It says, and I write down, that the corner is at X 11.459, Y -0.873, and something for Z (which I don’t care about for now). I don’t know if these are “machine coordinates,” absolute coordinates, or relative coordinates. How does one tell?

So, If I manually “jog” the machine away from the corner that was noted as X 11.458, Y-0.873 in the CM interface, and I want to tell the machine to “move back” to those coordinates (X 11.458, Y -0.873) without the tedious process of using the “jog” buttons to slowly bump, bump, bump first the X then the Y into position, how is this done? Is there math involved in calculating the “relative” position?

Sorry, but to me, it seams it should be as simple as typing in G?? with the noted X and Y coordinates in the command, hit send, and the machine will either rapid or creep to the workpiece corner noted as X 11.458, Y -0.873.

Sorry to be obtuse, but, as I said, the machine does not respond to the commands in an intuitive sort of way.

Those would be Work coordinates and they are based on your work zero.
If you’re not changing your work zero, you should be able to simply send G0X11.458Y-0.873 to return to that position. What happens when you try that?

Machine coordinates are based on your homing switches which are at the MACHINE origin (X0,Y0,Z0). Your work coordinates are technically just offsets from that. Typically you never need to mess with machine coordinates unless you want to always return to a spot that’s a certain distance from a limit switch ( this is your absolute reference). To see the machine coordinates, click the Position title. (I don’t use Motion, so I’m hoping that’s still the way to do it)

1 Like

Go into Rapid Position and use the buttons there to return to XY zero, and 6mm above Z.

1 Like

Looks like you are working in inches (G20). The machine defaults to metric (G21). Try…


Yes, I’m working in inches, but see below

OK, so what happens is I only get a small amount of movement away from zero because the machine, no mater what, I discovered, interprets the coordinates in metric.
To get what I want, I have to first switch my preferences in CM to read in metric, set my zero, jog to the spot I want to return to later, note the METRIC X&Y from the readout, then proceed.
That is, if I type G0x11.458y-0.873 (the original imperial readout) machine only moves in mm. I tried G20G0x11.458y-0.873, but CM must be hardwired or something to only accept metric movements because the machine will still only move to X11.458 and Y-0.873 millimeters when sending commands through MDI.

Bottom line, I was able to accomplish my task, which was to realign a partially cut part by noting several specific locations along the cut path, jogging the machine through the above method back to those locations, and then slightly moving the part so that the bit, when lowered manually at those locations, lined up with the partially cut path.

Thanks to all for the help.

1 Like

I don’t use Motion, but it may be that you have to run those commands separately.
Try /G20 on its own line next time you need to do this.

1 Like

Thanks, Neil. I tried both putting G20 in the line as I described above and running it separately, as you suggested. CM still only interprets entries in metric value, from the best I can tell.

Been thinking about moving away from CM as the program also limits your machining limits and I have an aftermarket Z axis that would allow a larger machining area.

Thanks again to all for the help.

1 Like

Did you include the / before the G20?

1 Like

‘Quick Actions’ work in either metric or inches. I moved away from MDI as soon as Quick Actions became available, since there is no documentation about what CM does to the command before sending it.

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