# Using CNC Work Offsets

**URL:** <https://forum.avidcnc.com/t/using-cnc-work-offsets/3007>\
**Category:** General Chat\
**Created:** [February 27, 2024, 1:28am UTC](https://forum.avidcnc.com/t/using-cnc-work-offsets/3007 "2024-02-27T01:28:54Z")\
**Posts on this page:** 17\
**Page:** 1

<div class="post-metadata">

**Author:** ![corbin](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.avidcnc.com/corbin/32/2800_2.png) [@corbin](https://forum.avidcnc.com/u/corbin)\
**Post date:** [February 27, 2024, 1:28am UTC](https://forum.avidcnc.com/t/using-cnc-work-offsets/3007/1 "2024-02-27T01:28:54Z")

</div>

Hi all! I wanted to share with you a new video I did on how to use work offsets, particularly how I use them in Mach 4. Let me know if you have any questions!

[![](https://canada1.discourse-cdn.com/flex027/uploads/avidcnc/original/2X/8/8eb83194a50cdd0a570293fb68244d5136fc9794.jpeg "CNC Work Offsets: How to use offsets to save time on your CNC machine setup") ](https://www.youtube.com/watch?v=iyP81afV-Io)

---

<div class="post-metadata">

**Author:** ![Eric](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.avidcnc.com/eric/32/3220_2.png) [@Eric](https://forum.avidcnc.com/u/Eric)\
**Post date:** [February 27, 2024, 1:43am UTC](https://forum.avidcnc.com/t/using-cnc-work-offsets/3007/2 "2024-02-27T01:43:32Z")

</div>

This is such an underutilized feature. Thanks so much for making this video.

---

<div class="post-metadata">

**Author:** ![gordo](https://avatars.discourse-cdn.com/v4/letter/g/f19dbf/32.png) [@gordo](https://forum.avidcnc.com/u/gordo)\
**Post date:** [February 27, 2024, 5:11pm UTC](https://forum.avidcnc.com/t/using-cnc-work-offsets/3007/3 "2024-02-27T17:11:38Z")

</div>

Watched this video. Well done again! Thanks for doing this! You could have another career as a CNC instructor.

---

<div class="post-metadata">

**Author:** ![MarkLindsayCNC](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.avidcnc.com/marklindsaycnc/32/30_2.png) [@MarkLindsayCNC](https://forum.avidcnc.com/u/MarkLindsayCNC)\
**Post date:** [February 27, 2024, 5:48pm UTC](https://forum.avidcnc.com/t/using-cnc-work-offsets/3007/4 "2024-02-27T17:48:28Z")

</div>

Another great video, Corbin. Thanks for posting it.

I’ve been using work offsets for about a year, and I posted 2 videos about it on my channel, but I didn’t know you could access the work offsets by using the commands in the MDI window. Thanks for that. I was using the Offset tab exclusively. That will really help.

I’m in agreement with you on wishing we had the ability to name the various work offsets we create in Mach4. I understand their reluctance in allowing it (standardization and all that,) but it would still be nice.

---

<div class="post-metadata">

**Author:** ![djdelorie](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.avidcnc.com/djdelorie/32/515_2.png) [@djdelorie](https://forum.avidcnc.com/u/djdelorie)\
**Post date:** [February 27, 2024, 5:52pm UTC](https://forum.avidcnc.com/t/using-cnc-work-offsets/3007/5 "2024-02-27T17:52:29Z")

</div>

What I do, for linuxcnc at least, is write a job file (like setup\_foo.ngc) that programs all the work offsets relative to the machine offset for a given setup.  
Linuxcnc can do this without moving the machine. So no matter what I’ve done to my offsets, I can reset them to the right offsets for a given project just by running the setup job.

I don’t know Mach4 but if it can do it too, that would be something really useful someone could figure out and share.

---

<div class="post-metadata">

**Author:** ![corbin](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.avidcnc.com/corbin/32/2800_2.png) [@corbin](https://forum.avidcnc.com/u/corbin)\
**Post date:** [February 27, 2024, 6:58pm UTC](https://forum.avidcnc.com/t/using-cnc-work-offsets/3007/6 "2024-02-27T18:58:58Z")

</div>

> [@djdelorie](#):
>
> What I do, for linuxcnc at least, is write a job file (like setup\_foo.ngc) that programs all the work offsets relative to the machine offset for a given setup.  
> Linuxcnc can do this without moving the machine. So no matter what I’ve done to my offsets, I can reset them to the right offsets for a given project just by running the setup job.

This is a great idea too! Are you just coding in the machine x/y/z offset, and using GCode to set it for a particular “Work Offset” (IE: G55, G56, etc)? I bet it could be done in Mach 4 with G92 to not move the actual machine. I’d have to experiment a bit with it.

---

<div class="post-metadata">

**Author:** ![djdelorie](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.avidcnc.com/djdelorie/32/515_2.png) [@djdelorie](https://forum.avidcnc.com/u/djdelorie)\
**Post date:** [February 27, 2024, 7:17pm UTC](https://forum.avidcnc.com/t/using-cnc-work-offsets/3007/7 "2024-02-27T19:17:28Z")

</div>

There’s a couple of ways of doing it, but LinuxCNC gives you access to all those numbers via gcode expressions:

[https://linuxcnc.org/docs/html/gcode/overview.html#sub:numbered-parameters](https://linuxcnc.org/docs/html/gcode/overview.html#sub:numbered-parameters)

So you can just store them directly:  
#5221 = 15.5 (set G54 X offset)

But there’s also a G10 code to just set the offsets:

[https://linuxcnc.org/docs/html/gcode/g-code.html#gcode:g10-l2](https://linuxcnc.org/docs/html/gcode/g-code.html#gcode:g10-l2)

G10 L2 P1 X15.5 Y10 Z5 (set G54 offsets)

---

<div class="post-metadata">

**Author:** ![djdelorie](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.avidcnc.com/djdelorie/32/515_2.png) [@djdelorie](https://forum.avidcnc.com/u/djdelorie)\
**Post date:** [February 27, 2024, 7:18pm UTC](https://forum.avidcnc.com/t/using-cnc-work-offsets/3007/8 "2024-02-27T19:18:25Z")

</div>

Looks like Mach has G10 L2 also:

> **[Mach4 G-Code and M-Cod... | MachMotion](https://support.machmotion.com/books/software/page/mach4-g-code-and-m-code-reference#bkmrk-g10-%E2%80%93-fixture-and-)**
>
> Introduction
> G-code is a special programming language that is interpreted by Computer Numerical C...

---

<div class="post-metadata">

**Author:** ![corbin](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.avidcnc.com/corbin/32/2800_2.png) [@corbin](https://forum.avidcnc.com/u/corbin)\
**Post date:** [February 27, 2024, 7:31pm UTC](https://forum.avidcnc.com/t/using-cnc-work-offsets/3007/9 "2024-02-27T19:31:05Z")

</div>

> [@djdelorie](#):
>
> Looks like Mach has G10 L2 also:

Cool, thanks! I’ll look into it – definitely could be useful.

---

<div class="post-metadata">

**Author:** ![NLE](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.avidcnc.com/nle/32/3880_2.png) [@NLE](https://forum.avidcnc.com/u/NLE)\
**Post date:** [February 28, 2024, 6:04am UTC](https://forum.avidcnc.com/t/using-cnc-work-offsets/3007/10 "2024-02-28T06:04:51Z")

</div>

Great tutorial, nice to learn how to use the MDI function to control the offset. I always just cut and pasted in the offset table.

---

<div class="post-metadata">

**Author:** ![Arlc](https://avatars.discourse-cdn.com/v4/letter/a/65b543/32.png) [@Arlc](https://forum.avidcnc.com/u/Arlc)\
**Post date:** [February 28, 2024, 6:08pm UTC](https://forum.avidcnc.com/t/using-cnc-work-offsets/3007/11 "2024-02-28T18:08:45Z")

</div>

If I understand this correctly, If I set the origin to be at 0,0 in the xy plane in fusion then this will correspond to where I set G54 on the physical work table as you demonstrated. Does this then become the upper left of lower left origin of the work piece if the model is in the upper right quadrant of fusion?

Do you set Z to the top of the table or top of the stock manually?

---

<div class="post-metadata">

**Author:** ![corbin](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.avidcnc.com/corbin/32/2800_2.png) [@corbin](https://forum.avidcnc.com/u/corbin)\
**Post date:** [February 28, 2024, 6:28pm UTC](https://forum.avidcnc.com/t/using-cnc-work-offsets/3007/12 "2024-02-28T18:28:32Z")

</div>

> [@Arlc](#):
>
> If I understand this correctly, If I set the origin to be at 0,0 in the xy plane in fusion then this will correspond to where I set G54 on the physical work table as you demonstrated. Does this then become the upper left of lower left origin of the work piece if the model is in the upper right quadrant of fusion?

Yes and no. In Fusion, you create a Setup. In that Setup you define the origin, along with the direction of the X/Y/Z axis. So, on the workpiece, it is wherever you set the origin point to be.

So, in this picture below, I have the origin on the top /left / back of the workpiece, and I intend to mount the workpiece vertically on my spoilboard.

 ![Screen Shot 2024-02-28 at 10.23.30 AM](https://canada1.discourse-cdn.com/flex027/uploads/avidcnc/original/2X/f/fe2fa223cff50b2798b409103986c502fa35984f.jpeg)

On my CNC machine, I find where I want that exact point to be, and save it in an offset (say G55) as 0,0,0.

> [@Arlc](#):
>
> Do you set Z to the top of the table or top of the stock manually?

It depends, but in general for work that is flat on my CNC table, I set the origin to be my CNC table, and in Fusion I set the origin point to be the bottom of the workpiece, like in this setup:

 ![Screen Shot 2024-02-28 at 10.26.37 AM](https://canada1.discourse-cdn.com/flex027/uploads/avidcnc/original/2X/3/34bbfbde9003f34cdf5f33b5e069b194a4e52313.jpeg)

I then save that point as an offset on my table in another location, like G56, and set the WCS in Fusion as I talked about.

However, if you don’t have an ATC, then saving the Z isn’t important; you will always have to touch off your bit on your CNC table every tool change.

I only use the ‘top’ of my workpiece when I’m doing something that is specific to the top – IE: such as VCarve’s, or vertical joinery. Otherwise, I prefer my CNC table as the Z origin.

This help?

---

<div class="post-metadata">

**Author:** ![djdelorie](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.avidcnc.com/djdelorie/32/515_2.png) [@djdelorie](https://forum.avidcnc.com/u/djdelorie)\
**Post date:** [February 28, 2024, 6:32pm UTC](https://forum.avidcnc.com/t/using-cnc-work-offsets/3007/13 "2024-02-28T18:32:41Z")

</div>

In fusion, you should see a marker that’s the “origin” of the CAM. That’s the 0,0,0 point that all the operations are relative to. In the real world, you need for your CNC machine to have its 0,0,0 point at the same point relative to your stock. You can set the X, Y, and Z components of these independently as long as you end up at the right spot.

In the past, when I’ve taught CAD, I actually glued three sticks together and painted them red/green/blue to make a real world “origin marker” that I’d hold against the real world object for reference.

What makes work offsets confusing is that your CNC machine can keep track of more than one of them, and which one it uses needs to match which one (or ones!) the Fusion CAM is expecting.

As for _which_ corner the origin is, it depends on which corner in Fusion your corner is. The origin marker tells you which way is “positive” so note if you placed the origin at the bottom of your stock or at the top, and do the same on your CNC machine. If you always touch off on your spoilboard, you’d always set the origin to be the bottom in fusion, for example.

---

<div class="post-metadata">

**Author:** ![Arlc](https://avatars.discourse-cdn.com/v4/letter/a/65b543/32.png) [@Arlc](https://forum.avidcnc.com/u/Arlc)\
**Post date:** [March 1, 2024, 5:14pm UTC](https://forum.avidcnc.com/t/using-cnc-work-offsets/3007/14 "2024-03-01T17:14:33Z")

</div>

Great video and info, Thanks

---

<div class="post-metadata">

**Author:** ![dmayne](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.avidcnc.com/dmayne/32/1244_2.png) [@dmayne](https://forum.avidcnc.com/u/dmayne)\
**Post date:** [May 13, 2024, 1:21pm UTC](https://forum.avidcnc.com/t/using-cnc-work-offsets/3007/15 "2024-05-13T13:21:01Z")

</div>

Great video. Since I learned to use offsets I dont even X,Y zero my material most of the time. I have an offset programmed to match a corner made by location pins. I simply home my machine then select the offset and home to machine in Mach4 terminology. Works perfect every time. A real time saver too. The only thing left is to zero Z for each bit.

---

<div class="post-metadata">

**Author:** ![corbin](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.avidcnc.com/corbin/32/2800_2.png) [@corbin](https://forum.avidcnc.com/u/corbin)\
**Post date:** [May 13, 2024, 2:03pm UTC](https://forum.avidcnc.com/t/using-cnc-work-offsets/3007/16 "2024-05-13T14:03:12Z")

</div>

Awesome! That’s pretty much how I do it too. It is such a time saver.

---

<div class="post-metadata">

**Author:** ![dmayne](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.avidcnc.com/dmayne/32/1244_2.png) [@dmayne](https://forum.avidcnc.com/u/dmayne)\
**Post date:** [May 13, 2024, 3:02pm UTC](https://forum.avidcnc.com/t/using-cnc-work-offsets/3007/17 "2024-05-13T15:02:49Z")

</div>

Funny enough - I thought my offset was not working once. It was not zeroing to the bottom left of my material. WTH I thought? It turns out that corner was not square. Using the location pins it was not matching up. I had to go and recut it on the table saw to square the two short sides. One end was just 1/32" off in width. Enough to throw off the zero. Once I did that it was perfect. Offset was where it was supposed to be. The other end was square. It just so happened that I chose to use the corner that was not.
