Coincidentally I kind of did the same and also shared my post 5 days ago:
https://forum.duet3d.com/topic/7187/problem-with-setting-working-coordinate-systems/9
I run both of them on the same model and they produce very similar results. The only differences I found were the following (when the tool-probing is deactivated):
- Before the the first operation starts:
Jacotheron:
; layer 1
; (Slot1)
G28 Z
G0 X10 Y10
M291 P"Insert Tool #1 (Dia:10 )" R"Tool Change - Paused" S3 X1 Y1 Z1
M3 S17000
M291 P"28000 RPM (#5 ~26000-[27000]-29000)" R"Spindle Speed" S3 X1 Y1 Z1
mine:
;SLOT1
M5 ;Makes sure the spindle is off before the tool change
T1 ;Call Tool 1
M3 S28000 ;Start Spindle at 28000RPM
G54 ;Set the working coordinate system
Jacotheron homes the Z-aces first, not sure why. I think normally homing should not be part of a cnc-program. Further he added a tool-change position which can be defined in the fusion post parameters which makes a lot of sense. However I think it should be in absolute machine parameters i.e. something like G53 G0 X10 Y10. Further the max RPMs can be capped using a fusion post parameter which is also cool as well as the comments that are issued regarding the tool change. However I think adding M5 would not hurt as the spindle should be stopped before any tool-change. T1 is missing in my understanding as without calling it the tool-offsets are not set. This might be obsolete if you probe every during the tool change. However I prefer to measure all my tools in before starting machining using tool-offsets. And even when probing during the machining I think it would be more correct to set tool-offsets using M585. Finally I think the right WCS should be called as well.
- Before the second operation
Jacotheron:
; layer 2
; (2D Pocket1)
M3 S17000
Mine:
;2D POCKET1
The call of M3 S17000 is obsolete as the spindle is already running at the right speed from the first operation. However typically it also does not hurt.
-
Mine is rounding feeds to full numbers as Jacotheron is rounding to one decimal (F333 vs F333.3). Irrelevant...
-
At the end of the program:
Jacotheron :
;
G28 Z
G0 X0 Y0
M5
;%
Mine:
M5
I don't understand why G28 Z and G0 X0 X0 should be called here. Adding a G0 X10 X10 (i.e. moving to the tool-change position) would make sense as the tool-change position typically moves the head to a safe place.
Looking at the post-code there are not too many differences as well. So merging the two posts together should not be to hard. I already have mine on github and would be open to do so...
Best regards,
Marc