# Mach3 errors need help



## bpimm (Dec 3, 2018)

I have recently switched from Alibre to Fusion3D for my CAD/CAM and for the most part I'm having reasonable success. The last part I'm working on I have been making for a few years and there are a few things I wanted to change so what better time to update them and learn a bit of fusion.

I'm getting an error in Mach3 when I load the Gcode, it runs fine in the simulator in Fusion. The error is "Tool Radius not less than arc radius with comp". I'm not using any tool compensation, I have a very basic grasp of Gcode and I'm having trouble debugging this.


Mach3 shows it as line 26 but in GWizard editor it is line 28

This code runs fine in GWizard simulator as well, it looks to me that fusion and Mach3 aren't getting along very well, I'm using the mach3 post that comes with fusion.

I had to switch the file type from .tap to .txt to get the forum to accept it should be able to read it either way.

Thanks for any insights.


----------



## TomS (Dec 3, 2018)

bpimm said:


> I have recently switched from Alibre to Fusion3D for my CAD/CAM and for the most part I'm having reasonable success. The last part I'm working on I have been making for a few years and there are a few things I wanted to change so what better time to update them and learn a bit of fusion.
> 
> I'm getting an error in Mach3 when I load the Gcode, it runs fine in the simulator in Fusion. The error is "Tool Radius not less than arc radius with comp". I'm not using any tool compensation, I have a very basic grasp of Gcode and I'm having trouble debugging this.
> View attachment 281450
> ...



I did  quick search on the Autodesk/Fusion CAM forum and found one post that is relative to your issue.  Here's the link.  https://forums.autodesk.com/t5/fusion-360-computer-aided/cutter-comp-not-working/m-p/8402153

Let us know if this solves your problem.


----------



## JimDawson (Dec 3, 2018)

Yup, I agree with @TomS, set Compensation to In Computer


----------



## bpimm (Dec 3, 2018)

That seems to have fixed it, I'll fire up the machine tomorrow and see what happens.


----------



## Guyton (Dec 4, 2018)

Your cam settings and Mach3 should be the same. I'm referring to Absolute and Incremental settings..  Good luck.


----------



## bpimm (Dec 5, 2018)

Guyton said:


> Your cam settings and Mach3 should be the same. I'm referring to Absolute and Incremental settings..  Good luck.


Can you elaborate?


----------



## bpimm (Dec 5, 2018)

Having another problem, When I install the tool and set my Z zero I bump the tool height up off of the stock then after the initial tool change (line 16) it executes the first rapid move (line 20) at Z=0 which snaps the tool off on some mounting hardware. I have my feed height set to 0.2" above stock top which clears all the mounting hardware, 8-32 screw heads, I thought all rapids would be above this. Also why is it putting line 21 in Tool length compensation when as far as I know I have all the tool compensation turned off, all my tool changes are manual with manual zeroing of the tool?




There has to be something in Fusion I'm missing. What I'm migrating from is Alibre for the design, export a STL file and use Meshcam to generate the Gcode and Meshcam does it all it's way with almost no user configuration. 

Thanks


----------



## cs900 (Dec 5, 2018)

bpimm said:


> Having another problem, When I install the tool and set my Z zero I bump the tool height up off of the stock then after the initial tool change (line 16) it executes the first rapid move (line 20) at Z=0 which snaps the tool off on some mounting hardware. I have my feed height set to 0.2" above stock top which clears all the mounting hardware, 8-32 screw heads, I thought all rapids would be above this. Also why is it putting line 21 in Tool length compensation when as far as I know I have all the tool compensation turned off, all my tool changes are manual with manual zeroing of the tool?
> 
> 
> There has to be something in Fusion I'm missing. What I'm migrating from is Alibre for the design, export a STL file and use Meshcam to generate the Gcode and Meshcam does it all it's way with almost no user configuration.
> ...


Fusion will always post a tool length comp. If you are re-zeroing every single tool make sure in the tool table all the lengths are set to 0 and it won't matter if it posts the length comp or not.

