Writing a supplementary post-processor to fix the fusion rapid problem

It’s definitely worth exploring.

Some of us are likely to end up paying for a subscription too on the basis that we use the tool enough for it to be reasonable for us to pay. ( so there’ll be opportunity for ongoing comparison )

My main concern would be the support load it would almost inevitably generate as users not familiar with running home brew or open source code used it on their GCode and ran into issues. If the loss of rapids is anywhere near as irritating as I expect it to be there will be quite a bit of demand and therefore quite a few issues.

1 Like

re: support - It’s going to be super annoying, and I’m afraid that I won’t have time to properly support such a tool beyond some “here’s how to use it” video tutorials and the such. This supplementary post-processor is definitely not an ideal solution :stuck_out_tongue:

re: subscriptions - That’s a good point. I suppose we don’t have to rush to get a dataset of gcode if there will be several members of the community who can provide test routines.

I’m most worried about some unsupported setup causing crashes, tool breakage etc.

3 Likes

Very easy to build and simpler than the other gcode tools I’ve build… if there is interest I can likely build something like this in about an hour or so

8 Likes

I’ve written and operated quite a bit of Python, so if it ends up as Python then I can help out with questions about running it, Python environments on Windows / OSX etc.

1 Like

Count me in for beta testing (there is no question that there will be interest, lots of it).

If the Autodesk folks don’t change their mind (as they did on STEP export), I’m sure we’ll see TENS of similar scripts being created all over the globe, but there is value in having one that is known to work with files generated using the Shapeoko post-processor.

To be honest I already pictured this as one of the cool JS apps that @fenrus does, a simple page with a button to upload a set of files, that would spit out one file with tool change commands and rapids. A large “use at your own risk blablabla” disclaimer, done.

The really interesting part will indeed be the validation of that code across a large dataset. I foresee some maintenance effort too, whenever the Fusion360 folks will change their post-processing back-end to “clarify” things further, and it happens to break the application in the process.

3 Likes

I’m happy to help with any beta testing as well.

From the perspective of a non-nerd (said with all respect), I just need something that works, if it can be done wrong I’ll find a way type of user.

3 Likes

Many moons ago, I got really irritated that plunges from CC were emitted without rapid to a safe height (the previous Z) and plunge from there. So I set out to over engineer the problem. A lot. I wanted to try some Swift, and came up with a few things to otherwise optimize while I was at it (including implementing “/” and lay the groundwork for some better reordering to minimize rapids…the old traveling salesman problem)

I’m not going to claim this code is right, or useful, an even moderately poor example of swift code or even very helpful, but it’s here if someone has a want. I haven’t touched it in 4+ years.

2 Likes

at this point I have a lot of this kind of stuff as helper libraries in C++ and Javascript… porting also to python shouldn’t be insane since it seems that’s what folks want.

as part of a gcode optimizer I also have the library functions built that track the cutter engagement for a path (based on previous G1) so conceptually using G0 if the engagement is 0.00 is quite in the realm of possible…

… or if there is a “go up, move, go down” pattern, change the amount of up to the level just above where engagement becomes non-zero

I think I’m the one who kicked off the python thing, but it’s just the hammer I have- another language is fine, I just won’t be as effective for helping develop. At the end of the day we’re all just into it to make the problem go away

@julien a JS app is long term totally the way to go-upload a few nc files and just download the corrected result. In any case it looks like fernus is pretty experienced at this so that’s a fantastic starting point

I’m going to collect a few dozen projects off of Winston’s patreon as test input, plus make a few test programs that are more likely to cause trouble. I’ll share that work after getting permission from Winston for his work.

@griff we’re a group of people who make programs from 3D models to move a drill around and cut cool shapes in wood. If that doesn’t make us all nerds I don’t know what would :stuck_out_tongue_closed_eyes:

3 Likes

https://fenrus75.github.io/FenrusCNCtools/javascript/gcode2gcode.html

is likely where I’d start using the base functions from that…

(https://github.com/fenrus75/FenrusCNCtools <-- github location of this stuff)

5 Likes

Awesome, thanks. I just skimmed it but that’s some pretty cool stuff and unequivocally more sophisticated than what I had in mind :wink:

I’ve made the pre-october1 dataset so now it’s just a waiting game to see what their changes look like in gcode.

1 Like

I am up for beta testing too. I would also contribute to a kickstarter if we need any funding.

Changes went into effect today guys.

I have a paid and free subscription so I can share posted g code for both. What do we need to really get this ball rolling?

I would love to have some relatively simple design create gcode that shows the problems…
(a 5 megabyte gcode file is less useful there than a relatively simple one)

Thats strange, I just checked with some test pieces and they had no difference in posted gcode (as tested by diffchecker - also saw some G0’s floating around in there)

EDIT: just kidding! I changed a few parameters in my test design back and forth and now we’re posting bad gcode.

The attached gcode is a simple test file I put together for this purpose. The model (see: dropbox link) is a box with a cutout and a joined sphere in the interior. I apply a number of redundant adaptive and pocket operations with a few different settings to it in order to exercise the full extent of badness that we could have reasonably expected fusion 360 to have thrown at us before having seen it.

It looks like at the start of each toolpath, F360 does the following
G0 {entry point}
G1 {clearance height}
{retract height}
{feed height}
{normal toolpath stuff}

We can use this to identify the clearance, retract and feed height for the toolpath, and then just keep track of where F360 moves to, changing toolpaths as needed.

online diff (very long!) https://www.diffchecker.com/LhP7iFmy
.f3d file (it’s probably awful) https://www.dropbox.com/s/svcvxzvkjvpo8cb/testSphereForFusionLimitations%20v3.f3d?dl=0

testPieceBad.nc.nc (588.7 KB)
testPiece.nc.nc (588.3 KB)

back to work for now, but I’ll get started tonight or tomorrow morning

4 Likes

My paid license updated and required a restart but the free personal has not and is still posting tool changes and rapids

I am not into writing scripts, so I don’t know if this is useful. but it is something I stumbled upon while looking for a solution for another problem* I have:
https://cam.autodesk.com/hsmposts

And from the ‘Manual’ button:

This may not apply so I apologize if it doesn’t contribute to the solution…


*For the curious, the problem I am researching and trying to solve has nothing to do with scripting to replace or re-enable the rapids, but instead with exporting operation ‘edit’ parameters, specifically I would like to output all parameters and current values for a given operation to a spreadsheet for archiving/comparison. Basically everything that is enterable in the multi-page windowlet when you go to edit an operation, I want to output all of those things to a spreadsheet…

1 Like

I started a new thread for work in progress for the tool

@rmonroe your files have been extremely helpful already so thanks a lot for providing them

1 Like

No prob! switching over to the other thread with my first draft of the script and comments therein

This topic was automatically closed after 10 days. New replies are no longer allowed.