# Tool Offsets and Mach 3



## TomS

I've come to the point in my very short CNC career where setting up a tool table is starting to make sense.  Since I began CNC'ing I resorted to touching off each tool and resetting Z zero.  This works OK but now it's time to move forward.  Before crashing and ruining a cutter I thought I'd run my setup past the resident guru's on this site.

Tools include four cutting tools and a Tool Zero as the reference.  I lowered the Tool Zero and touched off on the top of the part and zeroed the Z axis DRO.  Loaded Tool 2, touched off on the top of the part and noted the Z axis DRO reading.  In this case it was -3.5392.  I entered this number in the Tool Table.  Followed the same procedure for Tool 3, Tool 8, and Tool 9 and confirmed that the tool offsets were saved (see attached screen shots).

Then I opened the Fusion 360 generated gcode file and changed the "T" number and "H" number to the corresponding tool number in my tool table (sample gcode file attached).

If I'm understanding this process correctly I will touch off Tool Zero and set the Z axis DRO to zero then run the gcode and change the tool as indicated at the M6 command.  Am I doing this right?  As I said I'd rather ask first before crashing a $40 end mill.

BTW - When I click on the "Help - Tool Offsets" button why does the Z axis move in the "-" direction?  Thought it was a help information button and ran the 19/64" drill into the top of the part. 

Tom S.


----------



## TomS

Well I went ahead and cut "air" using the tool height offsets I entered into the Mach3 tool table.  Visually the tool offsets seem to be correct so I guess I did it right.  Tomorrow will be the true test when I cut some steel brackets.

Tom S.


----------



## TomS

Well that didn't work.  Something changed, probably me, and again I ran a drill into the part and ruined it.  This is becoming very frustrating.

This is what I did before starting the machining run today.  Keep in mind I ran an air cut yesterday and visually the machining paths looked good.  I homed the mill and set my part X and Y reference to zero.  Set my Tool Zero to top of the part and zeroed the Z axis DRO.  Double checked my tool offsets against Tool Zero and they were close.  See the attached Tool Table screen shots.  Started a program run and Tool 8 did it's thing OK.  Loaded Tool 9 and it jammed into the top of the part.  Double checked my tool offsets and Tool Zero was off more than 3".  Reset Z zero and ran an air cut and Tool 8 (spot drill) comes down and stops about 1-3/8" above top of part.  My DOC is .05" so I'm no where near the correct Z height.  At this point I'm not sure where to go with this. 

A little background on the CAM side of things.  I didn't like some of the speeds and feeds so I set up my own tool table in Fusion 360.  I ignored putting length and diameter offsets into the tool table because my understanding is Mach3 uses offsets from it's own tool table.  Is my thinking correct?  I also elected not to include a G28 command.  Didn't seem logical for the machine to go to the home position at each tool change.  No other changes from yesterday.

Fusion 360 is a very good program but the myriad of selections can be a bit daunting, especially for a new user like me.  I've attached my gcode text file for reference.  Let me know what you think and how I can get this program to produce usable parts instead of broken cutters.

Thanks,


Tom S.






Edit:  Tried inputing length and diameter offsets into Fusion 360.  The defaults are the tool number.  Wouldn't save my entries.


----------



## jbolt

Hi Tom,

All of my tools including tool Zero (ref tool) are set to the spindle nose since I use the TTS system. Lets say tool zero (ref tool) is 4" from the tool holder shoulder that contacts the spindle nose to the tool tip. I measure this with a height gauge and a small granite block with a hole in it that allows the tool holder shoulder to rest against the granite block. When I zero the tip of the reference tool, tool zero,  on the part, in the Mach 3 Offsets page I have the "Guage Block Height" box set to +4.0000". I then make sure the "Tool" is set to "0" and then hit "Set Z". Mach3 now knows that the reference offset to the spindle nose is +4.0000" above the part. All other tools in the Mach 3 tool table are offset according tho the tool table settings.

