# Fusion 360 Post Processors - No tool change

**URL:** <https://community.inventables.com/t/fusion-360-post-processors-no-tool-change/57441>\
**Category:** Software\
**Created:** [July 3, 2018, 6:12am UTC](https://community.inventables.com/t/fusion-360-post-processors-no-tool-change/57441 "2018-07-03T06:12:24Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![LarryM](https://yyz1.discourse-cdn.com/flex009/user_avatar/community.inventables.com/larrym/32/51450_2.png) [@LarryM](https://community.inventables.com/u/LarryM)\
**Post date:** [July 3, 2018, 6:12am UTC](https://community.inventables.com/t/fusion-360-post-processors-no-tool-change/57441/1 "2018-07-03T06:12:24Z")

</div>

Fusion 360 Post processors without tool change G-code output.

The only difference should be that the ones from Autodesk should output T1M6 lines and the other two should not.

Autodesk

[carvey.cps (18.7 KB)](https:/uploads/inventables/original/3X/4/3/434ed93f1ca51b28afb5b0e9c5f60c5fba316d2c.cps)  
[xcarve.cps (18.7 KB)](https:/uploads/inventables/original/3X/1/7/17733a1b0bd1fcdf1c9522656188f180c1d9b18f.cps)

No tool change.

[carvey\_no\_tool\_change.cps (18.7 KB)](https:/uploads/inventables/original/3X/d/2/d2617e9abff48bb50c19227935f13ecb47789166.cps)  
[xcarve\_no\_tool\_change.cps (18.7 KB)  
 ](https:/uploads/inventables/original/3X/9/f/9f5bc32003798f17f91497dc7d0e63f15c5a6ead.cps)

---

<div class="post-metadata">

**Author:** ![NeilFerreri1](https://yyz1.discourse-cdn.com/flex009/user_avatar/community.inventables.com/neilferreri1/32/84403_2.png) [@NeilFerreri1](https://community.inventables.com/u/NeilFerreri1)\
**Post date:** [July 3, 2018, 2:06pm UTC](https://community.inventables.com/t/fusion-360-post-processors-no-tool-change/57441/2 "2018-07-03T14:06:09Z")

</div>

@LarryM I was looking at a different PP. I used the one I found here:  
[https://inventables.desk.com/customer/portal/articles/2332499?b\_id=9563](https://inventables.desk.com/customer/portal/articles/2332499?b_id=9563)

---

<div class="post-metadata">

**Author:** ![LarryM](https://yyz1.discourse-cdn.com/flex009/user_avatar/community.inventables.com/larrym/32/51450_2.png) [@LarryM](https://community.inventables.com/u/LarryM)\
**Post date:** [July 3, 2018, 2:42pm UTC](https://community.inventables.com/t/fusion-360-post-processors-no-tool-change/57441/3 "2018-07-03T14:42:52Z")

</div>

It’s been a long time since I put the PP on the forum.

Someone was having a problem with a Carvey and this fixed it so I just did one for the X-carve while I was messing with it.

Bottom line is if you have one that works, stick with it.

---

<div class="post-metadata">

**Author:** ![StevePrior](https://yyz1.discourse-cdn.com/flex009/user_avatar/community.inventables.com/steveprior/32/72940_2.png) [@StevePrior](https://community.inventables.com/u/StevePrior)\
**Post date:** [July 3, 2018, 3:17pm UTC](https://community.inventables.com/t/fusion-360-post-processors-no-tool-change/57441/4 "2018-07-03T15:17:12Z")

</div>

Can you explain in what situation the tool change line causes problems?

Also, is this post processor the one to use if you’re using Easel as a gcode sender or does it generate codes Easel doesn’t support?

---

<div class="post-metadata">

**Author:** ![LarryM](https://yyz1.discourse-cdn.com/flex009/user_avatar/community.inventables.com/larrym/32/51450_2.png) [@LarryM](https://community.inventables.com/u/LarryM)\
**Post date:** [July 3, 2018, 3:37pm UTC](https://community.inventables.com/t/fusion-360-post-processors-no-tool-change/57441/5 "2018-07-03T15:37:29Z")

</div>

> [@StevePrior](#):
>
> Can you explain in what situation the tool change line causes problems?

Grbl will ignore the T1 command, but the M6 will cause grbl to alarm and halt.

> [@StevePrior](#):
>
> does it generate codes Easel doesn’t support?

That I can’t answer. I was just looking into the tool change problem at the time I took a look at their PP. I do know that Easel will not pass arc commands (G2/G3).

---

<div class="post-metadata">

**Author:** ![NeilFerreri1](https://yyz1.discourse-cdn.com/flex009/user_avatar/community.inventables.com/neilferreri1/32/84403_2.png) [@NeilFerreri1](https://community.inventables.com/u/NeilFerreri1)\
**Post date:** [July 3, 2018, 5:51pm UTC](https://community.inventables.com/t/fusion-360-post-processors-no-tool-change/57441/6 "2018-07-03T17:51:26Z")

</div>

Easel does not send the M6. If it did, grbl would return an error.  
It just skips them. I just did some tests with the [f360-easel.cps](https://d1ruu3w8cmk6tc.cloudfront.net/assets/f360-easel-b675f12579f5c7fdc0984f996077be9b.cps) post processor that I downloaded from Inventables found on the linked source above.

> [@StevePrior](#):
>
> Can you explain in what situation the tool change line causes problems?

I think the problem would be if you were expecting the machine to pause for a tool change because you needed to change tools. Easel does not handle/manage tool changes in imported gcode.

---

<div class="post-metadata">

**Author:** ![NeilFerreri1](https://yyz1.discourse-cdn.com/flex009/user_avatar/community.inventables.com/neilferreri1/32/84403_2.png) [@NeilFerreri1](https://community.inventables.com/u/NeilFerreri1)\
**Post date:** [July 3, 2018, 6:32pm UTC](https://community.inventables.com/t/fusion-360-post-processors-no-tool-change/57441/8 "2018-07-03T18:32:57Z")

</div>

> [@AngusMcleod](#):
>
> I wonder why GRBL doesn’t interpret the M6 command in the same way it handles the PAUSE button.

That would be Easel’s job. There are so many ways to handle tool changes, it is probably easier to let that fall on the sender. Maybe there will be some implementation when the new, Arm based version of grbl is released.

---

<div class="post-metadata">

**Author:** ![NeilFerreri1](https://yyz1.discourse-cdn.com/flex009/user_avatar/community.inventables.com/neilferreri1/32/84403_2.png) [@NeilFerreri1](https://community.inventables.com/u/NeilFerreri1)\
**Post date:** [July 3, 2018, 8:43pm UTC](https://community.inventables.com/t/fusion-360-post-processors-no-tool-change/57441/10 "2018-07-03T20:43:14Z")

</div>

I meant it would be the job of the sender. In your example, UGS, would process the M6 and send a command to the controller.  
CNCjs does this and so does bcnc.

---

<div class="post-metadata">

**Author:** ![LarryM](https://yyz1.discourse-cdn.com/flex009/user_avatar/community.inventables.com/larrym/32/51450_2.png) [@LarryM](https://community.inventables.com/u/LarryM)\
**Post date:** [July 3, 2018, 11:05pm UTC](https://community.inventables.com/t/fusion-360-post-processors-no-tool-change/57441/12 "2018-07-03T23:05:12Z")

</div>

I guess I have a different point of view here.

The sender should not manipulate the G-code file as it passes through the sender. The sender should send the file as is and report back any errors that Grbl sends it.

There are two G-code standards that grbl uses to determine how each G-code command should be handled. Grbl should control the interpretation of the G-code commands as specified.

In this particular case grbl does not support the M6 command, so it returns an invalid G-code error when the sender sends M6. The sender should report the error back to the user, not assume that the user just wants to throw it away.

I didn’t have two cents, so I gave one.

---

<div class="post-metadata">

**Author:** ![NeilFerreri1](https://yyz1.discourse-cdn.com/flex009/user_avatar/community.inventables.com/neilferreri1/32/84403_2.png) [@NeilFerreri1](https://community.inventables.com/u/NeilFerreri1)\
**Post date:** [July 4, 2018, 12:02am UTC](https://community.inventables.com/t/fusion-360-post-processors-no-tool-change/57441/13 "2018-07-04T00:02:42Z")

</div>

My cent:  
Tool changes are beyond the scope of grbl, but a GUI can be designed to handle one in any number of ways. Inventables could release an auto tool changer add on for the X-carve, and they would not have to create a new controller or even modify the firmware. It could all be handled in Easel.  
That said, **I agree with you that the sender should not just ignore tool change commands** as Easel seems to.  
I use CNCjs, and I am prompted by the GUI on a tool change. I can run a macro to change the tool, re-zero or set a tool length offset (which grbl supports), and continue the job.

---

<div class="post-metadata">

**Author:** ![NeilFerreri1](https://yyz1.discourse-cdn.com/flex009/user_avatar/community.inventables.com/neilferreri1/32/84403_2.png) [@NeilFerreri1](https://community.inventables.com/u/NeilFerreri1)\
**Post date:** [July 4, 2018, 12:54am UTC](https://community.inventables.com/t/fusion-360-post-processors-no-tool-change/57441/15 "2018-07-04T00:54:48Z")

</div>

A pause is a different command. You could change your post processor to do that.  
There are too many variations in machines, using the same standard gcode, for grbl to include all possibilities and all possible user preferences. Why is a pause better than an option to run a macro or use an automatic tool changer? What if my spindle is in the middle back when it gets to a tool change?  
We may disagree here, but I think it makes sense for that all to be left to the GUI. If one wants to send the M6, receive an error, and stop the job, there’s a UI that will do that well. If one wants to be prompted to make decisions for the machine, there are GUIs for that. If you have the machine for it, and you want the machine to change tools for you while you eat a taco, I’m glad you have that option.

---

<div class="post-metadata">

**Author:** ![NeilFerreri1](https://yyz1.discourse-cdn.com/flex009/user_avatar/community.inventables.com/neilferreri1/32/84403_2.png) [@NeilFerreri1](https://community.inventables.com/u/NeilFerreri1)\
**Post date:** [July 4, 2018, 1:18am UTC](https://community.inventables.com/t/fusion-360-post-processors-no-tool-change/57441/17 "2018-07-04T01:18:25Z")

</div>

> [@AngusMcleod](#):
>
> And a series of straight lines is different to an arc.

Grbl handles arcs, Easel (the GUI) does not.

> [@AngusMcleod](#):
>
> But it seems to me that GRBL would much better interpret a tool-change as a pause, rather than an error-condition, destroying the carve.

As long as my GUI can intercept that and do what I want with it, I’m game.

> [@AngusMcleod](#):
>
> but until GRBL is ready to sensibly execute macros or operate a tool-changer…

My view is that grbl shouldn’t need to get to that point. There is more processing power and easier configurability (word?) at the UI level.

> [@AngusMcleod](#):
>
> I think the GUI should be optional. You should be able to use your system’s “copy” command.

Not quite a copy/paste, but as close as you wanna get.

> <https://github.com/grbl/grbl/blob/master/doc/script/stream.py>

---

<div class="post-metadata">

**Author:** ![LarryM](https://yyz1.discourse-cdn.com/flex009/user_avatar/community.inventables.com/larrym/32/51450_2.png) [@LarryM](https://community.inventables.com/u/LarryM)\
**Post date:** [July 4, 2018, 1:19am UTC](https://community.inventables.com/t/fusion-360-post-processors-no-tool-change/57441/18 "2018-07-04T01:19:11Z")

</div>

> [@NeilFerreri1](#):
>
> We may disagree here, but I think it makes sense for that all to be left to the GUI. If one wants to send the M6, receive an error, and stop the job, there’s a UI that will do that well. If one wants to be prompted to make decisions for the machine, there are GUIs for that.

It’s all software. Possibilities are endless. Your method of operation seems to be more in line with Mach3 than grbl.
