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?
-
@arhi Well there is this one by @littlehobbyshop
https://forum.duet3d.com/topic/14872/fusion-360-fdm-fff-slicing?_=1593292741797But 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. -
-
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 thevar 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
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.
-
@arhi said in Fusion 360 FFF Slicer: G2/G3 Generation Now in Preview:
freeCAD
has cam? https://wiki.freecadweb.org/Path_Workbench ... hold my beer, I'm going in!