FreeCAD

From CoMakingSpace Wiki

SoftwareInfoBox

FreeCAD

Type: 3D Modeling, CAD
Platform: Windows, Mac, Linux
License: LGPL-2.0-or-later
Source: https://www.freecad.org/
Input Formats:
Output Formats:
Users: Lorenz, Maker-Joe


General Setup

To use FreeCAD on a CNC machine a few configuration like for any CAD tool has to be made. Some are rather general and some are specific to the CNC router/mill you are using. FreeCAD offers some great help and resources on the web. This chapter is not intending to replace all that documentation but should just give you a brief overview as a jump start what has worked for the author, feel free to do it differently (and share your knowledge).

Use at least FreeCAD 1.1.3.

In the CAM workbench create a job, for the first time leave template empty. Once you know what you do create a template to speed up your work. In the screen below just press "OK".

Initial CAM Job creation

On the left part you have 6 tabs, on the "Output" tab look at the following settings:

CAM Job - General Settings

As a processor you need to select the processor matching your CNC router,

  • Workbee: rrf with some modifications (see below in the Workbee section)
  • Kress CNC mill: mach3
  • Blackbox: grbl

As the coordinate system choose G54 in case you use the Workbee (might as well differ for other CNC routers). Output File can be left empty, but it is recommended to specify a filename for the gcode file. If you don't specify a filename here the gcode file is named after the FreeCAD file and located in the same folder as your FreeCAD file.

Now switch to the "Setup" tab

CAM Job - Setup Settings

Select "Extend Bounding Box", but set the extension to 0 mm in all directions. Now set the origin, most likely you want to have the origin at the bottom left of your workpiece and here on the top of the workpiece since you drill/route into the material. The origin (the little coordinate system) on the picture is set to the right position. In case it is not for you click on the corner you would like to use as origin. You can see (hard to spot) that the lower corner has a little green dot, only then the button "Set origin" becomes active to set the origin. It can be very hard to hit exactly a corner, be patient if you do it the first time.

Now switch to the "Tools" tab:

CAM Job - Tools Settings

Add your tools to the list and remove all tools you don't need for your job. If you have not created your tool, then this would have to be done first. Tool creation is fairly easy and thus skipped in that guide for now. The values you enter here depend on the machine, mill bit and the material you are using. Check the machine specific pages for more information. The spindle speed can be set to any value, for the Workbee, Blackbox and Kress machines the rpm speed is set manually at the machine.

CAM Job - Settings Completed

Operations are a bit of trial and error what works best for you and there are plenty of resources on the net. Once you have created all your paths, then get back to the next step. Assuming you have now all your operations you can export your g-code file:

CAM Job - Export gcode

By pressing the marked button your gcode file will be exported. If that button is inactive then select the "Operations" folder in the tree of the left of the screen.

Workbee Specific Changes for the Gcode File

Once you have your gcode file, open it in a text editor:

CAM Job - Export gcode

The part marked in red must be replaced, in line 17 of the screenshot (line number might be different for your file) you see where the first operations starts. The name of the operation might be as well different for your file. Everything above is a header and needs to be replaced with:

G90 G94
G17
G21
G28 G91 Z0
G90
(2D Contour1)
T2
M3 S16000 P0
G17 G90 G94
G54

After that the file looks like this:


CAM Job - Export gcode modified

This is now the gcode you can upload to the Workbee.

A Workbee specific post processor has been created, it can be found here https://github.com/comakingspace/CommonFiles/blob/master/CNCFiles/rrf_comaking_hd_post.py If you are using this post processor you can skip the last manual copy and paste steps.