3D Printing

From ShapeOko
Jump to: navigation, search

The ShapeOko is also suited for use as a 3D printer. Like any CNC machine, the conversion to 3D printing is quite straight-forward. 3D printing is the inverse of the milling / routing / material removal the Shapeoko is normally used for. Termed as Additive Manufacturing, it allows one to directly create an object by adding material onto a bed, typically layer-by-layer. Options include:

  • SLS (selective laser sintering)
  • FFF (Fused Filament Fabrication) c.f., FDM (fused deposition modeling, a trademark of Stratasys Inc.)
  • SLA (stereolithography)

The typical route is to use FFF, and is what is documented here. Please see below for a list of other 3D printer projects and designs.




“Getting good prints out of a printer is a skill you learn with time, if you are willing to invest said time. Whoever tells you otherwise is lying to your face.”[1]



Using the ShapeOko as a 3D printer involves certain tradeoffs:

  • affordable re-use / multi-purposing of the XYZ mechanicals
  • limited Z-height (on a stock machine)
  • Requirements of a 3D printer control system being more involved and expensive than a 3-axis CNC (page about RAMPS settings for CNC)

Further requirements include:

  • Electronics which include:
    • 4th axis stepper driver
    • Heating element and temperature monitor for the extruder which will need to be calibrated[2]
    • Suitable power supply --- 3D printers require an additional motor, plus at a minimum current to heat up the hot end, so require significantly greater amperage than a typical milling machine (modulo those which have a spindle plugged into and controlled by the microcontroller)

In addition to heating the filament and extruding it, one may need further temperature controls:

  • Heated bed
  • Enclosure (for ABS, to prevent drafts and control the ambient temperature of the print) ---
  • Fan to cool the print (for PLA which wants airflow)[3][4]

See the following examples:

Reddit post discussing the tradeoffs involved in attempting to build a machine inexpensively


Contents

Forum discussions and examples

Software

In addition to the standard 3D CAD software (Art of Illusion is a frequent suggestion), 3D printing requires additional specialized software. See also http://reprap.org/wiki/CAM_Toolchains

One option is to draw geometry in a 2D program such as Inkscape, export to .dxf, then import that into OpenSCAD as shown in http://www.appropedia.org/Converting_2D_images_to_3D_for_printing_using_open_source_software or to directly export to OpenSCAD using a plug-in such as http://libregraphicsworld.org/blog/entry/inkscape-gets-openscad-converter

Previewers

http://www.3deefab.com/en/faq/viewers

Type Name/Link Description
STL STL Viewer Display and manipulate the content of stereolithography or STL files.

Utilities

Type Name/Link Description
Nesting Plater 3D-printer plate generator.

http://gfx.cs.princeton.edu/pubs/Luo_2012_CPM/index.php --- Chopper: Partitioning Models into 3D-Printable Parts

http://nothinglabs.blogspot.com/2012/11/puzzlecut-openscad-library.html?m=1 --- PuzzleCut OpenSCAD Library

Slicing

Rather than generate G-code to describe the negative space around an object, CAM for 3D printing requires that one "slice" an object into a given layer height to match one's printer's configuration and desired print quality.

Type Name/Link Description
Mesh MeshLab Portable, and extensible system for the processing and editing of unstructured 3D triangular meshes. Object slicing routine is extremely quick.
Slicer Skeinforge Converts STL files to Gcodes. Included with ReplicatorG. Reliable with many options.
Slicer Slic3r Converts STL files to Gcodes. Faster than skeinforge.
Slicer Repsnapper Slicer completely written in C++. With 3D preview.
Slicer Cura Slicer and GCode sender. Single solution software where parts can be used independently.
Slicer SuperSkein Open Source 3D Mesh Slicer in Processing. Thingiverse
Utility ConvertSTL Ruby script that converts STL files between ASCII and binary encoding.
Utility IVCON command-line C++ program for 3D graphics file conversion which reads and writes a variety of 3D graphics file formats, including STL, converting from one to the other.

Communication/Control

3D printing requires controls not needed for milling, so uses different control software. Many control programs include slicing features, either one of the programs above, or their own.[5]

