Design and Print using Open Source FreeCAD, Cura, and Lulzbot Taz 5

Designing a 3D Printable part using FreeCAD
Designing a 3D Printable part using FreeCAD

One of the things that held me back from 3D printing for so long was learning what tools I needed and how to use them. It’s relatively easy to print things once you have a design: Shapeways, Thingiverse, and UPS will print your designs, your local library may have printers for you to use, or you can buy a printer for a few hundred dollars.

As part of my Dog Bed Weight Scale project, I recently learned how to design and print stuff, using Open Source software. All you need to get started is a little software, a little expertise, and patience.

The general design/print path is:

  1. Design the part using a CAD (Computer Aided Design) program.
  2. Export the design to a .stl file.
  3. Read the .stl file into a CAM (Computer Aided Manufacture) app, and generate the corresponding .gcode file.
  4. Copy the .gcode file to an SD card
  5. (Lulzbot 5/6) Plug the SD card into the printer and tell it to print.

Design (CAD) Software

  • Autodesk Fusion 360. Fusion 360 is a proprietary, fully-featured, Parametric design CAD program. Parametric models are easy to scale and modify. You define your model in terms of Constraints (for example, “this is a vertical line, and it’s 24mm tall”). You’ll like this if you think about design in terms of Engineering Drawings, like I do.
  • FreeCAD. A free, Open Source, Parametric design CAD program.
  • Lots and lots more.  I’ve listed the two I know anything about.

G-Code (CAM) Software

  • Cura is a free, Open Source Slicer. You can get two different versions:
  • PrusaSlicer is a free, Open Source Slicer optimized for Prusa printers.
  • Again, there are lots and lots of CAM software apps out there.  Cura is the only one I’ve used.

FreeCAD Tips

  • The first time you use it, set Edit / Preferences… / General / Start up / Auto load module after startup to Part Design. That will save you a lot of “why can’t I…” headaches later, because I find I spend most of my time in the Part Design workbench.
  • I found FreeCAD’s Basic Part Design Tutorial is very helpful for making that very first part.
  • In FreeCAD, you structure your model (your design) as a list of Transform and Sketch pairs. That is, you first draw a 2D Sketch (drawing), then extrude or rotate it into a 3D object.
  • When you’re happy with a part, switch to the Part workbench (from Part Design), select all the pieces of the part, then choose Part / Create simple copy. That will produce a solid part that is capable of being printed or assembled with other parts. If you don’t do this step, your print may or may not work.  I was unfortunately lucky in my first print, so I didn’t know about this Create Simple Copy, and my second design didn’t work at all (until I redesigned it).
  • To start, select File / New (almost nothing on the screen will change), then select Part Design / Create Sketch. A dialog will ask what plane you want to work in. XY plane (looking down on the part) is often a good place to start.
  • To assemble multiple parts, use the Part (vs. Part Design) workbench, copy and paste simple parts (that you created by Create Simple Copy), then for each part select Edit / Placement… to move and rotate the part relative to another.  DO NOT just double-click the part you want to move. If you do, you wind up in a drag-and-rotate interface that I personally find impossible to use.
  • In the Placement dialog, to rotate things, select the Euler Angles option instead of the (very non-intuitive) Rotation axis with angle option.
  • As I said above, FreeCAD’s Basic Part Design Tutorial is a great way to get started.

Cura Tips

  • First, switch to “Expert” mode. The default “Beginner” mode doesn’t print properly for me.
  • In the Cura menu, choose Expert / Switch to full settings…
  • Load the profile for the printer you plan to use. The Lulzbot Taz 5 0.35mm nozzle is pre-loaded into Cura Lulzbot Edition. For other editions of Cura, see Lulzbot Cura Profiles for your Lulzbot printer.
  • Select the printer you want to use.  I use Machine / Lulzbot Taz 5 (0.35 nozzle)
  • In the Basic tab, set the Printing Temperature and Bed Temperature according to the printer and material you’re printing with. NOTE: the defaults will print nothing.
  • Set print head speed to 20 I find this setting has less chance of pulling up the lines of plastic when the head moves.  Once you start creating large prints of exotic materials, you’ll need to experiment with the settings to find how to get a good print.
  • Lulzbot Taz Cura Profiles has recommended values for each type of plastic that Lulzbot Taz 5 supports.
  • In the Basic tab, set the Support type, for overhanging parts of your design. Touching Buildplate or Everywhere is generally useful.  You may need to experiment, depending on your design.
  • In the Basic tab, choose the Fill Density. For most uses 20% works well. Numbers below this tend to be too fragile; higher numbers use more plastic, take longer, and can overheat during printing, causing sag and bulging.
  • Check the model by using the Layers view:
    • Click the upper-left icon labeled View Mode
    • Click the Layers icon. The other modes are useful as well.
    • Slide the slider up and down to see how the print will progress. Doing this will show you any problems before you spend the time and plastic to print.
  • Cura provides an estimate of time to print and meters of filament used, underneath the Save G-Code button icon.

Filament types

There are dozens of types of filament. Most people start with either PLA (Polylactic Acid) or ABS (Acrylonitrile butadiene styrene), then start using more exotic filaments as they gain experience.

I much prefer PLA to ABS because PLA is biodegradable (at least in theory) and ABS printing produces gasses that can irritate your eyes, nose, and lungs.

Filament cost

Like I said, Cura shows the estimated time to print and length of filament required for your print.  My little designs for Load Sensor Holders took I think a little over 1 meter per holder.  It’s easy to design parts that take a few meters.

Lulzbot sells 3mm, 1kg PLA plastic filament for about US $35 each. From this nice length estimation from ToyBuilderLabs, such a reel contains about 110 meters. So it costs about US 32 cents per meter.

Lulzbot Taz 5 Printer Tips


The printer head and table are very hot (well above boiling) during a print. Don’t touch.

The printer head and table can move quickly and in unexpected directions during a print. Keep clear of the printer during printing. Keep loose clothes and long hair clear of the printer during printing.

The printed part can spring away from the table during removal. Wear safety glasses during removal.

Like I said in a blog, a very small hammer is very handy for removing stubborn prints from the table.  But don’t dig the spatula tip into the table.

Wait for the table to cool before trying to remove the print. Removing a hot print can leave residues on the table (and you might burn yourself). The Lulzbot Profiles page gives recommended temperatures for removing your print.