Please see the wiki for links/formatting: http://www.shapeoko.com/wiki/index.php/Software
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.
*Send the g-code from your PC to the controller for your ShapeOko.
*Interpret the g-code to drive the stepper motors (some systems combine these last two steps).
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:
Hello World] --- this gets one started w/ writing out the machine's name using pre-generated G-code
First Job] --- milling a first object, a coaster out of cork, after drawing it up in [[MakerCAM]], cf., [[Run Your Second Job]]
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
===[[CAD | 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.
===[[CAM | 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 [[Programmatic G-Code Generators | programmatically generate G-code]] or to [[Interactive_G-Code_Generators | generate it using an interactive system]].
* [[MakerCAM]], available at [http://www.makercam.com www.makercam.com
] is the typical choice for beginning CAM.
===[[Previewing G-Code | 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 | communication / control]] page.
* [[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 [[How a CNC operates|this page]].
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.