Work offsets (G54-G59)

Alright I have a question for you seasoned CNC users out there.
I’m new to the cnc world, so forgive me if the answer to this question is blatantly apparent and ive missed it.

I’ve got 4 parts that I’d like to batch out on the 1F, ideally I’d like to set G54-G58 to each fixture respectively. My issue is, and I’ve done some searching and can’t find a direct answer so forgive my ignorance if it’s been addressed, besides manually editing your G code with G10-L2 and manually adding in your XY coordinates, is there a way with the 1F controller to set XY zero for each offset? I tried in the MDI to put the machine in G54 mode and then zero then put in G55 into the mdi and zero’d again as ive seen videos of other controllers. But that doesn’t work, unless i’m doing it wrong?
I’m using fusion, and it seems pretty straight forward to set up multiple WCS in the your NC program but you still need to set the coordinates of g54-g55 and so on.

Any help would be greatly appreciated!!

I have not tried setting different WCS myself but my understanding is that there is only one WCS, no matter the gcode you send, only the single WCS is referenced.

This means that each time you call a change of WCS (and the stock changes position on your table), you should re-zero all the axis.
Each time you change tools but keep the same WCS, you should re-zero the Z axis.

As a workaround to multiple WCS, F360 allows patterns in CAM. Setup your tool paths once and define a pattern for multiple replications. Zero to the first instance. Re-zero Z when you change tools. You would need to arrange your stock and work holders at the positions defined by your pattern.


After looking closer at what the controller supports, I think it does support work offsets


So the basics are,
G53 G0 X0 Y0 Z0 - moves to the absolute zeros for the machine, as determined by homing
G10 L2 P1 X1 Y1 Z1 - sets the offsets for work offset G54 (based on table here), values you specify are offsets off of the offset from machine home (as determined by probing if any)
G54 G0 X0 Y0 Z0 - moves to the offset of X=1, Y=1 as defined in the previous step

The question remains to be answered,

How does the F360 post processor work with all this, and who ends up programming the offsets (manual or part of generated gcode?)

1 Like

In Fusion, in the setup menu, select 1 WCS and below that is a dropdown to multiply that WCS instance- and how many instances you multiply it by sets G55 thru G56. From there its up to the post processor to set that actual XYZ for each offset. From the videos and forums that I’ve read, professional machines, or even hobby machines with certain controllers like Mach4 have the ability right from the control interface to select what coordinates G55 thru 59 are and will move to that position when the G code references the next offset.

From what I’ve read, you can copy and paste your g-code manually in notepad and then copy paste it and execute it with G10-L2(3,4,5) and set in your actual XYZ for each offset.

Someone may correct me if I’m wrong here, still trying to understand this.

I’ve done something similar for other projects. main issue with that is your project would need to be from the same stock, or you have to be very precise with measuring where your material is to make sure my project ends up in the material.

Here is an old thread I started and answered after figuring our wcs for myself… May help in some way…

1 Like

Funny you mention that. Your thread is the one that i found most of my information regarding work offsets. I’m surprised more people aren’t asking about this topic.

Based on your thread though, you’re editing your g-code manually correct?

So basically the process would be post your CAD in fusion, Copy g-code and paste into notepad (or some other text program)
On the machine, Home> then set zero for G54> then Jog machine to your zero locations for other fixtures and make note of the XYZ coordinates.

In g-code, Paste code, then set each offset using G10

So something like this? Can I just reference the G10 list at the top of my G-code like this the onetime?

N5G10 L2 P1 X0 Y0
N10G10 L2 P2 X12.123 Y0

N25 S20000 M3
N30 G54
N35 G0 X4.075 Y2.025
N40 G43 Z0.6 H1
N45 G1 Z0.2 F160
N50 Z0.0994 F53.33
N55 Z-0.035
N60 X4.0747 Z-0.0389 F160
N65 Z0.6
N70 G53 G0 Z0
N75 G53 G0 X0 Y0
N80 M30

N85 S20000 M3
N90 G55
N100 G0 X4.075 Y2.025
N105 G43 Z0.6 H1
N110 G1 Z0.2 F160
N115 Z0.0994 F53.33
N120 Z-0.035
N125 X4.0747 Z-0.0389 F160
N130 Z0.6
N135 G53 G0 Z0
N140 G53 G0 X0 Y0
N145 M30

Just tried this ^ and it does work. The machine ran the first code at my Zero location. and then ran the second one where I set G55.


Still wish you could set your G55-59 locations in the 1F controller and forgo having to edit your G-code

Yeah that is how I solved for it… Manually replicating it. Because of wither building a fixture plate with repeatable locations or batching out the same project each time the workflow has worked well for me. I have applied it a few times now. I did not however think about the adjustment to x which would have helped the last time as my wasteboard bowed and so one of my positions was off on x a bit

Yeah I dont trust my fixture to be perfectly square to the machine haha but I’m glad this works. Should help out batching multiple items.

Also, I did find that right after homing, if you run a file with your G10 settings, the 1F controller will retain your g54-G55 positions. So if you have permanent fixtures with a known coordinates, you can run this before you run your programs. As long as Fusion (or other cad program) references G55 or G56 ect., the machine will move there. So you wont necessarily have to edit each G code file. I think you referenced this as a Macro file?

(T1 D=0.25 CR=0 - ZMIN=-0.75 - FLAT END MILL)
N10 G90 G94 G17 G91.1
N15 G20

N20 G53 G0 Z0

N21 G10 L2 P1 X0 Y0
N22 G10 L2 P2 X11.99 Y-0 Z-.072
N23 G10 L2 P3

N24 M30

I have been following this thread and have started to think about how to make this simpler.
Check out this topic i started and give feedback. Perhaps we can make something workable.
Work Coordinate Offset App proposal

1 Like

I looked at your app, Nice job. I like the idea of just punching in the XYZ for offsets and having it automatically do the G code for you. I would imagine that is how other controllers do it.