A FreeCAD External Workbench for creating Gcode for 4 and 5 axis CNC foam cutting machine.
Originally it based on set of macros written by Andrei Bezborodov (HardRock) - member of FreeCad community. His idea was build 5 axis foam cutter and use FreeCad as a platform to produce output for this machine. Since he has no time to continue development further I decided to step in. Hopefully our effort will be appreciated.
So far there are many limitation but I'm working on fixes. If you want to contribute to this project - you highly welcome! Enjoy!
-
Open Tools > Addon Manager
-
Search for FoamCut and click install.
Expand for details regarding Manual installation
Linux:
cd ~/FreeCAD/Mod/
git clone https://github.com/Shkolik/Foamcut.git
Windows:
cd %APPDATA%\FreeCAD\Mod
git clone https://github.com/Shkolik/Foamcut.git
- Go to https://github.com/Shkolik/Foamcut
- Click on Code > Download ZIP
- Extract content of ZIP archive to your Mod directory
Linux:
~/FreeCAD/Mod/
Windows:
%APPDATA%\FreeCAD\Mod
When you restart FreeCAD, "FoamCut" workbench should now show up in the workbench dropdown list.
Quick workflow example: FoamCut workflow
Old tutorials (using macro), but workflow is the same (in Russian). ЧПУ пенорезка на 5 осей. Подготовка задания в FreeCAD.
Example file to play with workbench
Creates machine configuration
Creates path by 2 given opposite edges. Opposite faces also supported - command will try to find opposite edges and create a path for each edge pair.
Creates projection path from selected single edge, multiple edges or face. Projection is basically emulation of 2 axis macine with 4 axis. Can be used for preparing foam blocks, cutting "hershi-bar" wings or decorative signs. Projection and Path objects cannot be mixed in a same route. Command will create projection for each edge.
Creates path from selected vertex in specified direction
Creates path between 2 selected vertices
Creates enter path from safe height to selected vertex
Creates exit path to the safe height from selected vertex
Rotate selected body around 5th axis
Creates a cutting route from selected paths and rotations. Objects should be selected in a right order before executing command. Kerf compensation currently supported and kerf direction can be specified for each object (except Rotation, Path and Projection) independently or for whole route.
Generates Gcode and save it to the specified file
Mirror selected GCODE file around YZ plane. Useful for cutting symmetrical pieces like wing consoles. At the moment there is no validation or changing metadata in resulted files - be careful using this command.
Machine setup is not parametric. Path and other objects will not be recalculated if you change working area in a middle of the process. But object themself parametric and will be recalculated in case target body parameters got changed.DONEThere should be only one machine per file. So far objects strongly depends on that.DONENeed to add foam block representation in setup.DONE5th axis location not configurable for nowDONEMachine origin is hardcoded and locates in a working area centerDONENo kerf settings. User can overcome it by modifying model (create Draft offset and use it as reference for paths )DONEIt's highly recommended to export your model as .STEP file, import it in new document and start from there, or . Since all objects depends on underlying geometry you, in most cases, cannot transform your model or part of it to place inside working area. It's higher priority TODO.DONE with some limitationCannot create path by selecting faces. In many cases it could be very useful to just select 2 faces and create path/route based on their edges (somewhat like loft) instead of selecting edges one by one.DONE- Configuration setup panel widget
Make helper geometry unpicableDoneG93 mode- for now I don't se a reason to implement it. GRBL controller take care of simultaneous axis movements.mirroring gcode toolDONECreate path by vertex and edgeDoneEdge projection normal to the working planeDONEToggle projection linesDONEAdd package.xmlDONE- Automatically place model inside machine and create foam block around it. Right now it's recommended to create a parametric copy of your model (like Draft.Clone) after placing model where you want, to reset model placement.
- Add video tutorial
- Add examples
- many more I forgot for sure ;)
Please offer feedback or connect with the developer via the dedicated FreeCAD forum thread.
GNU Lesser General Public License v2.1