Would I be correct to assume the Z origin of your part is at the top of your stock? Your code looks correct if that's true, so something else is happening. So you change the tool, set z zero again, jog the tool up over z.2 and then when you hit start it moves the tool back to z0 before executing line 20? It SHOULD leave the tool at the height you jog it and just move to the XY values in line 20.


----------



## bpimm (Dec 5, 2018)

cs900 said:


> Fusion will always post a tool length comp. If you are re-zeroing every single tool make sure in the tool table all the lengths are set to 0 and it won't matter if it posts the length comp or not.
> 
> Would I be correct to assume the Z origin of your part is at the top of your stock? Your code looks correct if that's true, so something else is happening. So you change the tool, set z zero again, jog the tool up over z.2 and then when you hit start it moves the tool back to z0 before executing line 20? It SHOULD leave the tool at the height you jog it and just move to the XY values in line 20.



Yes you are correct the Z origin is the top of stock and I just tested the program I posted above and it doesn't drop to 0 before the XY move so I loaded the version of the program that did, I had verified it did it 3 times, and it doesn't do it now so either something weird is happening or I inadvertently  overwrote the program with a version that didn't do it. I guess one lesson is to test it on the machine and not just the simulator.

On the tool table, is this where it needs to be set to 0?


----------



## TomS (Dec 5, 2018)

+1 on what cs900 said.  Or make sure when setting individual tools to top of stock that Tool 0 is selected.  

Another thing to be aware of when setting Z zero is to make sure Mach3 is showing the correct tool number.  For instance, you finish a tool path with Tool #1, then load Tool #2 and zero it to the top of your stock.  But Mach3 is still looking at Tool #1.  When you click on Cycle Start the gcode tells Mach to look for Tool #2 at it applies that tool's offset.  It could crash your tool or cut air.  I usually crash the tool. LOL  




I set my tool length offsets in the Mach3 tool table and it has worked well for me.  I've never used the Fusion Tool Length Offset so I can't say if one is better than the other.


----------



## Boswell (Dec 5, 2018)

I just re-zero Z everytime I change tools. It only takes 60-120 seconds. Not good if I was in a production shop where time is money but keeps life simple with not having to deal with tool offset tables.


----------



## cs900 (Dec 5, 2018)

Sorry, should have clarified, the tool table is in mach3 under the config menu at the top. Make sure that ALL tools have the height and wear height set to 0. If you do this, it will not matter what tool number you assign the tool in fusion or is in the code. Once you rezero the tool you'll be good to go.


----------



## bpimm (Dec 6, 2018)

Ok I checked the tool table in Mach3 and everything is set to 0,  I have never used it so it's still at defaults. I'm not using tool holders, the endmill goes in the R-8 collet so I don't have a repeatable tool change anyway so I can't see any advantage in using tool tables, maybe even a time disadvantage as it seems it would add another setting. Am I missing something?

Now I'm waiting for the new endmills to arrive so I can try again, I think I'll make a tool less start to be safe.

Thanks for all the help.


----------



## cs900 (Dec 6, 2018)

no, you're not missing anything. There is no value in using the tool table if your tools do not repeat. I just wanted to make sure mach3 wasn't applying a random tool height offset on you which would throw your z-zeroing out the window and possibly cause a crash.


----------



## Boswell (Dec 6, 2018)

Mach 3 has a Z-Inhibit setting that you can set to make the minimum travel for Z. This is useful for validating new g-Code.

I often set it to something like 1.0 on the first run.  this way it will follow the g-Code in every way except it will never get lower than 1 inch above Z-Zero. Then if all looks good, I might run it with Z-Inhibit at 0.1 for a final check.  If you really don't trust your code, you can also set X and Y to an empty area of you table  and be able to see all of the z-travels while still cutting air. 

BTW, I learned this technique AFTER buying a replacement end mill 

Good Luck.


----------



## bpimm (Dec 6, 2018)

Boswell said:


> Mach 3 has a Z-Inhibit setting that you can set to make the minimum travel for Z. This is useful for validating new g-Code.
> 
> I often set it to something like 1.0 on the first run.  this way it will follow the g-Code in every way except it will never get lower than 1 inch above Z-Zero. Then if all looks good, I might run it with Z-Inhibit at 0.1 for a final check.  If you really don't trust your code, you can also set X and Y to an empty area of you table  and be able to see all of the z-travels while still cutting air.
> 
> ...