In the image below the "Gage Block Height" is set to my reference tool height of +4.0000", The "Tool" is set to tool "0" and I have pressed "Set Z". The machine Coordinates read +4.0000" but the "Current Work Offset" is -4.0000" or 4" below the spindle nose.




Now in this image I have called up tool 5 which has a height from the tool holder shoulder (spindle face contact) to the tool tip of 3.000". Below the "Tool 5" box, the "Z Offset" is shown as 3.000" (tool height). I have not moved the Z axis so the "Current Work Offset" is still -4.0000" but the machine Coordinates is now +1.0000". Mach 3 has subtracted the +3.000" (height of tool) from the +4.0000" (distance between the spindle nose and part) and now knows the tool tip is +1.000" above the part.




My CAM Program in Solidworks is HSM Works. I believe Fusion 360 uses HSM Express the 2.5D verion. In the HSM tool library I setup all the tool parameters for the purpose of doing tool path simulations. HSM outputs in the G-Code the tool number, cutter offset, spindle speed, feed rate and coolant/mist toggles. The tool height in Mach 3 is pulled up from the Mach 3 Tool Table. In my Mach 3 tool table I only fill in the tool name and height. everything else is left at zero.

If you ever have to reset the part Z zero with the reference tool during a run where a cutting tool has been called up you must change the "Tool" number on the "Offsets" page back to to tool "0" before resetting. If you reset the zero with a cutting tool number that has a height value in the tool table you are resetting the Z zero to that tools offset which is different from the Reference tool offset. I have made this mistake more than once so I have a habit of keeping my finger near the stop button when doing a run for the fist time.

I hope this makes sense.


----------



## TomS

jbolt said:


> Hi Tom,
> 
> All of my tools including tool Zero (ref tool) are set to the spindle nose since I use the TTS system. Lets say tool zero (ref tool) is 4" from the tool holder shoulder that contacts the spindle nose to the tool tip. I measure this with a height gauge and a small granite block with a hole in it that allows the tool holder shoulder to rest against the granite block. When I zero the tip of the reference tool, tool zero,  on the part, in the Mach 3 Offsets page I have the "Guage Block Height" box set to +4.0000". I then make sure the "Tool" is set to "0" and then hit "Set Z". Mach3 now knows that the reference offset to the spindle nose is +4.0000" above the part. All other tools in the Mach 3 tool table are offset according tho the tool table settings.
> 
> In the image below the "Gage Block Height" is set to my reference tool height of +4.0000", The "Tool" is set to tool "0" and I have pressed "Set Z". The machine Coordinates read +4.0000" but the "Current Work Offset" is -4.0000" or 4" below the spindle nose.
> 
> View attachment 234399
> 
> 
> Now in this image I have called up tool 5 which has a height from the tool holder shoulder (spindle face contact) to the tool tip of 3.000". Below the "Tool 5" box, the "Z Offset" is shown as 3.000" (tool height). I have not moved the Z axis so the "Current Work Offset" is still -4.0000" but the machine Coordinates is now +1.0000". Mach 3 has subtracted the +3.000" (height of tool) from the +4.0000" (distance between the spindle nose and part) and now knows the tool tip is +1.000" above the part.
> 
> View attachment 234400
> 
> 
> My CAM Program in Solidworks is HSM Works. I believe Fusion 360 uses HSM Express the 2.5D verion. In the HSM tool library I setup all the tool parameters for the purpose of doing tool path simulations. HSM outputs in the G-Code the tool number, cutter offset, spindle speed, feed rate and coolant/mist toggles. The tool height in Mach 3 is pulled up from the Mach 3 Tool Table. In my Mach 3 tool table I only fill in the tool name and height. everything else is left at zero.
> 
> If you ever have to reset the part Z zero with the reference tool during a run where a cutting tool has been called up you must change the "Tool" number on the "Offsets" page back to to tool "0" before resetting. If you reset the zero with a cutting tool number that has a height value in the tool table you are resetting the Z zero to that tools offset which is different from the Reference tool offset. I have made this mistake more than once so I have a habit of keeping my finger near the stop button when doing a run for the fist time.
> 
> I hope this makes sense.



