looking for Post for FreeCAD path workbench

I’ve had bad luck with long posts, so i’m going to split this into parts.

from https://www.freecadweb.org/wiki/Path_Post

Included Postprocessors are saved in the FreeCAD.Mod.Path.Pathscripts.Post by default:
  • centroid
  • comparams
  • dynapath
  • grbl
  • linuxcnc
  • opensbp
  • phillips
  • rml
  • smoothie
the grbl post seems to generate decent output, but i'm wary.

the FreeCAD Path (CAM) workbench itself is pretty bomb. they have 2D adaptive, and 3d contour just around the corner. it is ready to roll for 2.5D, and i found it much more straightforward than fusion.

[attachment file=“Path_WB_Test_00_00.PNG”]

using the grbl post i get decent looking repetier preview

 

[attachment file=“Path_WB_Test_00_02_grbl.PNG”]

i did an air cut and it behaved basically correctly. but i can’t tell what the feeds are doing, and there was never a way to specify my rapids.

i’m asking on the freecad forum at the same time…and if no one can talk me out of it :slight_smile: i might cut something

 

Path_WB_Test_00_00.png

repetier preview

the gcode file output from FreeCAD with grbl post

Path_WB_Test_00_02.gcode (100 KB)

the grbl post (python) on FreeCAD’s github

https://github.com/FreeCAD/FreeCAD/blob/master/src/Mod/Path/PathScripts/post/grbl_post.py

i just ended running the output of the GRBL post on a simple model, and it cut very nicely.

tool editor doesn’t have as many options as fusion, but it’s serviceable. this is tool geometry only

[attachment file=86987]

separate tool controller sets feeds

 

[attachment file=86990]

setupsheet for planes, rapids, and the stepdown formula (editable, i add the ‘*.5’, default was full diameter stepdown)

[attachment file=86993]

overall job controls post processor

[attachment file=86996]

youtube videos for the FreeCAD Path workbench

https://www.youtube.com/playlist?list=PLEuOia-QxyFJZSpqb0xOHc9t7MLdCO3io

 

Gcode looks mostly acceptable to marlin. Except comments (?) and plane selection commands.

But the way how post processing architected in freecam i don’t like. The input for a preprocessor is just “preparsed and decorated” gcode that already produced by freecad cam. So pp has to iterate that gcode and somehow change it. Better then raw text, but in general wrong way.

In comparison with event based post processing architecture of Autodesk it’s just a toy.

1 Like

of course the few guys coding the CAM side of FreeCAD in their spare time can’t truly compete with Autodesk, but i found it surprisingly usable.

Fusion is great until Autodesk decides they don’t care about you :slight_smile: …they already sabotaged some plugins (or so it seems to me)…specifically because people were writing extensions that could eventually threaten the real cash cow, Vault (conjecture of course).

i use Solidworks at work, but for hobby stuff, FreeCAD does a lot, and i feel like i own my own work.

You see, problem not only in how many coders and qa guys worked in Autodesk comparing to freecad team. Coding and testing are second and third part of developing sequence. First part is an idea and designing architecture.

Guys from autodesk took architecture when cam core issues events that describes entities in domain notion - onLinear, onRapid, onCircular, onCycle, etc. Also there are a lot of current state objects - current section, tool, spindle speed, cycle, etc. So, firstly, it’s easy to write post processor that generates whatever you want (as example there is pp which generates dxf). Secondary, developing pp is pretty comfortable task, pp core serve to you.

Guys from freecad decided that they can use just tree of objects passed to pp, where each object is just a command from their superset gcode. So it’s like “preparsed stream”. So pp can just “hack” that stream - some commands can be dropped, some expanded like a macro - pp works as a filter. That means that some more complex task you will have to spend much more efforts.

all very true. the difference with closed source, is here you could dig into wherever the ''CAM state and events" actually resides, put in your own hooks, and write a better PP architecture (should you ever ne possessed to do so). of course then you might not like how they do the CAM side of things either :slight_smile:

interesting tidbit: as some FreeCAD contributor was discussing his homebrew 2D adaptive, the actual original developer of adaptive jumped on and offered help and insight.

as farf asaMPCNC/Marlin/FreeCAD right this very moment, i think the most practical thing is to get the PP to add rapid speed feed to G0, as they get spat out ‘naked’ right now. can you tell me more about the problems you see with planes? i am pretty much a total noob with gcode, but i am pretty good with 3D, python, PLCs, and robots.

 

typed on mobile apologies for typos and style

 

Freecad produce g17 command. It is selection of XY pane. (G18 xz, g19 yz. I don’t remember exactly). Afaik panes used to properly handle arc commands g2/g3.

Marlin (and i guess all 3d-printer-like firmware) doesn’t support these gcodes because just doesn’t need to make arcs in panes other then xy.

So just drop g17 (or may be marlin ignores it).

Ensure that freecad doesn’t issue g18 and g19 with g2/g3. Such arcs will not work properly. If you will found you will have to write linearization code to replace such g2 with set of g1

Check smoothie pp. Smoothie is mostly 3d printer firmware so maybe gcode will be better for marlin

1 Like