From ShapeOko
Jump to: navigation, search

One concern with CAD is a fundamental aspect of their architecture: How are curves, arcs and circles handled? All- too-many programs take the expedient route of representing them as as polygons or polylines. Academic paper discussing this G codes for the specification of Pythagorean-hodograph tool paths.

Please note that it is possible to use pretty much any vector drawing program for design, esp. if one limits oneself to 2D (one interesting example of this is the use of a JavaScript to generate G-Code from vectors w/in the page layout program InDesign (see IterativePathCuts (unfortunately limited to straight lines) at Silicon Publishing: Resources, forum discussion)). The 2D drawing programs listed below were chosen for their having especial support in the form of features or plug-ins to support CAM.

A note on curve approximation: The trivial case with four cubic beziers (one on each quadrant) has very low maximum error, IIRC on the order of 0.1% of the circle radius.[1]

Origin point This is different from most drawing and CAD programs: as discussed here:

A note on vector drawing: Vector drawing is like to drafting with rules, triangles, compasses and a French curve, while pixel editing is more akin to colouring in spaces on a grid. Vector drawing uses lines (a straight path between two "nodes" which are x,y coordinates, one is the beginning, the other the ending), regular geometric forms (defined by nodes which denote each point at which lines meet), arcs and circles (defined by the central point of rotation and the radius therefrom) and Bézier curves (a mathematical description of an arbitrary curve which has four "nodes", one on-the-path, two off-the-path and one on-the-path) to allow it to express pretty much any shape or form.

A game to learn about forming such curves:

A Primer on Bézier Curves

A note on units: Most CAD programs store drawings in generic units, rather than a specific measure. It is important to know what unit was used when a drawing was created so as to be able to import it at the right size. Forum discussion.