Type Name/Link Description
Multi-purpose Repetier-Host All-in-one software for doing everything but creating .stl files: arrange, slice, check G-code, send G-code, monitor printer. Instructions for installing in Linux. Fix for permission denied error.[6]
Multi-purpose ReplicatorG Software for controlling a 3D printer. Inputs G-code or STL and will arrange, slice, create G-code and send.
Multi-purpose Cura Prepare a 3D file for printing and to print it.
Multi-purpose MatterControl Graphical app to organize, arrange and manage your 3D prints. Includes MatterSlice slicer. Windows and Mac OS X versions available.
Communication Pronterface Pronterface, Pronsole, and Printcore - Pure Python 3d printing host software.
Communication Printrun Set of G-code sending applications: printcore (dumb G-code sender), pronsole (command line G-code sender), pronterface (G-code sender with graphical user interface), and a collection of scripts.
Multi-purpose X2SW Graphical interface bundling Printrun, Skeinforge and Slic3r. Windows and Linux.
Multi-purpose RebRep Graphical app for Windows or Linux used to send GCodes to a RepRap 3d printer.
Communication RepSnapper Graphical interface for Windows written in C++.
Communication ArduinoSend/send.py Python command-line tool for sending code.
Communication reprap-utils Command-line utilities for Posix-compatible (Unix) systems and Windows.
Communication and remote web interface Octoprint for CNC / Grbl by PxT Communication program which allows submission of jobs, previewing, monitoring and control through a web interface. Unique in being suitable for Grbl as well as 3D printer firmwares. New version will round to 3 decimal places to preclude the too long line problem. Instructions for installing on a Raspberry Pi. Original version. (Setup on Windows)

https://www.botqueue.com/ --- Web based printer control software, meant for many printers and managing a queue.[7]

G-Code Interpreters/Firmware

G-code interpreters for 3D printers require additional support for an extruder which must simultaneously be controlled for both the rate of filament feed and the temperature of the hot end.

Type Name/Link Description
G-code Teacup Teacup Reprap Firmware (originally named FiveD on Arduino) is a firmware package for numerous electronics sets. Sub-32K size can squeeze onto an Arduino Uno ATmega328 or ATmega168
G-code Sprinter Forked from Klimentkip
G-code Marlin Forked from Sprinter and Grbl. Support for QTMarlin a beta GUI for PID-tuning and velocity-acceleration testing.
G-code Sjfw Firmware for Atmega644p and later processors.
G-code Repetier Forked from Sprinter.
G-code Sailfish Firmware for Makerbots.
G-code Smoothie Firmware for 32-bit ARM NXP LPC1768 Cortex-M3 boards

Online generators

Online Utilities

Closed Source

  • http://www.craftunique.com/craftware (Windows)
  • http://www.netfabb.com/ (Windows)
  • http://kisslicer.com/ KISSlicer --- cross-platform program that takes 3D files (STL) and generates path information (G-code) for a 3D Printer. Free version has all the features needed for the hobbyist who uses a single-head machine. The PRO version essentially adds multi-head and multi-model printing.
  • http://gcodeprintr.dietzm.de --- a variety of apps, some free/opensource, others paid including: GCodeSimulator for PC (opensource), GCodePrintr (Android) (available in free and paid versions on the GooglePlay App Store), GCodeInfo - Command line tool (opensource) Google Circle

Sketchup

Hardware

In addition to the motion requirements which are in common with a CNC mill or router, a 3D printer must also manage filament as noted above. This is done using a variety of specialized hardware.

Extruder

The extruder is divided into two parts, one for moving the filament, the other for melting and depositing it.

Cold End

The cold end (often referred to as an extruder itself) moves the filament of a diameter to match that of the hot end at varying rates of feed under the control of the microcontroller running the selected firmware. Most designs use a "hobbed" bolt which has grooves cut into it which serve as teeth to engage the filament and allow it be fed into the hot end.

Hot End

The hot end accepts filament of a particular diameter (typical options are 1.75mm and 3mm), heats it to its melting point and feeds it through the nozzle (which diameter characterizes the hot end, typical diameters are 0.25mm, 0.35mm or 0.5mm).

http://reprap.org/wiki/Hot_End_Design_Theory

Discussion of nozzle diameter: http://www.shapeoko.com/forum/viewtopic.php?f=9&t=1816&start=40#p29203

Assembly techniques:

Print Bed Surfaces/Coverings

The print must be extruded onto a flat, level surface to which it will adhere.

http://reprap.org/wiki/Leveling_the_Print_Bed

