Problem with offsets?

I am doing a second step at machining a part on the PNC. The first step was done on a Shapeoko to rough it down to mount it on the PNC (yes, I could have finished it on the Shapeoko, but since it is for the PNC, probably better for fitment to use it).

I feel like this is an offset issue when posting the gcode. I am trying to machine around the center of rotation since the part is mounted directly on the B table with a spacer to prevent hitting the B table accidentally. I can manually command the machine where the holes are expected to be, but when I run the program to finish the holes, the machine looks like its about to do a hole above the hole it is suppose to finish. It looks like the offset is in the Y axis (ignore the loose screws, I was rerunning the op to get a picture for this post)

Sequence of events I have tried:

  • Boot machine, home axis, probe tool, select tool, move X/Y to actual zero, zeroing X/Y in the G54 column, touching off Z (on the face of the part with A at 90), zeroing Z in the G54 column, uploading gcode, opening gcode, cycle start

  • Boot machine, home axis, move X/Y to actual zero, zeroing X/Y in the G54 column, touching off Z (on the face of the part with A at 90), zeroing Z in the G54 column, probe tool, select tool, uploading gcode, opening gcode, cycle start

  • Boot machine, home axis, clearing offsets using “Clear Current System”, rebooting and trying the first one above again

I’m sure it’s probably something I am missing, but what should I look for?

Hi @truehybridx,

When setting G54, the machine’s A and B axis have to be at zero. As of now, Kinetic Control does not have the ability to make the proper translation calculations when work offsets are applied with the rotary axes at anything other than zero.

I would recommend putting your WCS origin at the top-center of your part in CAM (with the proper orientation) and then you only have to set the Y axis work offset. You can set the Y axis work offset by touching the side of the tool off to the top of the part and accounting for the tool radius, or set a gauge block or 123 block on your part and touch off on that, then account for the radius of your tool plus the height of the block.

Hopefully that makes sense but if it doesn’t let me know and I can elaborate further.


Hi Q,

So if I am understanding you right, the initial origin needs to have the Z perpendicular to the face of the B table?

So my sequence of events would be something like:

  • I already have the WCS origin at the “top-center” of the part in CAM, albeit technically upsidedown as that is how I am mounting it for this setup. Unless this complicates things? (see image below)

  • The X offset is fine where it is, jog the machine to its X origin and set the G54 column for X (with A/B at 0)

  • The Y offset needs to be set by touching off the tool on the face of the part, while A/B is 0? or using 123 block or something of known size accounting for tool diameter.

  • For the Z, would I be able to rotate A to 90 so I can touchoff the part, then move A to 0 and set the G54 for the Z?

Those steps are really close but not quite correct, if I am understanding your setup correctly.

Is your part centered on the machine’s B-table? If so, the X and Z axis origin points are already aligned with the machine’s X and Z origin when the A axis is at zero, so you do not need to set a work offset for those two axes. The only axis that is not aligned with the machine’s origin point is the Y axis, therefore you need to apply a work offset (using the method you mentioned above) to define where your WCS origin is relative to the machine’s origin point.

I was able to get the Y touchoff without needing a block. I plugged in 0.0625 since im using a 1/8 endmill.
The mill was still off from the whole still (might have been closer)

Here is a picture of what the part looks like mounted in the machine and XYZ at 0 and A at 90 to show the part is atleast mounted in the center (except for Z having a gap from the face of the part)

For giggles I went and tried to run the program without setting any offsets, I guess leaving G54 as its default after the finicky clear button and the endmill then seems like it is aligned with the hold (just with a decent gap with the Z)

So maybe just need to offset the Z?

It is a little hard to say what ultimately fixed the hole alignment problem without know more about your CAM and machine setup, but I am glad to hear you got that sorted out.

The “Z” offset you are still seeing is actually a Y offset because the work offsets have to be set with A at 0, turning Z into Y.

Now that you know your hole alignment is good, I would try setting that Y work offset one more time (make sure you are at A0) to see if that resolves the “Z” offset you are seeing at A90. And, of course, make sure your tool has been measured.

I won’t be able to give it a real try until tomorrow so I can monitor the cut.

What information should I add to this to make this thread more helpful for future readers?

Sounds good!

I think you have done a pretty good job of explaining the issues and what you are seeing on your end. Thanks for being so thorough!

Does the B table offset (the one provided with the machine that’s different for each machine) get preserved when upgrading to Kinetic Control?

Seems like when I try to change the Y offset or the Z offset (touching off the part, with/without A being at 90), the hole it out of alignment. Not sure if its useful but I’ll attach the gcode I have been trying, with my comments as I have been picking the first block apart to see when things change.

Does the machine have to be rebooted just to clear the offsets? If I try to clear them without a reboot, nothing happens.

1_pnc_holes_24208 - Copy.ngc (967.4 KB)

The B table offset and all the other calibration overlay values are not modified when upgrading to Kinetic Control.

You can clear the G54 offsets in the SETUP tab. I have attached an image showing how to clear the G54 offsets. You do not need to reboot the machine to clear the G54 offsets.

I can see you have been working with Q.

Yeah, that works and clear it for whatever is there after a fresh boot of the machine. Whenever I scrap a job and rehome, it doesn’t seem to clear or set them again. Though, the partial job that runs might have the machine in an inconsistent state?

Okay I went ahead and just ran the programs start to finish after setting the Y offset like Q said and it seemed to cut correctly. IDK it looked off when it starts but it worked.

@truehybridx thanks for the update. I am glad to hear that you were able to to successfully cut the part!

It is very possible that only partially running the program and then stopping it was putting the machine in a strange state that was making it look like offsets were/weren’t getting reset.

If you need any more assistance feel free to reach out to us at

Take care,