Printing Software Main Page PDF Print Email

CAM Toolchain

A CAM toolchain is the process you must go through in order to turn a computer model into a part created by an automated machine.  In a RepRap CAM toolchain this process is:

  1. Create your model in CAD software (or download a model)
  2. Export your model as an STL file (or download the STL)
  3. Run the STL through a slicing program to generate GCODE
  4. Connect to the printer and send the GCODE

In the sections below, we'll go through this entire process in more detail, and give you a numer of options.


CAD Software / STLs

There is a large variety of CAD software available, but we will primarily talk about the ones that are Open Source.  You can use any CAD software that will output an STL file for you, typically it's under some menu option that says Export or Save As.  An STL file is basically just a solid representation of the model in a format that the slicing program can understand.  Down the line we may add CAD usage instructions, but for now we'll just point out the free options.  If you do not wish to design something, there are many items available out there already available to download and print.  Thingiverse is a great place to go to find great things to print out.  Here are some CAD options:

  • openscad - This is mostly a text-based CAD application.  You define shapes, their dimensions, and positions.  You then duplicate those pieces or take away from them to refine the model which you are trying to create.  Quite similar to programming, not the easiest for some, but offers more control for others.
  • FreeCAD - Open Source CAD software, this will probably be the most ideal free option for most people.
  • Licensed Software - If you have a copy of SolidWorks, AutoCAD, or ProEngineer, those would also work, but they are something you would have to buy.
  • Other Possibilities - We haven't tried these, but these are some more Open Source CAD options that may work - Open CASCADE, BRL-CAD, and Blender CAD


Slicing / G-Code Generation

After we have the STL file we need to run it through a slicing program.  Some printer communication programs have the slicing built right in, such as printrun (Pronterface), which can utilize skeinforge to turn your STL into GCODE.  G-codes (RepRap G-Codes) are sets of instructions that tell the machine what to do, such as set the hot end to a certain temperature or move this axis to this point.  G-codes are nice to look into once you get the hang of things, but until you need to you don't need to know much about them.  The program does all the work for you.  It takes in the STL file, slices it up into layers, then creates G-code that will print each layer.  The G-codes that get created can typically be fine tuned by adjusting settings within the slicing program.  There are two main programs used currently, skeinforge and Slic3r.

Slic3r is recommended if you are just starting to work with the RepRap.  It makes everything really easy to do, you pretty much just have to put in your nozzle diameter and you are ready to output G-Code to run on the machine.  It is actively worked on, so it's being upgraded quite often with more and more important improvements.

Skeinforge is the other widely used program to slice models and create your G-code.  There is an excellent post on the RepRap Forums with links to all that you may need to know to get it setup.  It is more complex than Slic3r and has more settings, but that can also allow you to fine tune the G-code that it makes better.  Slic3r is much faster and it continues to improve as well.

SFACT is another option.  It is essentially Skeinforge, but it has been made to be easy to get setup.  Skeinforge sometimes confuses people and SFACT is pretty much the same thing, but made to not confuse people with the settings.  There is a great titanpad document about it here and you can find the most recent README here.  This is also a good option to start with.  If you are using printrun to communicate with the printer you can put either SFACT or skeinforge into a folder and printrun will take in STLs and slice them through either of the programs.



Firmware is what you load onto the Arduino Mega 2560 board that allows you to then send G-code to the Arduino.  It then interperets those G-codes and then makes the machine perform those actions.  You can get the software to upload the firmware to the Arduino at their website here.  You may need to use version 0022 depending on the firmware and Arduino.  There are a few different version of firmware out there used.  The main ones that we usually hear about are Marlin, sprinter, and Teacup.  We will be trying out Marlin and Teacup soon to give an opinion on those, but sprinter works great.  You can get sprinter on github here, there are instructions for configuring it here.  We will work on improving this section.  There isn't much to configuring the firmware, just make some minor changes in the configuration file to describe your electronics, upload the firmware with the Arduino software, and then you are ready to connect with the RepRap software to print. 


Printing Software to make it print

This is the software that you communicate to the RepRap with after you have uploaded the firmware.  Once connected to the printer you can send G-codes to it and make it move around.  Typically the G-codes are tied into buttons that do things like make an axis move a certain amount of distance. This is also where you load the G-code that you generated with the slicing software, then send the code to the machine, which interperets the codes and prints.  The most commonly used software to do this right now is printrun.  It does everything I already mentioned.  It can take in an STL or G-Code.  If it takes in an STL it will run it through skeinforge, which is built into it.  Again, we'll go into detail on this software on another article at some point (installation and usage).  You can get printrun here.