General (not just printrbot) 3D printing info.
I'm doing this while waiting for my printrbot kit to arrive. This page may be useful for other polymer deposition style printers.
Easter 2012.I've completed my first design and am waiting for my printer kit to arrive.
The programs I've used are...
Google SketchUp to make the design.
A SketchUp plugin called su2stl to export a .stl file from SketchUp.
Printrun/pronterface/slic3r to convert the .stl file into g-code for the printer.
I had a lot of trouble getting the bugs out of SketchUp design and the free version of netfabb helped track down the problems.
I've created a 3D printing file gallery here - http://nerdipedia.com/tiki-list_file_gallery.php?galleryId=17
and my first design is here - http://nerdipedia.com/tiki-download_file.php?fileId=112
SketchUp aka SU.
Many CAD programs can be used to build 3D models for 3D printing. I chose to use SU for a number of reasons.
- Printrbot was designed in SU and the printrbot SU files are on thingyverse.
- The Printrbot team will most likely supply tutorials for printing from SU files.
- About 1400 printrbot kits and assembled printers will be delivered in the next month or so. Many users will use SU.
- The free version is free.
- It has google behind it with lots of help videos etc.
- It is a visual editor.
It has its good points and bad. I think it is very well thought out but wasn't intended for this kind of work. SU is intended for making buildings and furniture. Errors which are totally invisible will totally screw up printing the model.
The main traps I've found are.
- The surfaces(faces) in SU have an inside and an outside - this is not visible. It easy to create faces which are flipped and must be corrected.
- It is common to get minute gaps between faces which confuse the slicer.
- It is common to get stray faces or line segments which confuse the slicer - these are often very small and hard to find. You can have a face sitting onto another one.
The "Orient faces" command helps with the flipped faces.
X-ray mode helps to locate doubled faces.
I am leaning towards changing to Wings3D as my CAD program.
.stl (stereo-lithography) files.At the time of writing 3D printers such as the printrbot (PB) are not directly sent a file from a program such as SU. Typically 3D data is exported in a standard file format known as stl. Generally the acsii version of stl is used. Being ascii based the files can be viewed in a text editor. Printers such as PB don't have the resources to process slt directly and further processing takes place on the PC.
Things may change over time and 3D printer support may become common in CAD programs and operating systems.
The contents of the .stl look like this except thousands of lines long.
solid 2pieceSlowcookpcbbox-5 facet normal -0.781752288751402 -0.623547764595333 -0.00717943591848526 outer loop vertex 110.757180354132 -22.5611640710267 11.7704313991249 vertex 111.518345963054 -23.3056615376902 12.7619141018787 vertex 110.757187226249 -22.5726857732434 12.7703650220873 endloop endfacet
Viewing the file in SU shows the object has be converted to a collection of triangles.
Slicing.The usual way things are printed on polymer deposition printing such as PB is to have a program on the PC process the .stl into a series of slices which the printer then prints one layer at a time till a 3D solid is produced.
Here I show a section of the stl in SU so you can see what a layer looks like.
3D models often have errors so it is useful check them before printing them. Above is a slice produced by
netfabb. Note that is matches the previous slice image.
Here I deliberately deleted a face to show what a bad slice looks like. Note the gap at the bottom and the red markers.
Running the netfabb analysis shows us the problem but it isn't always this obvious.
G-code.PB style printers usually use a common CNC control language called G-code. Again using the ascii version is common and this is again readable in a text editor.
There are many different slicing programs - some free, some open source and some commercial.
Currently I used one called "slic3r".
G-code looks like this - thousands if not millions of lines of it.
; generated by Slic3r 0.7.1 on 2012-04-02 at 10:50:08 ; layer_height = 0.4 ; perimeters = 3 ; solid_layers = 3 ; fill_density = 0.4 ; nozzle_diameter = 0.5 ; filament_diameter = 3 ; extrusion_multiplier = 1 ; perimeter_speed = 30 ; infill_speed = 60 ; travel_speed = 130 ; extrusion_width_ratio = 0 ; scale = 1 ; single wall width = 0.53mm M104 S200 ; set temperature G28 ; home all axes M109 S200 ; wait for temperature to be reached G90 ; use absolute coordinates G21 ; set units to millimeters G92 E0 ; reset extrusion distance M82 ; use absolute distances for extrusion G1 Z0.400 F7800.000 G1 X96.232 Y96.309 G1 F1800.000 E1.00000 G1 X96.472 Y96.149 F540.000 E1.00848 G1 X96.982 Y95.879 E1.02545 G1 X97.522 Y95.649 E1.04271 etc etc
Slic3r can be run stand alone or by called from a printer interface program called pronterface.
Pronterface can load gcode or load stl and convert it. Either way it is able to show (see above) the path the extruder is expected to follow when the g-code is interpreted by the printer. The g-code is either sent by printer interface program or sent via sneakernet in the form of a flash memory card (eg SD card).
My printrbot page.