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.”
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
- 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)
See the following examples:
- Mach 3 3D Printing
Forum discussions and examples
- Re: will1384's Shapeoko 2
- Shapeoko build qualities for 3d printing
- Printing in G-code
- It prints!
- My MBE Extruder Build Log (was Eye candy...)
- Seeking advice on a simple inexpensive 3d printer "spindle" --- discussion of extruders
- eShapeOko based design
- ShapeOko CNC router/3d Printer WordPress blog
|STL||STL Viewer||Display and manipulate the content of stereolithography or STL files.|
|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
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.
|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.|
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.
|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.|
|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.|
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.
|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|
- Cost Estimator --- http://make3d.ca/
- 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.
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.
The extruder is divided into two parts, one for moving the filament, the other for melting and depositing it.
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.
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).
Discussion of nozzle diameter: http://www.shapeoko.com/forum/viewtopic.php?f=9&t=1816&start=40#p29203
- Commercial (but opensource)
Print Bed Surfaces/Coverings
The print must be extruded onto a flat, level surface to which it will adhere.
One strategy for production work is to have two beds and swap them after each print.
- Tempered Glass --- parts are easily removed and have a glossy appearance for the surfaces against the glass --- warping and adherence are issues.
- heated bed --- pretty much a requirement for larger ABS parts
- https://groups.google.com/forum/m/#!topic/makerbot/WOav8XwHLP4 --- interesting bed design w/ magnets
- hardboard --- works especially well w/ Taulman 618
- carbon --- https://groups.google.com/forum/#!topic/makerbot/9t3-klqdGAs
- granite tiles
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:
Most surfaces require some sort of covering to ensure adhesion. Choices include:
- Kapton Tape
- PEI Film
- Window Tint Surface
- 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
- photo paper --- some filaments want a surface w/ a high cellulose content
- masking tape --- http://forums.reprap.org/read.php?1,393280,393280#msg-393280
In addition to or in lieu of the covering:
- Gluesticks --- Elmer's Xtreme school glue
- thinned PVA wood glue (for PLA)
Examination of adhesive use: http://www.dbclunie.com/2014/02/what-adhesive-do-you-use-when-3d.html
- http://printinz.com/ --- flexible printing surface
- http://www.buildtak.com --- http://www.reddit.com/r/3Dprinting/comments/2ba3hk/buildtak_helpful_hints/
Easily constructed, these may range from temporary structures of Lego bricks and dowels to more elaborate setups.
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
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
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.
- 0.5mm nozzle --- ~200mm/min
- 0.3mm nozzle --- ~80 mm/min
- Note, when slicing the 0.5mm thin wall cube be certain to use a solid infill.
- Measure filament diameter.
- Slice a 20 x 20 x 10 mm cube with 100% infill
- Print it.
- Judge if the top surface is concave or convex or good and flat.
- 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.
- If convex, then increase the slicing profiles filament packing density. This will decrease the plastic output. Go back to 2.
- If good and flat, then you are done with calibration.
- Nickel calibration test file
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 ).
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
- Vornoization --- http://w-uh.com/posts/140511c-Voronoization.html
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.
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.
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.
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.
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
- waterproofness --- https://groups.google.com/forum/#!topic/makerbot/CjXX6ijZlbE
- 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.
- PLA light-fastness and heat resistance --- http://forum.typeamachines.com/viewtopic.php?f=6&t=621
|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|
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.  If the machine does not heat up or extrude, start by checking the thermistor.
- A visual Ultimaker troubleshooting guide
- Filament Cross Sections when Printing --- First Layer
- gallery of failed prints w/ explanations on Flickr
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.
Another potential source of material is plastic welding rod: http://www.usplastic.com/catalog/item.aspx?itemid=22851&catid=881
- list of filaments http://www.lulzbot.com/sites/all/themes/lulzbot/images//LulzBot_3D_Printing_Filament_Guide.pdf
- making Polylactic acid thermoplastic
- Bulked Continuous Filament (BCF Guide)
- Polylactic Acid Technology
- http://diamondage.co.nz/product/asa/ --- ABS w/ UV protection
- http://www.proto-pasta.com/shop/cfpla --- Carbon Fiber Reinforced PLA
- Glow in the dark
- Laybrick --- mixture of finely milled minerals with a polymer binder Inventables
- Flexible --- Flexible filament - my testing and guide on how to print FilaFlex, NinjaFlex, and Flex-Polyester. Thermoplastic Elastomer Printing
- Nylon --- Taulman Nylon 618 3D Printer Filament Inventables --- sticks well to hardboard using a glue stick
Other alternatives: http://nothinglabs.blogspot.gr/2013/09/filament-roundup-3d-printing-in-all.html
- Bronzefill --- https://plus.google.com/u/0/app/basic/stream/z12jzbdiamyzzvep104cgbzacsvsjjmx5n40k?cbp=1w6lp1p9g6yfl&sview=27&cid=5&soc-app=115&soc-platform=1&spath=%2Fu%2F0%2Fapp%2Fbasic%2Fa%2Fautoload%2F%2BGinaH%25C3%25A4u%25C3%259Fge%2Fposts&sparm=cbp%3D2jfvhya4d2lo%26sview%3D27%26cid%3D5%26soc-app%3D115%26soc-platform%3D1%26stct%3DEgkIoN3Mvoj8vwIo6LCW-5SGwAIw8ZvYkPuGwAI4AUAC
- Joining filament
- http://richrap.blogspot.com/2011/09/indestructamendel-polycarbonate-3d.html 
It may be possible to print with other thermoplastics such as HDPE and polypropylene.
- http://www.toybuilderlabs.com/ --- also sells on Amazon
- in a Ziploc bag in full sunlight w/ a cup of uncooked rice
- https://plus.google.com/116588248220980367256/posts/MDuGtd3WsQX --- storing filament in a Ziploc weathertight box w/ DampRid
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 --- 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.
- 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
- 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
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.
Vapour baths to smooth parts
- ABS can be placed w/in acetone vapours to smooth parts out. The acetone can either be heated (outdoors and w/ good ventilation) or arranged in a vapor chamber (one may to get even fume distribution is to make a cylinder of paper towels along the outside of the container, reaching from the bottom where the acetone is poured to the top, where it is sealed).
Household appliances can be re-purposed to facilitate this: http://solidoodletips.wordpress.com/2012/11/10/presto-part-finisher/
Parts can also be coated in various materials
- 2-part epoxies to strengthen them and fill in gaps: http://www.bjbenterprises.com/tc-1614-a-b/
- bondo, applied by hand and sanded, then sprayed w/ automotive filler primer --- https://plus.google.com/107253148599893854804/posts/acWkSYn81Jz
- Water/moisture proofing
- Pledge Future floor polish to make moisture tight
- Electroforming metals --- http://3dprintingindustry.com/2014/08/20/check-amazing-3d-printed-skyrim-cosplay-swords/
- multiple colours
Wet sanding may improve the appearance of some prints.
Most prints will need (careful) trimming w/ a sharp knife.
Lawn & Garden
- 3D Printable Airsoft Gun
- Minecraft creepers --- includes discussion of slicing considerations and print orientation options
- https://learn.adafruit.com/pigrrl-raspberry-pi-gameboy?view=all --- Raspberry Pi case and support electronics to make a Gameboy clone
- Modular Snap-Fit Saturn V
- Vincy Compound Bow Mark 1 --- 22 lb. compound bow using fiberglass limbs.
- http://www.the3dstudio.com/product_details.aspx?id_product=575452 --- Staunton
- Large Luxo Jr.
- hedghog pencil holder
- 3D printed mechanical Clock with Anchor Escapement
- http://www.amazon.com/Nicole--Multi-purpose-Perfect-Embossing-Drying/dp/B006Z9LUDG 
- hot air solder station --- http://www.amazon.com/gp/product/B00A2VQA24 
- 5-in-1 painter's tool --- http://joesmakerbot.blogspot.com/2012/06/saga-of-stuck-print.html
- HBP Wedge Removal Tool --- http://www.thingiverse.com/thing:14672
- Dial indicator --- holder: http://www.thingiverse.com/thing:41090
- 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
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.
- Ultrafine particle emissions from desktop 3D printers
Some have found it helpful to apply a small bit of canola oil to the filament when first loading a new spool of PLA.
- CNC Cookbook: 3D Printing 101:
- http://npl-web.stanford.edu/user/files/papers/mse1999a.pdf --- metal sintering, but may apply
Designing for Printing
- http://www.makeitfrom.com/compare-materials/?A=Acrylonitrile-Butadiene-Styrene-ABS&B=polycarbonate-pc --- as the URL implies, this can be used for other materials.
- low-melt alloys such as bismuth and pewter can be cast directly into printed ABS molds
Other 3D Printer Designs
- http://ytec3d.com/plan-b/ --- an opensource powder printer. Plans on Instructables.
- Acrylonitrile Butadiene Styrene, a thermoplastic used as a 3D printer filament
- 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.
- 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.
- 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.