Jay - thanks for responding.  Yes, your explanation makes sense.  In my situation I am setting the gage block DRO to .000" (no gage block used) and referencing the cutting tools to tool zero which I touch off to the top of the part then set the Z DRO to "0".  Subsequent tools are touched off to the top of the part and and the corresponding Z DRO reading is recorded in the Mach3 tool table.  Up to this point I think we are doing essentially the same thing.  

Where it's confusing to me is when generating gcode for a Setup Fusion is generating a T8 and H0 setting but when I generate gcode for a single operation, e.g. spot drill, Fusion spits out T2 and H2.  Should the H setting reference Tool 0 (H0) or the tool number (H8)?

I hope I'm making sense.

Tom S.


----------



## jbolt

In the G-code the H & T should be the same number for the tool used i.e. T2 & H2.


----------



## jbolt

In the code you posted it looks correct. Each tool has the same T & H number. If this is not working then you have an issue with how you are entering the data into the tool table.

Because you are using the tip of the master tool as your zero the offset of each subsequent tool will be the difference in height plus or minus. Say tool 2 is 1.000" longer than tool 0. You would enter +1.000 in the tool table for tool 2. When you zero the master tool on the part and then pull up tool 2 (without moving the Z) the Part Offset will read zero (z has not moved) and the Machine Coordinate will read -1.000". The tip of tool 2 in now 1.000" below the top of the part because it is longer than tool 0.


----------



## jbolt

Also make sure the tool offset toggle is on (green light below the Help - Tool Offsets button)


----------



## TomS

jbolt said:


> In the G-code the H & T should be the same number for the tool used i.e. T2 & H2.



That's what I have in the gcode text file I attached above.  When I ran an air cut earlier today, after setting Tool 0 to top of part and setting Z axis DRO to .000", the tool went well below top of the part.  Had to hit Stop or it would have crashed.  

I haven't found a way to input tool length offsets into Fusion.  When gcode is generated I get a H0 code.  If I manually change the H code to the corresponding tool number I still get a crash.  I'm thinking the post processor is looking at the Fusion tool table and not the Mach3 tool table for tool offsets.

Tom S.


----------



## jbolt

What CAM program does fusion have?


----------



## jbolt

The post processor should not be offsetting for Z heights. The Z values generated by the post processor should only correspond to the amount of movement for the tool relative to the Z zero. Mach 3 does the height offset based on the settings in the tool table.


----------



## TomS

jbolt said:


> What CAM program does fusion have?



Haven't a clue.


----------



## jbolt

I just looked at a Fusion Tutorial and it is a version of HSM with a different interface. The tool table is the same. If I can figure out how to install F360 I will take a look at the post processor.


----------



## TomS

jbolt said:


> The post processor should not be offsetting for Z heights. The Z values generated by the post processor should only correspond to the amount of movement for the tool relative to the Z zero. Mach 3 does the height offset based on the settings in the tool table.



I get what you are saying but it is not reflected in the code.  For some reason Mach3 tool offsets are not being included in the generated code.  I can manually change the H number but it has no effect.

Tom S.


----------



## jbolt

There must be a setting in Fusion 360. I installed it but I cant seem to find the CAM.

You might also try the Autodesk forums and/or post in the Drawing, Layout & Cam forum on this site.


----------



## TomS

jbolt said:


> There must be a setting in Fusion 360. I installed it but I cant seem to find the CAM.
> 
> You might also try the Autodesk forums and/or post in the Drawing, Layout & Cam forum on this site.



In the upper left corner there is a box that says "Model" with a down arrow next to it.  Click in the box and a drop down menu appears.  One of the options is CAM.  Hope this helps.

Tom S.


----------



## TomS

jbolt said:


> There must be a setting in Fusion 360. I installed it but I cant seem to find the CAM.
> 
> You might also try the Autodesk forums and/or post in the Drawing, Layout & Cam forum on this site.