I'll look for the Z- Inhibit sounds like it could come in handy, I tend to run a simulator to check out the g-code but it didn't catch this problem. Not sure I want to run the whole thing while watching, it's probably 5 hours. End mills should be here Friday.


----------



## cs900 (Dec 6, 2018)

simulators don't always mimic your machine perfectly either. Be VERY careful the first time you run it on the mill anyways. The "to go" button right below the DRO in mach3 can be a life (tool) saver.


----------



## Boswell (Dec 6, 2018)

bpimm said:


> Not sure I want to run the whole thing while watching, it's probably 5 hours.


one option is to break the 5 hour run into multiple operations and gcode files.  This will  also make it easier if you have to stop for some reason and start over. It might take a little longer when you are doing the CAM work but at the Mill, it only takes a few seconds to call up the next G-code file and start it running.


----------



## bpimm (Dec 10, 2018)

Ok I'm getting really frustrated here, ready to drop a grenade on this thing and watch it blow up....

Thought I fixed the program last week, I did a dry run this morning and now the damn thing is trying to drive the tool through the part on start up.

I hit cycle start and normally it just stays where it is and triggers the manual tool change and then starts after I confirm the tool change. now I hit cycle start and does a rapid Z to -0.2934, the bottom of my part is 0.260.

This is a clip of the start of the code.
View attachment 281989

on cycle start it runs down to line 16 (T11 M6) then does a rapid Z to -0.2934 WTF.

Line 8


These commands seem to make sense to me as well as line 9.
Line 10 on the other hand


G28 Return to home position?
I don't use a home position that I know of, is that the same as part 0

G91 makes sense but what is that Z0. for and in the simulator it says
G28/G30 intermediate endpoint: 0,0,0
G28/30 Home endpoint: 0,0,0

Then the G90 makes sense but why do I need it again, it's in line 8 as well?

Just trying to understand whats going on.

Thanks for all the help.


----------



## Boswell (Dec 10, 2018)

I have not had time to look at the gcode yet but your description did make me think that possibly there is a "Tool Change" location that is set wrong and it is trying to go to a pre-defined (but incorrect) location for the tool change.  For instance, I have my system set to go to Z4 for tool change. It is relative so that would be 4 inches above whatever is Z-Zero for the tool I am using.  I also assume that as part of the tool change you set the Z-Zero for that specific tool.


----------



## cs900 (Dec 10, 2018)

The G91 G28  Z0 is likely your culprit.  G91 G28  tells mach3 (and lots of other controls as well) that you want to return the machine to it's zero point. This is the MACHINE zero point and not the part origin. Usually it's set to the extreme limits of the machine axis, but depending on how you have mach3 set up, it could be anywhere. Your frustration will be compounded if you don't have limit/home switches on your machine as it very well could change every time you start up mach3.  The good news is that you can turn those commands off in the mach3 post processor in fusion360.







again, this is one of those things your simulator won't catch. So be careful out there!


----------



## cs900 (Dec 10, 2018)

oh, and to address your other question, G90 and G91 are brothers and are know as "modal" commands. Meaning that once a G90 (working in absolute coordinates) or a G91 (working in incremental units) is called up it remains active until the other command is called out. So by default your post is setting your units to be absolute in the very first line of code (what i call a safety block), but then the reference return command (G91 G28) switches to incremental. Your post is smart enough to know this so once the reference return is complete it switches back to a G90 for you.

The same is true for G00, G01, G02, and G03 commands. you'll never see two G0 callouts in a row or two G01's.

That make sense?


----------



## bpimm (Dec 10, 2018)

I hand edited the questionable lines out and it's running fine now.



cs900 said:


> The G91 G28  Z0 is likely your culprit.  G91 G28  tells mach3 (and lots of other controls as well) that you want to return the machine to it's zero point. This is the MACHINE zero point and not the part origin. Usually it's set to the extreme limits of the machine axis, but depending on how you have mach3 set up, it could be anywhere. Your frustration will be compounded if you don't have limit/home switches on your machine as it very well could change every time you start up mach3.  The good news is that you can turn those commands off in the mach3 post processor in fusion360.
> 
> 
> 
> ...



