3D Printer Ecosystem
CS
480: Robotics & 3D Printing Lecture, Dr. Lawlor
Software Ecosystem
- Modeling software is used to prepare a design:
- Many
excellent CAD programs exist:
- Solidworks is a
very powerful commercial 3D modeling and design package.
- Autodesk
Inventor is a powerful commercial 3D modeling and
design package.
- FreeCAD
is open source and crash-prone, but has a feature tree like
most grown-up CAD, and has enough features to get work
done. It can import 2D drawings from STL files, which
Dr. Lawlor uses with Inkscape.
- Any decent CAD package can import or export IGES or STEP
format, which directly represents all the curved 3D surfaces
of your design.
- OpenSCAD
is a programmer's modeling package, where you write code to
make shapes, and immediately see the resulting shape.
Unlike classic parametric CAD, it's possible to structure the
code nicely, with named parameters, loops, libraries, and
modules (like functions). However, OpenSCAD can run into
numerical issues with adjacent (not quite overlapping) shapes,
and does not directly support extruding or cutting relative to
a surface, or filleting or chamfering edges.
- Tinkercad is a very
simple to use drag-and-drop 3D modeling program that runs in a
web browser. It supports CSG
union and difference operations (via grouping and
"holes"), but doesn't support intersections, fillets, or
chamfers, and reworking an old design requires a lot of
ungrouping and regrouping.
- Google SketchUp is
a draw-and-extrude 3D modeling program. The free version
makes it fairly difficult to convert to STL file (I've done it
by exporting KML, manually unzipping, importing .dae/Collada
into Blender, and saving STL)
- Blender is
an open-source 3D modeling program, excellent for organic
shapes, although not designed for CAD or 3D printing, so it is
easy to make unprintable objects (not closed, intersecting,
etc), and it is difficult to use exact measurements.
- STL files define a model, as a list of triangles around
the outside of a closed surface. They're the de-facto
standard for 3D printable models, although they're not very
friendly for shape modification.
- A slicer converts an STL model into a set of machine
operations.
- slic3r is my
favorite, since it has a nice GUI, but is still fast and
highly customizable, and allows you to rapidly switch between
different groups of settings.
- Skeinforge
is the old standard, a powerful open-source slicer with a
bewildering interface.
- KISSlicer
is a closed-source but powerful slicer. It has excellent
support material generation.
- NetFabb
is a commerical integrated software package that does
modeling, slicing, and printer control.
- Cura
is the Ultimaker slicer.
- gcode is the universal output format for actual machine
operations.
- Printer control software is the front end for operating
the machine. On many commercial machines, the slicer and
printer control software are merged, with varying degrees of
success.
- Printer firmware
reads gcode and controls the machine. Often you can
improve the print quality and mechanical performance by tuning
the velocity, acceleration, and jerk parameters.
- Marlin
seems to be a popular open source firmware, although there are
hundreds of customized flavors of it. It is uploaded to
the printer via the Arduino IDE.
- Marlin will automatically load and print "auto0.g" from an
SD card at startup. This is my favorite way to run a
printer without an attached computer.
Hardware Designs and Parts
Design styles:
- Cartesian printer has three orthogonal XYZ axes.
The bridge
style (e.g., Mendel, Printrbot) has the head moving in X
and up in Z, and the bed moving in Y. The box style
(e.g., Ultimaker, Makerbot Replicator) has the head moving in X
and Y, and the bed moving down in Z.
- Delta
printer has three vertical axes with linear slides.
Parts of a typical 3D printer:
- Hotend extrudes the melted plastic. Hotends come
in a variety of styles, but they all basically shove plastic
filament into the hotend using some variety of toothed drive
bolt.
- Direct-drive hotends have the drive bolt directly on the
stepper motor. Makerbot is famous for these, although it
is difficult to reliably get enough torque at the stepper
head.
- Geared hotends, like Wade's
Accessible Extruder, use a gear to increase torque at
the drive bolt.
- Bowden tube hotends separate the drive stepper from the
hotend using a long thin flexible tube, which the filament is
pushed through. This makes the moving hotend much
lighter weight, allowing faster moves, but pushing filament
can be error prone.
- Bed or build platform is where the part
sticks. Often heated, to soften the plastic so the part
sticks better, and there's less thermal differential to cause
parts to curl.
- Bare glass is cheap and smooth, but needs to be heated or
coated to get decent adhesion.
- Kapton tape provides a compatible plastic surface to improve
adhesion to a heated bed.
- Glue stick or hairspray can be used to help parts stick to
the bed.
- "ABS Juice" (ABS + acetone slurry) can also help glue down
parts.
- Stepper
motors move each axis: most axes are connected to the
steppers with belts, but the heavier Z axis is usually moved
using a threaded rod, called a leadscrew in this context.
In CNC cutters, all axes are typically on leadscrews (often more
accurate ballscrews), which makes them slower but more powerful
and accurate.
- Control
board, like the Melzi all-in-one, has
motor drivers for the steppers, FETs to switch the hotend, bed,
and cooling fan, and inputs for the thermistors on the hotend
and heated bed, and end switches.
- Power supply supplies clean DC power to the entire
printer. It may need several hundred watts for a heated
bed. Typically this is either a 12V PC power supply, or a
19.2V or 24V laptop power supply.