Been on the Autodesk forum for several hours today.  Haven't found or received a definitive answer yet.  Will try the Drawing forum here.  Did a general search but didn't find anything.

Thanks,

Tom S.


----------



## TomS

I regenerated code after using the Fusion tool table instead of my tool table.  Lo and behold the "T" and "H" numbers match!  Looks like my tool table is the culprit even though I filled it out like the Fusion tool table.  A work around is to generate the code then edit it.  Not a big deal as the code file isn't too big.  I still would like to find out what is going on so I can make the correction.

Tom S.


----------



## jbolt

TomS said:


> I regenerated code after using the Fusion tool table instead of my tool table.  Lo and behold the "T" and "H" numbers match!  Looks like my tool table is the culprit even though I filled it out like the Fusion tool table.  A work around is to generate the code then edit it.  Not a big deal as the code file isn't too big.  I still would like to find out what is going on so I can make the correction.
> 
> Tom S.



I'm not sure what you mean by use the Fusion table?


----------



## jbolt

Attached is a g-code for a simple 1" x 1" x 2"  block with two holes drilled in it. One is a .5" hole drilled 1" deep and the other is a .25" hole .5" deep. I'm curious what your g-code looks like for the same part? The work coordinate is on the top in the upper left corner.


----------



## jbolt

Whew! Wow Fusion is different than Solidworks. 

Okay so I was able to replicate the part I made in Solidworks and do the tool paths. Other than the tool numbers being different the g-code is virtually the same. 




Which post processor are you using?


----------



## TomS

jbolt said:


> I'm not sure what you mean by use the Fusion table?



Fusion CAM has a built in tool library for various materials.  Besides cutter physical features, e.g. cutter diameter, shank diameter, number of flutes, etc., the table contains speed and feed data.  When you select a tool for a machining operation and generate gcode the speed and feed data is included.  

Tom S.


----------



## TomS

jbolt said:


> Whew! Wow Fusion is different than Solidworks.
> 
> Okay so I was able to replicate the part I made in Solidworks and do the tool paths. Other than the tool numbers being different the g-code is virtually the same.
> 
> View attachment 234445
> 
> 
> Which post processor are you using?



I'm using the Generic Mach3 Mill PP.


----------



## TomS

This is so very confusing and frustrating.  I modeled the test block you suggested above, setup the CAM process using the default Fusion tool table, and generated gcode.  The T numbers and H numbers match, which they should.  I then generated gcode using the spot drill and 19/64" drill from my tool table.  The T and H numbers match!  To test further I opened my part file, the one that's been giving me grief, and reselected the appropriate tools from my tool table.  Guess what?  The T and H numbers match!  Yesterday and last night they didn't.  Not sure what's going on but the only thing I did was shut down Fusion last night and restart it this morning.  This is so very strange.  Now that I have what appears to be the correct code I'll do another air cut and see what I get.  I'll report back.

Tom S.


----------



## jbolt

Great, at least you are now getting the correct T & H numbers. 

The CAM in Fusion is HSMWorks which I believe was originally a third party plug-in for Solidworks. This is what I use in Solidworks. Autodesk bought them a few years ago and incorporated it into Fusion with a different interface. 

When you say "my tool table" I'm Assuming it is custom tool profiles you have setup in the Fusion tool library?


----------



## jbolt

The only thing I can think of that would give you a H0 in the code would be if the tool number was not assigned to the Length offset on the Post Processor tab of the tool edit dialog. The "Number", Length Offset" & "Diameter Offset" Should all be the same. 




I'm not sure how you are doing it but when I use a pre-defined tool I will copy it and paste into my library and then edit it to assign appropriate parameters including the tool number.


----------



## TomS

jbolt said:


> Great, at least you are now getting the correct T & H numbers.
> 
> The CAM in Fusion is HSMWorks which I believe was originally a third party plug-in for Solidworks. This is what I use in Solidworks. Autodesk bought them a few years ago and incorporated it into Fusion with a different interface.
> 
> When you say "my tool table" I'm Assuming it is custom tool profiles you have setup in the Fusion tool library?



