Fusion 360 FFF Slicer: G2/G3 Generation Now in Preview



  • @Phaedrux said in Fusion 360 FFF Slicer: G2/G3 Generation Now in Preview:

    use a Prusa post processor?

    postprocessor is a readable (and writeable) txt file, maybe RRF.cps file could be created and maintained by someone with a knowhow?


  • Moderator

    @arhi Well there is this one by @littlehobbyshop
    https://forum.duet3d.com/topic/14872/fusion-360-fdm-fff-slicing?_=1593292741797

    But how to integrate the arc support into it.. I don't know.



  • @Phaedrux @arhi @littlehobbyshop

    Look for this line in the RRF post processor (or your own custom one):

    capabilities = CAPABILITY_ADDITIVE;
    highFeedrate = (unit == MM) ? 6000 : 236;
    

    Beneath that, copy and paste this block:

    // used for arc support or linearization
    tolerance = spatial(0.002, MM); // may be set higher i.e 0.02?
    minimumChordLength = spatial(0.25, MM);
    minimumCircularRadius = spatial(0.4, MM);
    maximumCircularRadius = spatial(1000, MM);
    minimumCircularSweep = toRad(0.01);
    maximumCircularSweep = toRad(180);
    allowHelicalMoves = false; // disable helical support
    allowSpiralMoves = false; // disable spiral support
    allowedCircularPlanes = 1 << PLANE_XY; // allow XY circular motion
    

    And farther below that, in the functions section, paste this below the onLinearExtrude function.

    function onCircularExtrude(_clockwise, _cx, _cy, _cz, _x, _y, _z, _f, _e) {
      var x = xOutput.format(_x);
      var y = yOutput.format(_y);
      var z = zOutput.format(_z);
      var f = feedOutput.format(_f);
      var e = eOutput.format(_e);
      var start = getCurrentPosition();
      var i = iOutput.format(_cx - start.x, 0); // arc center relative to start point
      var j = jOutput.format(_cy - start.y, 0);
      
      switch (getCircularPlane()) {
      case PLANE_XY:
        writeBlock(gMotionModal.format(_clockwise ? 2 : 3), x, y, i, j, f, e);
        break;
      default:
        linearize(tolerance);
      }
    }
    

    Those are the only differences I can currently see between the generic FFF post processor and the Prusa post processor.

    Note: I still have not tested this yet. Also, it may be worth looking in to the variables defining circular moves, i.e. minimumChordLength and seeing what those may change.



  • @Phaedrux @arhi Scratch that, those additions aren't quite enough. Using the Prusa post however does generate G3 moves! It cut a roughly 1100kb file to around 500kb. Still trying to get the 'rrf' post to function correctly



  • I just played around with it for a bit. Without exporting GCode, the "simulated" (i.e., visualized) toolpaths are still faceted. By the language they use, "fitting" curves sounds like they're doing it after the fact which is garbage. They have pure mathematical forms to slice from, they don't need a coarse mesh intermediary -- they could easily use a very fine mesh if they absolutely must use a mesh of some kind.



  • yes, looks like they are matching curves on top of linear code, exactly what ArcWelder does, only ArcWelder uses g-code as input and has no access to solid object and F360 converts solid to mesh, slices and then fits the curve .. ffs why ?!?!



  • hopefully just a step on the way to true arcs; however not sure if just my noobishness or if the cnc cam does(did) the same; when I used linux cnc i'm pretty sure I got more segments than expected for curves.



  • @bearer linuxcnc is just implementing g-code it's not making it, again it depends on the CAM you used to generate g-code. All the CAM's I used for machining were never generating G2/G3 codes on their own. So for "generated" code, like clearing passes, contouring etc, it was always G1 only, the G2/G3 you would only see in those specialized macro's that generate "plunge" or "thread forming" or similar operations... I think we are bit spoiled by the 3d printer slicers in that way as you input STL click slice and you get result that prints, with machining you actually need to decide how you are machining the stock and CAM only helps you write the G-Code, it does not just generate a working code on it's own 🙂 .. so it's up to you to decide what type of operations you are going to be using and how to code them... Often I wonder if making similar CAM tool for 3D printers would be helpful, I know Forrest Higgs tried to create one decade ago but it was not very useful



  • i did mean using fusion with a post processfor for linuxcnc as relvant-ish to the topic at hand



  • @bearer said in Fusion 360 FFF Slicer: G2/G3 Generation Now in Preview:

    i did mean using fusion with a post processfor for linuxcnc as relvant-ish to the topic at hand

    ah, it never generated g2/g3 for me with linuxcnc postprocessor nor with grbl postprocessor



  • @Red-Sand-Robot Yes, I was playing with this last night. I did exactly that and copied the relevant code blocks from the Prusa post but couldn't get it working yet. It would generate gcode right up to where an arc would be then error.
    They said in the release that it's limited to Prusa and Ultimaker machines for now so am trying workarounds for that but not cracked it just yet.
    Will update soon as I can get it working.



  • @littlehobbyshop
    I think I got it to work. There are two lines of sneaky variables that I missed the first time I copied the blocks over, had to do with the var iOutput = createReferenceVariable({prefix:"I", force:true}, xyzFormat); // circular output1 and
    var jOutput = createReferenceVariable({prefix:"J", force:true}, xyzFormat); // circular output variables being missing in my initial modification to your post.

    For whatever reason, it is not working with a custom print profile, but I changed over to the stock "ABS 1.75mm" print profile and it was generating G3 commands for a flat donut shape.

    unofficial rrf machine with arc smoothing.cps

    1032.gcode

    I think modifying the stock print profiles in certain ways may affect the curve fitting.

    @bot I agree, fitting after the fact is not optimal but it is a step in the right direction. Probably leverage existing code from their CAM workspace to make it work.



  • @Red-Sand-Robot Sneaky, I'll take a closer look this evening and publish an update on Github. Will probably start a new thread on here too, the old one got a little buried.



  • @Red-Sand-Robot said in Fusion 360 FFF Slicer: G2/G3 Generation Now in Preview:

    @bot I agree, fitting after the fact is not optimal but it is a step in the right direction. Probably leverage existing code from their CAM workspace to make it work.

    I think they are probably trying to get firmware support for G2/3 to be more widespread before they go through the trouble of writing a new slicer that can actually take STEP or even native geometery from Fusion.



  • slightly OT

    Effective October 1, 2020, functionality in Fusion 360 for personal use will be limited, and you’ll no longer have access to the following:

    • Probing, 3 + 2-axis milling (tool orientation), multi-axis milling, rapid moves, automatic tool changes

    • Multi-sheets, smart templates, output options for drawings (print only).

    • Download options from public share links

    • Cloud rendering

    • Export options including F3Z, DWG, DXF, IGES, SAT, and STEP

    • Simulation and generative design

    • Unlimited active and editable Fusion 360 documents (10 doc limit).

    • Fusion 360 extensions



  • @bearer said in Fusion 360 FFF Slicer: G2/G3 Generation Now in Preview:

    slightly OT

    Effective October 1, 2020, functionality in Fusion 360 for personal use will be limited, and you’ll no longer have access to the following:

    • Probing, 3 + 2-axis milling (tool orientation), multi-axis milling, rapid moves, automatic tool changes

    • Multi-sheets, smart templates, output options for drawings (print only).

    • Download options from public share links

    • Cloud rendering

    • Export options including F3Z, DWG, DXF, IGES, SAT, and STEP

    • Simulation and generative design

    • Unlimited active and editable Fusion 360 documents (10 doc limit).

    • Fusion 360 extensions

    Wow, can't even export to STEP. I guess it might be the beginning of goodbye to Fusion 360 for me.



  • it certainly limits the usability of the slicer without exporting step files for sharing; shame.



  • @bearer said in Fusion 360 FFF Slicer: G2/G3 Generation Now in Preview:

    Export options including F3Z, DWG, DXF, IGES, SAT, and STEP

    looks like investing into freeCAD was not a bad move



  • If you sign up to the EAA https://www.eaa.org/ (for $40 a year or $36 recurring) you can get SOLIDWORKS student.





  • @jay_s_uk said in Fusion 360 FFF Slicer: G2/G3 Generation Now in Preview:

    If you sign up to the EAA https://www.eaa.org/ (for $40 a year or $36 recurring) you can get SOLIDWORKS student.

    thats pretty fly 😄



  • @bearer Screenshot 2020-09-16 105658.png

    There is no mention of changing import options, so you could conceivably still import .step or.iges files. Also, Fusion project files can still be exported, so a workaround for storage of only 10 projects could be exporting the project and archiving it on a local storage solution and then re-uploading it when needed. Not sure what archived/active means, I don't see the difference between continually 'archiving' and then making a document 'active' unless the process is annoying enough to make it an unwanted step in the modeling workflow.

    I think these changes were brought about from people abusing the personal license for commercial uses. Even then, a yearly subscription for Fusion 360 is only around USD $500, which is a lot cheaper than the major CAD/CAM players (Solidworks, Inventor, Solidedge, etc). (Yes, cheaper is relative, five hundred dollars isn't an insignificant amount of money)



  • @Red-Sand-Robot They already removed importing of "professional" cad formats last year or early this year. So, no more STEP, IGES or SLDPRT/ASM for free users.

    However, if a hobbyist needs to have a part made (one of the main reasons for needing a STEP export), they could send the fusion file to the company who likely has access to fusion and can convert it/use the file as needed. Though, perhaps that would pose a problem for the vendor using a "hobbyist" file on their commercial licence? Not sure how that would work I will ask around the fusion groups.

    @Red-Sand-Robot said in Fusion 360 FFF Slicer: G2/G3 Generation Now in Preview:

    [...] Not sure what archived/active means, I don't see the difference between continually 'archiving' and then making a document 'active' unless the process is annoying enough to make it an unwanted step in the modeling workflow.

    [...]

    If you're doing "distributed design," where each part has its own "design" file, the 10 active design limit would limit you in making an assembly. However, that's easy to workaround because that's not even how Fusion is "meant" to be used. It seems almost like training tool of sorts -- force the hobbyists to learn the Fusion methodology (versus the SolidWorks way of distributed assemblies/designs).

    So, other than that, yeah, it will be a juggling act of archiving and re-activating designs to work on. Maybe they'll have a limit to the number of times you can change the state of a design per day or the like.



  • If people felt they couldn't afford it before, its not very likely to change October 1st, regardless of use case; and if it doesn't change ... meh.


  • Moderator

    Well, that's a kick in the teeth. I started with Onshape, but they did the same thing and made the personal/free version virtually unusable. Moved to Fusion 360, but was sceptical that they'd do the same... and they have. Back to OpenSCAD, and, I guess, FreeCAD.

    Ian