It is also of course, straight-forward to work directly in G-Code, accomplishing Design and CAM in a single step using programs which provide integrated text editing such as NC Plot and NC Corrector (the latter is listed on the Previewing G-Code page. A tutorial is listed on the CAM page.

Note: A number of programs listed on the CAM page include design features for such specialized things as PCBs, Thread and Fret cutting and Gears.

See also

The Failed Promise of Parametric CAD, a series of articles by Evan Yares[2]:

Tracing is a useful option for some projects. Most vector drawing programs have an option for this, or new can use a specialized tool. One such:



Type Name/Link Description
2D drawing (Opensource) Inkscape SVG drawing program which can either export to DXF or directly to G-code using plug-ins. Supports pressure-sensitive graphics tablets.
2D drawing (Opensource) Doodle3D Freehand sketching program for iPad and Mac OS X (source available for other platforms) to extrude and revolve into 3D.
2D CAD (Opensource) LibreCAD Fork of Qcad. Free and OpenSource CAD (DXF) application, cross platform.
2D CAD (Opensource) Simple2D CAD/CAM Windows app to cut simple shapes (pockets, mostly) and simplified gears, includes a geometry mode that allows geometry defined by lines and arcs. It also generates geometry from any OpenType font.
2D drawing (Opensource) Cenon (Mac OS X, NeXT/OPENstep, Linux) OpenStep CAD/CAM program which has transitioned to opensource.
2D drawing (Opensource) Xfig G-code enabled Xfig.
2D CAD (Opensource) Dedalo 2d CAD drawing software written in python3.
2D CAD (Opensource) Zcad Simple CAD program with dxf2000 file format support.
2D CAD (Freeware) OpenS-CAD, a simple 2D CAD application Windows .exe (87.5KB) and source (225KB).
2D CAD (Freeware) DraftSight Free CAD software for DWG (and DXF) files by Dassault Systèmes (Windows, Mac OS X, Fedora and Ubuntu).
2D CAD (Freeware) nanoCAD Free tool for creating, editing, validating, sharing, and managing CAD models.
2D CAD (Freeware) Siemens Free 2D Free CAD software by Siemens (Windows). textbook available as a PDF.
2D CAD:iPad (Freeware) Sketch It Make It Apple App Store 2D CAD for the iPad[3].

Extrusion --- create simple, printable 3D objects such as coins, pendants, earrings or medals. Youtube Reddit


Type Name/Link Description
3D modeling (Opensource) K-3D K-3D is free-as-in-freedom 3D modeling and animation software. It combines flexible plugins with a visualization pipeline architecture, making K-3D a versatile and powerful tool for artists. Available for Windows, Mac OS X and Linux.
3D modeling (Opensource) BRL-CAD BRL-CAD is a cross-platform open source solid modeling system that includes interactive geometry editing, high-performance ray-tracing for rendering and geometric analysis, image and signal-processing tools, a system performance analysis benchmark suite, libraries for robust geometric representation, with more than 20 years of active development. Discussion of shortcomings.
3D modeling (Opensource) Art of Illusion Free, open source 3D modeling and rendering studio. Features include subdivision surface based modeling tools, skeleton based animation, and a graphical language for designing procedural textures and materials. Default design software for the RepRap project.
3D modeling (Opensource) MeshLab Open source, portable, and extensible system for the processing and editing of unstructured 3D triangular meshes.
3D modeling (Opensource) HeeksCAD Together with HeeksCAM comprises HeeksCNC.
3D modeling (Opensource) FreeCAD FreeCAD is a general purpose feature-based, parametric 3D modeler for CAD, MCAD, CAx, CAE and PLM, aimed directly at mechanical engineering and product design but also fits a wider range of uses in engineering, such as architecture or other engineering specialties. It is 100% Open Source and extremely modular, allowing for very advanced extension and customization. See also the Python-query-scripting language CadQUERY and Cnc25D CAD Library.
3D parametric modeling (Opensource) OpenSCAD Software for creating solid 3D CAD objects, available for Linux/UNIX, MS Windows and Mac OS X. A 3D-compiler that reads in a script file that describes the object and renders the 3D model. Similar on-line tools include CoffeeScad, OpenJsCad and fabfabbers running openscad converted to JavaScript. See also SolidPy, a Python script for manipulating objects. Cf., RapCAD, a system optimized for RepRap 3D printers, Developer’s blog. There is also an app for Android, ScorchCAD.

See also the graphical version Ulticreator, an interactive front-end for CoffeeSCAD.

See also which adds slicing for 3D printing.

3D parametric modeling (Opensource) ImplicitCAD Similar to OpenSCAD (above), but written in Haskell and using an internal geometric representation, as opposed to the polygon mesh used by the former
3D parametric modeling (Opensource) NaroCAD 3D parametric modeling CAD application for Windows, based on OpenCascade.
3D modeling (Opensource) Blender Free, OpenSource and crossplatform 3D program. Allows modelisation, shading, rendering, animation, interactive 3D, compositing. Not a CAD software though it can be used for any kind of modeling. See Blender CAM for a tool to export files for EMC. If importing from Illustrator, see this forum discussion for a note on how to handle units. Tutorials.

3D Printing Toolbox

Tutorial: Creating a Simple Chess Piece in Blender

Blender 3D wikibook

Using Blender to create Heightmap from a 3D model

3D modeling (Opensource) Wings3D Free, OpenSource and crossplatform 3D modeler. Wings 3D is an advanced subdivision modeler that is both powerful and easy to use.
3D modeling (Opensource) Shapesmith Parametric, Open-Source 3D Modeling in your browser, can do basic primitives and addition/subtraction operations and export to STL.
3D modeling (Opensource) SolveSpace Parametric 3D CAD program for Windows. See also its 2D predecessor, SketchFlat.

1.4Mb executable that doesn't have to be installed.

Does basic 3D operations as well as 2D. A good free option for basic modelling, as well as for education (the basics are the same as any full featured parametric CAD system). Outputs in .svg. .stl output, should be pretty well suited to simple modeling for 3DP.[4]

Features include: Constraints and assemblies

3D modeling (Opensource) POVray "The Persistence of Vision Raytracer (POVray) is a high-quality, Free Software tool for creating stunning three-dimensional graphics".
2D drafting/3D modeling (Opensource) lignumCAD Tool for designing furniture.
2D drafting/3D modeling (Opensource) Salome Generic platform for Pre- and Post-Processing for numerical simulation. Can be used as standalone application for generation of CAD model, its preparation for numerical calculations and post-processing of the calculation results.
3D modeling (Freeware) Caligari Truespace Commercial program released to freeware.
3D modeling (Freeware) DesignSpark Mechanical Freeware software for Windows distributed by RS Components International.[5] Free version of SpaceClaim 2012.[6]
3D modeling (Freeware) FormZ Free Freeware software for Windows 7/8/8.1 and Mac OS X 10.7 or later.[7]
3D modeling (Freeware/Windows) Microsoft: 3D Builder Create, print (List of supported printers) and scan (requires Kinect v2 sensor) functionality.[8]
3D modeling (opensource Linux/Mac) Antimony Computer-aided design (CAD) tool inspired by LISP, based on: framework for tracking information flow through directed acyclic graphs, geometry engine for doing CSG and includes a standard library of shapes and transforms.[9]

Hackaday: Otherworldy CAD software hails from a parallel universe

3D modeling (Chrome app) Design Something Google App Store 3D modeling application running on Chrome and Firefox. Pre-defined shapes, operations include extrude and sweep.

Interesting post on efficiency:


Type Name/Link Description
PCB (opensource) KiCad Electronic design automation (EDA) software suite for designing schematics of electronic circuits and printed circuit boards (PCB).
PCB (opensource) gEDA Full GPL'd suite and toolkit of Electronic Design Automation tools.
PCB (opensource) QS Cad Tcl/Tk EDA Package. Schematic capture through to PCB layout. Has Part editor as well as editor for Schematic and PCB Decals.
PCB (opensource) Stripboard Designer 1.0 Open source (BSD) app written in freeware Visual Basic 2008 Express for Wintel machines. See also Stripes, a GPL Java version.
PCB (opensource) DIY Layout Creator (DIYLC) GPL Java software for creating stripboard and universal board designs.

See also Qucs (Quite Universal Circuit Simulator) and XCircuit and gplEDA (list of Electronic Design Automation (EDA) tools released under the GPL).

Special Purpose

Type Name/Link Description
3D modeling --- Surfboards BoardCAD Opensource CAD/CAM-system (written in Java) for surfboards.
3D modeling --- furniture SketchChair Opensource CAD/CAM-system for flat-pack furniture. Forums/troubleshooting
2D CAM --- Jigsaw puzzle piece cutter (Online - Silverlight) CNC Puzzle Maker Program for cutting out puzzle shapes w/ tabs.
3D CNC --- foam cutting for model airplanes Jedicut CNC Program for cutting out wings and fuselages.

C.f., CNC Wire cutter Wings in Gcode

3D aircraft modeling OpenVSP Vehicle sketch pad. NASA opensource parametric geometry. Described as suited for general use.[10]


2D CNC --- sails Sailcut CAD Sail design and plotting software.
2D CNC --- Parametric boxes Planter Box Generator[11] Javascript to generate jointed boxes for planters (and other uses).

clockit: Free 3D Clock Designer --- Bicycle framebuilding CAD app

See also the CAM page which lists special-purpose programs for gears and fret and thread cutting.

Other design software

See Online resources: SVG generators

Additional programs which may merit investigation


Personal tools
Shapeoko 3
ShapeOko 2
ShapeOko 1 (Build Instructions)
Additional Build Information
Spindles / Tooling
Using Your Machine
Additional Resources