I was thinking that was the culprit so I edited it out. I looked in Fusion and it was on so I shut it off, will that be something I have to do every time I post a program or is there a way to set it to default to that setting. Also in fusion it always defaults to climb milling and I don't climb mill, is there a way to set some of those default parameters the way I want to, I haven't stumbled onto a way yet. 

That is my learning method stumble and hit your head on the answer then it sinks in...

Yep the sim didn't catch this, fortunately the dry run without the tool did. The irritating part is it wasn't doing that last week when I was working on it so maybe that has to do with the machine 0 being different each time I turn the machine on, It doesn't have home or limit switches. Something I need to add.

Thanks


----------



## bpimm (Dec 10, 2018)

cs900 said:


> oh, and to address your other question, G90 and G91 are brothers and are know as "modal" commands. Meaning that once a G90 (working in absolute coordinates) or a G91 (working in incremental units) is called up it remains active until the other command is called out. So by default your post is setting your units to be absolute in the very first line of code (what i call a safety block), but then the reference return command (G91 G28) switches to incremental. Your post is smart enough to know this so once the reference return is complete it switches back to a G90 for you.
> 
> The same is true for G00, G01, G02, and G03 commands. you'll never see two G0 callouts in a row or two G01's.
> 
> That make sense?



Yes that makes sense, so the G91 that I left in line 10 is not necessary and the G90 in line 11 would still be necessary  after the G91.1 in line 8?

Hopefully there is a way to edit the post so it puts out what I need and not all the extra stuff.
This is the hand edited version.


----------



## cs900 (Dec 10, 2018)

I THINK it will remember to keep them off, but yes, it can be changed in the actual post processor as well. I'm happy to help out with that if need be. I think there is a way to save your cutting parameters so it defaults to whatever setting you want. I've only played with F360 a little so I can't say as if I know exactly how to do that, but it's something I'll be dealing with here in the near future. 

Yeah, so depending on where you leave your machine will dictate where the machine origin is. You likely had you Z axis higher up last time you turned mach3 on. I can't recommend having home switches enough! there are so many cool things you can use them for to save yourself time. 

While I'm thinking about this, in addition to the G91 G28 commands, you'll want to keep an eye out for G53 commands as well. I think the default mach3 post will post a G53 X0 Y0 at the very end oft he program. You may want to check as G53 does nearly the same thing as G91 G28 commands.

You do not need line 10; and if you delete line 10, you also will not need line 11. G90 is set in line 8. G91.1 is a different command than a regular G91 and will not effect the G90 callout. That said, your program will work fine as-is it's just a little "messy".


----------



## TomS (Dec 10, 2018)

For info - most of the Fusion machining operations have the option of climb milling, conventional milling, or both.

What you are experiencing is called learning.  Don't give up.  You will eventually be very proficient at understanding and making gcode work for you.

I have a box of broken cutters on my work bench due to my mistakes and not understanding what the gcode is telling me.  The box was filling up fast when I first started CNC machining.  Now that I have a few years of experience under my belt it's been a while since I put a cutter in the box.  You will get there too.


----------



## bpimm (Dec 11, 2018)

Ok I said it was running fine yesterday, I lied, it was hard to notice under the flood coolant but somehow in the changes I made to get it started it forgot the tool was 3/16" wide, it ran the tool path with the end mill centered on the contour it's cutting not offset by 1/2 the tool diameter.

When I started testing this code I ran the part successfully 3 or 4 times in MDF until I had it coming out correct, then I switch to steel and a whole new batch of problems SMH. It's times like this that I wished I drank. lol


----------



## cs900 (Dec 11, 2018)

well that's an easy fix though. you need to set your compensation to "in computer" in fusion 360

http://help.autodesk.com/view/fusion360/ENU/?guid=GUID89C78618-20FD-4A82-BFB4-BC66AFE417DD


----------



## bpimm (Dec 11, 2018)

I thought I did that.... I'll check.  Yep I missed one. Had 5 out of 6 set to in computer.


----------