One strategy for production work is to have two beds and swap them after each print.

Surfaces

Other special purpose options:

Often a printing surface will be mounted to a "thick sheet": http://reprap.org/wiki/Thick_Sheet

Some thick sheets are suitable for directly printing on:

  • plywood
  • bamboo

Coverings

Most surfaces require some sort of covering to ensure adhesion. Choices include:

  • Kapton Tape
  • PEI Film
    • Window Tint Surface[9]
  • Blue Painter's Tape --- parts will have a textured surface, print from tape will offset onto bottom of print, alternate option green Scotch brand 233+ masking tape[10]
  • photo paper --- some filaments want a surface w/ a high cellulose content[11]
  • masking tape --- http://forums.reprap.org/read.php?1,393280,393280#msg-393280

In addition to or in lieu of the covering:

  • PLA
    • Gluesticks --- Elmer's Xtreme school glue[12]
    • thinned PVA wood glue (for PLA)
  • ABS
    • Hair spray (for ABS) --- Fructis Extreme Control Hairspray[13] Some people use as many as four or five coats, allowing each to dry, covering the plate while it does.
    • ABS slurry[14]

Examination of adhesive use: http://www.dbclunie.com/2014/02/what-adhesive-do-you-use-when-3d.html

Commercial options:

Filament Spindle

Easily constructed, these may range from temporary structures of Lego bricks and dowels to more elaborate setups.[15]

3D Printer Filament Spool

Electronics

Microcontroller

A microcontroller able to control a 4th axis will be necessary. Also a means to control the temperature of an extruder, this can either be an external unit or one integrated into the board.

An Azteeg X5 mini has been used successfully as noted on RepStrapOko as has Mach 3.

Any of the electronics listed on the reprap wiki should be suitable: http://reprap.org/wiki/List_of_electronics

Thermistor

Notes on temperature control: http://reprap.org/wiki/Temperature_control

Please note that in order to do PID temperature adjustment the thermistor must be suitable, 100 kΩ rating, the resolution of 10 kΩ thermistors above 150°C is not suitable for PID control. http://www.shapeoko.com/forum/viewtopic.php?f=9&t=3869&p=29099#p29099

Config Descriptor
EPCOS100
RRRF100K
Honeywell100K
Semitec
HT100K

Configuration

Extruder

Before attaching the hot end, an extruder should be configured as to the number of motor steps required to feed a given length (or volume) of filament. A precise calculation isn't possible given variations in the effective diameter of the hobbed bolt and characteristics of different sorts of filament and variations in diameter from roll-to-roll.

For example, the Smoothieboard variant Azteeg X5 mini uses extruder_steps_per_mm which is calculated as:

e_steps_per_mm = (motor_steps_per_rev * driver_microstep) * (big_gear_teeth / small_gear_teeth) / (hob_effective_diameter * pi)

Once an initial value has been calculated one must then:

  • load filament
  • measure and mark a known length of filament from a specific point on the machine which will allow the measurement to be repeated
  • extrude a specific amount less than length of filament (some people feel it's best to do that in several shorter operations than one long continuous one)
  • measure the length of filament, comparing it to the length which was to have been extruded
  • calculate the ratio and apply it to extruder_steps_per_mm

This value may need further adjustment based on the specifics of extrusion.

Extrusion speeds

  • 0.5mm nozzle --- ~200mm/min
  • 0.3mm nozzle --- ~80 mm/min

Calibration

  1. Measure filament diameter.
  2. Slice a 20 x 20 x 10 mm cube with 100% infill
  3. Print it.
  4. Judge if the top surface is concave or convex or good and flat.
    1. If concave, then reduce slicing profile's filament packing density (Dimension plug-in in RepG). This will increase the plastic output. Go back to 2.
    2. If convex, then increase the slicing profiles filament packing density. This will decrease the plastic output. Go back to 2.
    3. If good and flat, then you are done with calibration.

Make Magazine created an entire suite of test files: http://makezine.com/2014/11/07/how-to-evaluate-the-2015-make-3dp-test-probes/ see also http://makezine.com/magazine/what-is-print-quality/

Filament Diameter


Hot End PID Tuning

G-code command: M303 E0 S190

E# is the number of the temperature control module, here it would be 0 for the hotend. The command runs for 8 loops, heating up, cooling down, and trying new values. Then will display settings which have been loaded into memory, but not written to your config file. Edit your configuration to use those three values ( Kp is p_factor, Ki is i_factor, Kd is d_factor ).[16]

Design/Slicing/Printing Strategies

Design

http://www.reddit.com/r/3Dprinting/comments/2c1hza/are_there_any_advanced_booksarticles_that_discuss/cjb5qwb

http://i.materialise.com/blog/entry/the-printable-3d-design-checklist-common-design-flaws-and-how-to-fix-them

One technique for printing parts w/o flat surfaces is to divide them in half, add threads and use a 3rd threaded (hidden) part: http://www.thingiverse.com/thing:66824

reduce warping: https://groups.google.com/forum/#!original/makerbot/3-vmrWMSDg8/vD51nlHCMvwJ

http://lobocnc.com/DesignFor3DPrinting.pdf

Options

Slicing/Plating

Arrange multiple parts on a bed and print all at once to allow layers to cool as they print.

Invert a print to eliminate the need for supports caused by overhangs.

Layer height

This is a function of your nozzle diameter --- 80% of it bounds your maximum, so for an 0.35mm nozzle: 0.35 * 0.8 = 0.28mm max. layer height. Minimum is defined by your patience and time and the ability of your machine to move accurately and precisely in the X, Y plane.

Discussion on reddit.

Infill

If a model does not need to be solid, then it can be partially hollow --- the method of partially filling a print is termed infill. Blog post by Garry Hodgson: Thoughts on Fill Algorithms.

Some argue that 100% infill must be cooled slowly and that 80% provides all the strength of it.[17]

Top and Bottom Layer Thickness

This should be set to an appropriate physical dimension, as opposed to some invariant number of layers --- 1--1.5 mm is a conservative value, or good starting point for parts which require strength. 0.5 mm may be appropriate for smaller, more decorative parts.[18]

Holes

Most slicing tools represent curves / arcs as straight lines, this causes a reduction in the effective size of holes, which increases dramatically at smaller sizes: http://hydraraptor.blogspot.com/2011/02/polyholes.html --- test file: http://www.thingiverse.com/thing:6118

Capabilities

Limitations

  • transparency --- full transparency not possible due to the object being made up of many layers and the light refracting. Larger layer heights will help. Suggested work-around, print a mold and cast in clear resin.[19]
  • PLA light-fastness and heat resistance --- http://forum.typeamachines.com/viewtopic.php?f=6&t=621

Printing

Printing Parameters

Print material Hot End Temperature Print surface(s)
ABS 210°C -- 240 C°C Kapton or PET tape on flat surface (glass) at 110°C. Clean with acetone.
PLA 165°C -- 200°C Kapton tape or Blue painter's tape on flat surface (glass) or Hairspray on glass or lightly sanded glass at 60°C. Clean with alcohol

Troubleshooting

When troubleshooting, keep in mind that there are failsafes in the firmware software which prevent a condition of failure that could potentially result in a fire. [20] If the machine does not heat up or extrude, start by checking the thermistor.

Filament

The filament which is used in FFF printers is much like the line used for string trimmers. Some people have had success using nylon trimmer line in their machines, while others have reported problems w/ contamination and other issues. Extensive examination: 3D printing with cheap Nylon trimmer line/string.[21]

Another potential source of material is plastic welding rod: http://www.usplastic.com/catalog/item.aspx?itemid=22851&catid=881

Filament Specifications

Standard Materials

PLA
ABS

Absorbs moisture, should be stored in sealed containers w/ dessicant.[22]

Special Options

Materials

Other alternatives: http://nothinglabs.blogspot.gr/2013/09/filament-roundup-3d-printing-in-all.html

Other

It may be possible to print with other thermoplastics such as HDPE[33] and polypropylene.

Vendors

Drying Filament

  • in a Ziploc bag in full sunlight w/ a cup of uncooked rice[35]

Storage

Other Considerations

When printing infills, many styles result in very rapid back-and-forth motions which jerk / shake the machine quite a bit --- be certain that the printer is on a solid surface and won't damage or move anything with its vibration.

A printer, especially the hot end, should be kept clean to minimize odd smells from dust burning off as the hot end heats up.

It may be necessary to control the moisture content of filament --- ABS (also PLA?) may need to be baked to remove moisture from it.

If filament isn't clean it may be helpful to rig some sort of sponge or other method to clean it before it enters the extruder.

Before printing complex/large parts, consider making a print at a reduced size as a test.

Post-processing Prints

http://makezine.com/projects/make-34/skill-builder-finishing-and-post-processing-your-3d-printed-objects/

Fastening

Glues

  • Cut up bits of ABS and dissolve using Acetone or nail polish remover to make up glue which is the same colour as your prints[36]
  • ABS glue is available in the plumbing section of hardware stores where (black) ABS pipes are sold.
  • Cyanoacrylates work, but may discolour or fade prints
  • Epoxy

Friction Welding

Other

  • rivets[37]
  • Adding screw threads to 3D-printed parts
    • Print a pocket for metal threads (i.e. add a nut)
    • Print threads (if necessary chase with a tap or die) --- you may find it useful to reinforce the threads w/ Heli-coil (thread repair hardware)
    • Use thread-cutting screws designed for plastics
    • Run standard machine screws into undersize through holes (PLA), e.g., use 2.7mm dia. holes for M3 screws. Friction will form threads in the plastic.[38]

Bending, molding and modification

Most printable filaments retain their thermoplastic properties after printing and can be modified after printing through the application of heat. Using a heat gun, or soldering iron one can heat a part sufficiently to bend or otherwise reshape it. Metal hardware can be heated up and inset into a part as well.

Coatings

Vapour baths to smooth parts

Household appliances can be re-purposed to facilitate this: http://solidoodletips.wordpress.com/2012/11/10/presto-part-finisher/

Sealing prints

Parts can also be coated in various materials

Dyeing

Finishing

Supports

ABS Fudge

Other

Some prints may be improved by tumbling in an abrasive medium.[41] Commentary on sandblasting[42]

Wet sanding may improve the appearance of some prints.

Most prints will need (careful) trimming w/ a sharp knife.

http://www.tapplastics.com/product/mold_making_materials/casting_products/castin_craft_resin_spray/78

http://www.reddit.com/r/3Dprinting/comments/22jwlm/injecting_hot_melt_adhesive_for_100_solid_faster/

Projects

http://www.tridimake.com/2013/04/what-cannot-be-3d-printed.html

Boxes

Tudor Rose Box

Hardware

Household

Household Hacker's Watermelon Dispenser

Lawn & Garden

Musical Instruments


Toys

Board Games

Chess

Tools

Office supplies

Scientific

Repositories

Tools


Tool list[47]:

  • Small wire cutters, for cutting filament.
  • Micrometer and Caliper.
  • A set of small files, for smoothing rough spots on the prints.
  • A ruler.
  • A razor, for removing stubborn parts from the platform (normally used for scraping paint off of windows).
  • A small needle-nosed pliers.
  • A hot-air solder station. For removing file marks from PLA.

Plans for a filament drying station: http://www.dbclunie.com/2014/03/3d-printing-drying-filament-for-15.html

Safety

As with any other CNC machine, a 3D printer should never be left running unattended.

Given the presence of heating element(s) the possibility of a fire and a means for extinguishing it should be considered.

Maintenance

PTFE lube[48]

Some have found it helpful to apply a small bit of canola oil to the filament when first loading a new spool of PLA.[49]

Nozzle Cleaning

http://bukobot.com/nozzle-cleaning

References

101

Design

General

Presentations

Designing for Printing

Material Comparisons

Beyond Printing

Scanning

Other 3D Printer Designs

Filament Spool Recycling

http://www.printedsolid.com/shop/175-3/spools/

Online Resources

Vendors

Glossary

ABS
Acrylonitrile Butadiene Styrene, a thermoplastic used as a 3D printer filament
Extruder
Assembly which handles feeding and extruding filament. Consists of two sub-assemblies: a cold end to feed the filament, and a hot end that melts and extrudes it.
Filament
Raw plastic material in the form of long strands of a consistent diameter, 1.75mm and 3mm are typical. Available in different colours and materials.
PLA
Polylactic Acid. A biodegradable thermoplastic polymer used as a 3D printer filament. Essentially starch which has had the monomer changed into a polymer by heat.
Personal tools
Namespaces
Variants
Actions
About
Additional Build Information
Using Your Machine
Software
Upgrades
Additional Resources
ShapeOko 1 Build Instructions
wiki
Toolbox