Yes, My Tool Table is a custom table I set up.


----------



## TomS

jbolt said:


> The only thing I can think of that would give you a H0 in the code would be if the tool number was not assigned to the Length offset on the Post Processor tab of the tool edit dialog. The "Number", Length Offset" & "Diameter Offset" Should all be the same.
> 
> View attachment 234457
> 
> 
> I'm not sure how you are doing it but when I use a pre-defined tool I will copy it and paste into my library and then edit it to assign appropriate parameters including the tool number.



The offset boxes had the appropriate tool number inserted yet the generated gcode didn't come across with matching T and H numbers.  I can only guess that when I opened Fusion yesterday something didn't load properly and the resultant gcode was not correct.  Today is different.  Just got done post processing the gcode and it looks fine.  Next step is running an air cut.  As you can imagine I'm gun shy.  I've got my fingers crossed it will work.


----------



## jbolt

Let us know how it goes. If you are still have an issue then we need to look at how you are imputing the heights in the Mach3 tool table.


----------



## TomS

Well that didn't go well.  Ran an air cut for each of the four operations.  The spot drill, rough contour, and finish contour ops worked fine.  The 19/64" drill op still wanted to drive the drill through the vise.  Thinking it may be a code issue I compared the spot drill code to the 19/64" drill code.  Didn't take me long to figure it out.  The spot drill code had G43 before the Safe Z move and the "H" command.  The 19/64" drill code had G43 after the Safe Z move so the tool offset wasn't referenced for that move.  Being that the 19/64" drill height is about 1.9" longer than Tool O I can understand why it was doing what it was doing.  So I deleted the Safe Z move (still had retract/feed height set at .2") and ran the code.  Worked perfect!  

I have no idea why the post process put G43 after the Z move for that operation only.  I'll look through my CAM setup, and probably post this on the Fusion forum, to see what I can find.  I've looked at the post processor but computer language is over my head.

Jay - thanks for your help.  It's always helpful to get another opinion.  

For reference here is the gcode comparison.

Spot Drill                                                                      19/64" Drill
M5                                                                                M5
M9                                                                                M9
T8 M6                                                                          M1
S1075 M3                                                                     T9 M6
G54                                                                               S1075 M3
M8                                                                                G54
G0 X0.9448 Y-1.877                                                     M8
G43 Z0.6 H8                                                                G0 Z0.7
Z0.2                                                                              G0 X0.9448 Y-1.877
G98 G81 X0.9448 Y-1.877 Z-0.05 R0.2 F2.7              G43 H9
X1.9121 Y-1.3804                                                          Z0.2
G80                                                                              G83 X0.9448 Y-1.877 Z-0.5 R0.2 Q0.0742 F2.7
Z5.000                                                                         X1.9121 Y-1.3804
                                                                                     G80
                                                                                     Z5.000


----------



## jbolt

Odd that the G43 would be placed wrong? 

Your code looks odd. Why is there a mix of T8, T9, H8 & H9 in the code????

Can you post the txt or tap file?


----------



## TomS

jbolt said:


> Odd that the G43 would be placed wrong?
> 
> Your code looks odd. Why is there a mix of T8, T9, H8 & H9 in the code????
> 
> Can you post the txt or tap file?



There are four machining operations; spot drill (T8), 19/64" drill (T9), 3/8" end mill roughing contour (T2), and a 3/8" end mill finishing contour ( T3).  Here's the gcode file.


----------



## jbolt

Okay that's better....

How odd that in the Drill 2 cycle the safe Z is after the M8, before the X Y move, and not after the G43.


----------



## TomS

jbolt said:


> Okay that's better....
> 
> How odd that in the Drill 2 cycle the safe Z is after the M8, before the X Y move, and not after the G43.



Odd indeed!


----------



## TomS

I looked at the code for the other part I'm making which is a mirror image.  Same tool, same setup just a mirror of the "problem" part.  The code is correct.  G43 is before the Safe Z move.


----------

