From ShapeOko
(Redirected from Advanced Software)
Jump to: navigation, search


Gcode flow.JPG

You'll go through five steps in creating a part with your ShapeOko.

  • Design the part in a CAD (Computer Aided Design) system.
  • Generate the G-Code that will drive your ShapeOko using a CAM (Computer Aided Manufacturing) program.
  • Check that G-code to ensure it does what you want in an efficient manner in a Previewer.
  • Send the G-code from your PC to the controller for your ShapeOko using a communication/control program.
  • Interpret the G-code to drive the stepper motors (some systems combine these last two steps).

What software comes standard with each machine?

In order to keep things simple, we've moved most of the software information to specific sub-pages linked from the headers below. The basics are covered in:

Regardless of which software toolchain you are planning to use, please read and review the above tutorials, since they cover the basics of the processes involved and introduce the relevant terminology. If anything is unclear, please refer to the Glossary.

In addition, you may wish to try these alternative tutorials which show the usage of various other programs:

  • Basic workflow 2D --- Using Inkscape to set some text, HeeksCNC to convert it to G-code and OpenSCAM to preview it
  • Basic workflow 3D --- Creating a part using an opensource CAD application, exporting it as an stp file and processing it using HeekSCNC and OpenSCAM

Computer Aided Design (CAD) Software

CAD programs are high precision drawing programs. They can be used to create diagrams, models, and circuits. Different programs are best suited for particular tasks, and it's also possible to use a general-purpose vector drawing program instead of a special-purpose CAD program.

  • Inkscape is the typical choice for beginning CAD and vector drawing.

A number of different file formats are used for exchanging 2D and 2.5D part files:

  1. DXF --- data exchange format, a CAD-specific format, feature support varies by version
  2. SVG --- while scalable vector graphics were intended for web / on-screen usage, their RGB nature does not limit their usage for CAD/CAM as it does for print. A useful utility for them is:

3D CAD programs will define geometry in one of three ways[1]:

  1. Point Clouds --- typically these are generated by 3D scanning and are difficult to edit.
  2. Polygon Meshes --- triangles connected so as to define a polygonal 3D area. Typically stored as .stl files and often used for 3D printing.
  3. Surfaces/NURBS --- shaped defined by curves. Resolution independent and easily edited.

Computer Aided Manufacturing (CAM) Software

CAM programs read files from a CAD program and create G-code from it. G-code is the standard way of specifying the movements of a CNC machine. Some programs combine CAD and CAM in a single program. G-code is provided for your first job, so you don't need to worry about CAM while setting up your machine. It is also possible to programmatically generate G-code or to generate it using an interactive system.

Verify / Optimize G-Code

Verifying and optimizing your G-code is optional, but can be helpful. The verification step checks to be sure the G-code performs the right operations, does it in a logical order, and doesn't send the tool anywhere you don't want it (like through the piece you're making). The optimization step attempts to create G-code that gets the job done as quickly as possible, removing unnecessary steps and sequencing the movements in an order that minimizes extra movement.

Some communication / control program (see below) include previewing functionality --- it is recommended that one utilize that function in Universal G-Code Sender to begin.

Communication / Control

At the minimum, a G-code sender program will send G-code commands from the PC to the Arduino. Some G-code sender programs can do a lot more, such as allowing you to "zero" the CNC machine and visualize the path of the tool. You will need a program to do this, either one listed below, or from the communication / control page.

  • Carbide Motion, a QT program that will run on Windows and Mac OS X will be the communication / control software for Shapeoko 3.
  • Universal-G-Code-Sender, a Java program that will run on Windows, Linux and Mac OS X is the typical communication / control software choice.

Note: some programs directly control the machine rather than sending G-code to an interpreting controller, so are listed on the Communication / Control page.

Communication / Control is at the heart of how a CNC operates, as described in this page.

G-Code Interpreters

This is the final step in the process. The standard G-code interpreter for ShapeOko is a program called GRBL that runs on the Arduino. GRBL takes the G-code instructions sent by a Communication / Control program, interprets them, and outputs electrical signals through the stepper shield to the stepper motors.

  • GRBL is a free, open source, high performance, CNC milling controller; written in optimized C that will run on a straight Arduino. The basic documents here assume you will need to have GRBL installed on your Arduino when running your first job.


Some users may find writing programs to achieve certain designs more efficient. In addition to the programs listed on the Programmatic G-Code Generators page, OpenSCAD is a CAD tool which uses a programming language as its interface.

Interactive G-Code Generators

Another alternative as noted above is to use a previously written program which is interactive. This style of usage is also termed “conversational” programming and is featured on some commercial machines.

G-Code Utilities

There are a number of utility programs for various tasks, such as scaling, rotating, and various other sorts of post-processing.

Conversion Programs

Note: Please note that there are also conversion tools which may be useful. These are listed in various sections, depending upon their input--output. Of especial note are:

One interesting option is to chain utilities together to create a virtual printer which will convert to a .dxf under user control:

In a class by itself is: which will convert MIDI into G-code commands to play that tune.

Mac OS X

While all of the above works on Mac OS X, there aren't many documented OS X-centric workflows. One such was written up here: Re: Linux vs OSX to TinyG.

Basically all of the opensource stuff works on Mac OS X as it would on Windows or Linux, and a number of Commerciall programs have Mac ports (though some of them may require XQuartz as some of the opensource apps do).

Carbide Create runs on Mac OS X as well as Windows. Best CAD Software for Mac Reviews

List of commercial CAD/CAM apps for Mac OS X:


Most, if not all of the opensource software runs under Linux, and Linux is used for a number of special-purpose systems such as the Raspberry Pi.

Commercial Software

Please note that commercial software, as well as otherwise free programs, which have significant licensing limitations have been moved to their own page.

Specialty Software

Note that some specialty software links are scattered throughout this wiki. Some of the more notable instances include: