CSC 297 Robot Construction: 3D Printing

3D Printing


A Short History

3D printing, also known as additive manufacturing (AM), is a general term referring to a group of technologies developed in the 1980s for automatically producing 3-dimensional forms represented in computer aided design (CAD) formats by building them up in a series of layers. The technology was initially aimed at the prototyping phase of the product development cycle, dramatically reducing the time required to produce a physical prototype by eliminating the need for complex conventional machining and hand sculpting processes. It also exponentially increased the number of forms that could be easily generated. (e.g. machining an extruded spline is quite complex using conventional techniques, but trivial with AM technology).

Because 3D printing was originally aimed at industry, early systems were extremely expensive, and accessible only via proprietary and closely-held software systems. In the mid 2000s, initial, broad patents on the basic technology began to expire. Because several of the underlying processes are fairly simple to implement, given access to computer-controlled motors, a commodity technology at that point, there was an explosion of interest in inexpensive, do-it-yourself printers aimed at hobbyists and the home market. A number of startup companies sprang up, with accompanying media hype, and 3D printing craze was born.

Of course as soon as it became apparent that there might be a consumer market, the established companies began to take an interest. There is currently a rapid consolidation of the consumer segment of the market taking place. Many of the more-successful startups have now been acquired by one of the older, established companies, the two biggest being Stratasys ( Corporate site, Wikipedia ) and 3D-Systems ( Corporate site, Wikipedia ). These companies are in the process of creating their own lines of consumer-level products, sometimes retaining the name of an acquired startup (e.g. Stratasys with Makerbot), but also under their own branding.

Today (2015) available 3D printing systems range from DIY plastic extrusion kits costing a few hundred dollars, to professional direct metal systems costing upwards of half a million. Printable materials include a wide range of plastics, ceramics, and metals, novelty edible substances, and concrete. Research is ongoing into printing biological and living cellular materials.

You do not need to own a 3D printer in order to take advantage of the technology. If you have CAD files for a component, there are many commercial houses that specialize in doing the actual production. These typically have access to higher-quality printers working with a wider range of materials than would be available to an individual of ordinary means.

What is it good for?

3D printers are interesting robotic devices in themselves. Building one from scratch or from a kit can be an immensely instructive experience for the budding constructor. There is also potential for real research and innovation, as the field is rapidly evolving.

As a tool, 3D printing is of interest to the robot constructor for two primary reasons. First, it permits mechanical components to be designed using CAD software and then fabricated, at least in plastic, without needing to individually machine each part. Second, it permits components to be made that would be difficult or impossible to create using conventional machining. Examples include curved surfaces (conventionally hard), manifolds (conventionally harder), and artifacts with intricate, internal, 3D structure that would be conventionally impossible to fabricate. Examples of the latter include fully-optimized load-bearing structures and potentially, artificial organs.

For simple, 1-off components like beams or boxes, the choice between machining and 3D printing may be a toss-up, or come down on the side of conventional fabrication. 3D printing requires time and some skill using 3D modeling software, and the actual fabrication tends to be a slow (multi-hour) process even if an in-house printer is available. If a part need to be sent out to a printing house, the turn-around is at least a few days. If several identical components are needed, or if the structure is complex or defined by non-cylindrical curves, 3D printing can be a definite win.

3D printing metal is still extremely expensive. If your bot needs metal parts, you should plan on making them using conventional techniques from commercially available stock. A possible exception exists if you have access to a foundry. In this case forms for sand-casting can be 3D printed in plastic, or parts can be printed in wax and cast using traditional lost-wax methods.

(Wikipedia on 3D printing)

Software and Representations


At the low level, most 3D printers are controlled using varients of a programming language known as G-Code. This was developed for early CNC (Computerized Numerical Control) machine tools, which were programmed using a "teach pendant" - basically an attached peripheral box with a limited number of alphanumeric buttons and a one-line LED display. To allow easy input from such an interface, commands were abbreviated forms consisting of a letter followed by one or more digits (e.g. G01, M30) and optionally by position arguments (e.g. X0.375, Z1.25).

Basically G-code can be thought of as "CNC assembly". The mneumonic potential of the scheme is limited, and there are lots of commands, so even experienced users generally need to keep a reference table available. 3D printers themselves often want an even more compact "semi-assembled" version of G-Code, which is produced by software that comes with the printer. Internally, there may be additional "machine-language" levels of representation, but as these are not exposed to the user, they need to be considered only if you are planning to modify the guts of your device.


Luckily, users of modern 3D printers do not need to concern themselves with G-Code. Programs called "slicers" take standard CAD part models, and break them into layers that can be produced by a printer. These can be quite sophisticated in terms of inserting internal support structures to make a lightweight part, and generating external supports for overhangs if needed. The slicer then figures out how to use efficiently the printer capabilities to fabricate each layer, and generates G-Code to produce whatever printer motions and other actions are required.

Clearly slicers require some printer-specific information. Your printer will either come with a usable slicer, or point you to appropriate external software.

STL Files

The user is left with coming up with an appropriate CAD model. A representation known as STL has become a de-facto standard for 3D printing, though some slicers can take other formats. STL stands for "STereoLithography" and is a CAD file format developed by 3D Systems for its original sterolithography machines. Internally, STL uses a triangulated surface model in Cartesian coordinates.

There are STL files available on line for an amazing number of cool models, sculptures and gizmos. Slicers can scale an STL file to any desired size, and sometimes make other simple modifications as well. There are libraries for standard components such as wheels, pulleys, screws, and gears. Whole suites of parts for complex artifacts (such as pre-designed robots) are available as well.

3D Modeling software

The main advantage of a 3D printer for the robot constructor however, is the ability to fabricate custom parts. Getting an STL file for a component you have designed requires the use of CAD (Computer Aided Design) software, now more generally referred to as 3D modeling software. These programs provide a user interface for specifying a 3D object that can then be exported as an STL file or some other format. The interfaces are typically graphically oriented so the user can see what they are designing, and provide a variety of methods for generating 3D structures.

Graphical 3D modeling software is complex, and requires an enormous amount of effort to write. Until very recently, CAD packages were marketed primarily to design professionals and were correspondingly expensive (thousands of $ for a licence). The best modeling environments are still these well-developed, professional suites. Important vendors include AutoDesk and Solidworks.

In the last few years, due primarily to exploding amateur interest in 3D printing, a number of free, sometimes open-source 3D modeling systems have become available. These are of variable quality and usability, but are rapidly improving. In response, some of the professional software vendors (particularly AutoDesk) have made free or low-cost versions of their software available. These generally lack some of the capabilities, bells and whistles, and possibly accuracy of the professional versions, but can be usable. In addition, the interfaces are similar to the professional versions, which is probably the main motivation of the vendors. It requires a non-trivial effort to learn to use a 3D modeling package effectively. Once you have expended this effort, certain upgrade paths are more attractive than others.

3D modeling software can be further categorized as classic CAD, freeform/animation, or sculpting. Classic CAD packages such as AutoCAD and Solidworks are aimed primarily at engineering design. They are optimized for representation and creation of precision models, and make heavy use of mathematical, parametric forms such as prisms, conics, and splines.

Freeform/animation systems such as Maya are aimed at computer graphics and animation artists. They often include support for movable skeleton-based models, multidimensional, constrained-parameter path generation, and sophisticated texture-mapping and rendering.

Sculpting packages such as ZBrush contain tools that allow free-form "organic" shapes to be generated interactively by operations such as virtual squeezing, pinching, and stretching of what might be termed "digital clay".

The 3D Printing Pipeline

To summarize, 3D printing an object requires the following steps.

  1. Create a digital model of the object using 3D modeling software, and export it as an STL file (or possibly in another format).
  2. Use a slicing package appropriate for your 3D printer to produce GCode or its equivalent for driving the printer mechanism to build the object in layers. Any support structures required for printing are added at this stage.
  3. Send the GCode to the printer and run it to print the object. Multiple manual steps, including powerup, warmup, initialization, loading of print filament or other stock, removal of the printed artifact, shutdown, and cleanup may be part of this process.

3D Design Packages

Following is a list of some of the more commonly used 3D design software packages. Autodesk is the biggest player, followed by 3D Systems. Between them, the two have acquired many of the more successful startups. Prices are as of January 2016.




Comparison of Packages: External Links

3D Printing Technologies

A variety of different fabrication technologies are utilized in 3D printing devices. These include extrusion, photo-polymerization of liquids, powder-bed methods, very-high-temperature processes, and lamination.

Extrusion Methods

The most common technology in low-mid range printers are extrusion processes, where a melted/heat-softened solid, or a paste is extruded from a nozzle, which moves back and forth to build up layers of the material. Adjacent lines and layers of the extruded material adhere to each other, and solidify by cooling or drying.

The most familiar extrusion material is heat-softened thermoplastic, most often supplied to the extruder in the form of plastic filament. This can be pulled into the extruder mechanically, and melted just prior to deposition. The process was pioneered in the 1980s by Stratasys Corp. under the name of Fused Deposition Modeling or FDM. Most low-end and hobby printers use some variation of the thermoplastic extrusion method, and the recent explosion of commodity printers coincided with the expiration of Stratsys' basic patents on the process. Other proprietary terms for extrusion processes include Wax Deposition Modeling (WDM) Multi-jet modeling (MJM) Multi-Jet Printing (MJP) Color-jet Printing (CJP) and Plastic Jet Printing (PJP)

The most common thermoplastic printing material is PLA (Poly Lactic Acid) followed by ABS (Acrylonitrile Butadiene Styrene). ABS has superior engineering properties: it is strong and impact resistant, and can be drilled, tapped, and machined as a post-print process. PLA tends to be brittle and fracture prone, and does not tolerate post-print machining well. However, it shrinks significantly less than ABS on cooling, which makes it an easier material to print without adhesion and warping problems. Successfully printing ABS often requires heated build platforms and/or chambers. Most low-end hobby printers are thus designed to work with PLA.

A variety of other thermoplastic 3D printing filaments are available, including elastomeres (e.g. NinjaFlex) and dissolvable support materials. Low-melting waxes for making lost-wax models for investment metal casting can also be extrusion-printed, though they may be too weak for filament feed mechanisms used on PLA printers. Generally the use of feedstock other than what is recommended by the printer manufacturer must be carefully evaluated and tested. Use of non-recommended feedstock may void printer warranties.

Other materials that have been 3D printed with extrusion processes include clay, ceramic pastes, cement/concrete, frosting, and chocolate. There are also related metal-wire deposition welding processes. Most of these use localized high-temperature melting via laser or electron beam rather than extruding molten material from a nozzle.

Liquid Polymerization Methods

A second class of 3D printing techniques uses photo-polymerization of liquid resins. The technology was pioneered in the 1980s by 3D Systems Corp. under the name of "Stereolithography" or SLA. The method takes advantage of the fact that certain liquid resins polymerize into solid form on exposure to blue or ultraviolet light. Basically a layer of liquid is deposited on the component being built, and polymerized where needed by exposing it to a pattern of light. This light pattern may be produced by a scanned beam, or by an imaging system.

Several techniques for producing the liquid layers have been developed. One method uses a glass-bottomed bath of resin, and objects are built from the top down by exposing thin layers through the glass. Another method sprays a layer of resin on the part being built and polymerizes it. Some machines use ink-jet-like technology to spray and polymerize resin locally.

A newer technology exploits resins that require multi-photon events to initiate polymerization. This results in a polymerization rate that is highly non-linear with light intensity, which allows objects to be built in-situ within a vat of liquid or a block of jel using strongly focussed optics.

Liquid polymerization methods have some limitations on the objects that can be produced; for example, internal voids can be problematic. Liquid resins are also messy, and toxic to varying degrees. Cleaning and disposal of waste can be a significant issue. This makes bath methods less appealing to the hobbyist than extrusion.

Powder-Bed Methods

A third class of fabrication methods utilizes powder beds. The basic idea is to spread successive layers of fine powder in a flat container and fuse the powder where needed to form the part. The unfused powder remains as support until the object is completed. This support permits construction of overhangs and descending features that are difficult to form with other methods. On the other hand, as with liquids, fully-enclosed internal voids are problematic. Also like liquids, powdered materials are messy, difficult to handle, and potentially hazardous.

Powders can be fused by sintering, which joins granules by heating without full melting, or by complete local melting. Heat is generally supplied by scanned lasers or electron beams. Powder material can also be fused by spraying on "glue" with inkjet technology. Proprietary terms used to describe powder-bed processes include Selective Laser Sintering (SLS) and Selective Laser Melting (SLM).

Powder-bed methods can be used with any material that can be powdered and sintered, melted, or glued. This includes plastics, ceramics, and metals. In particular, vacuum melting of metal powders provides a method of making full density, full-strength parts out of practically any metal, including ones difficult to fabricate by other means such as titanium or tungsten. Such metal-fab machines tend to run a good chunk of a million dollars (or more), and are still slow. Nevertheless they are currently (2015) being used for manufacture of certain critical parts in the aerospace industry.


A final method of 3D fabrication is lamination. The idea is to cut layer shapes from sheet material (such as paper or cardboard) and glue them together. Architects and other artisans have used this technique for generations, cutting and gluing by hand. Today, cutting can be done by computer-controlled lasers, and alignment and gluing by other automated mechanisms. The process is limited to materials that can be easily cut and glued, and tends to produce significant amounts of non-reusable waste. However, there are machines than can build objects from ordinary printer paper, which is at least a universally available material.

Printer Manufacturers

The 2015 3D printer market is represented by the two giants, Stratasys and 3D Systems, who respectively pioneered FDA and SLA technologies in the mid-1980s, a handful of other sizeable commercial manufacturers, and a large number of recent startups attempting to cash in on the expiration of the basic patents and the boom in interest at all levels. Then there is RepRap, an open-source, open-design project with the goal of developing hobby-accessible printers that, as much as possible, can be 3-D printed themselves.

The market is extremely fluid, and undergoing rapid consolidation. Several of the more successful startups have been acquired by one of the large manufacturers. This fluidity has consequences for anyone interested in purchasing a 3D printer. If you are mainly interested in playing around, finding out how the technology works, and experimenting with printers as robotic devices, by all means buy a kit, something novel from a startup, or even go RepRap. If you want to make components, it might be wise to stick to established manufacturers where parts, feedstock, and maintenence, not to mention software may be more reliably available.

Big Ones


Printers at Rettner

Using the Lab 3D Printer

The CS robot-maker lab has a new 3D printer to play with. It is a Makerbot Replicator 2X. This device has dual print heads and a heated build platform, and is optimized for use of ABS filament which is better suited for robot parts than PLE.
Store Glossy, Support Page, Manual (.pdf).

3D printers are beasts that need a fair amount of care and feeding. To use the printer, you first need to be qualified by the prof. The first step of this process is to read the manual. Then you'll have to design an object using a CAD package, get it OK'd, produce an STL file, and successfully print your creation. In general, the printer is intended for printing robot components, not miscellaneous gizmos downloaded from Thingiverse etc.

The printer is connected to an adjacent PC running Windows 8 (sorry). Login permissions will be supplied when you have qualified as a user. The Makerbot Desktop application, which contains the slicer, has been loaded onto the PC desktop. This program must be used to convert an STL model file to X3G instructions that drive the printer. User manuals for the printer are also on the desktop.

Also installed on the PC is the Autodesk 123D-Design CAD package. This can be used to create 3D component models and export them as STL files. The graphic interface is a bit clunky and there are elements that seem buggy, but it is usable. I would prefer to have SolidWorks, but have not yet wrangled a low-cost license. If you have access to better CAD tools, you are free to use them.

All use of the printer should be logged in the Journal, a red notbook that lives next to the printer. A hard copy of the manual also lives there. Any printer problems should be reported to the prof. immediately, and also posted on the printer via a sticky-note so no-one tries to use it when it is not working.

Known Issues

Back to Robot Construction main page