There are several things involved in 3D printing, and the actual 3D printer is just the “engine” behind a list many necessary components.
You Need an Idea
First and foremost, of course, you need an idea.If you don’t have any ideas… well, I can’t help you much.
3D Modeling Software: FreeCAD
But next you need software to turn your idea into a 3D model. Note that 2D drawing software, like Paint, won’t do what needs to be done. I played around with Blender a bit, but found it to be more geared toward a 3D animation process, and while it will let you create a 3D model and export it in the requisite STL file format, I just didn’t get along well with it.
I switched to FreeCAD, and have been using it exclusively since then. Like any complex software, it takes some time, watching tutorials on YouTube, playing, making mistakes, learning how to correct them, and then getting a comfort level. I was using FreeCAD a couple of hours each day, and in about a week, I think I’ve learned what I need to do what has to be done. Am I an expert? Not yet, by any means, but I’ve got that “critical mass” of knowledge, so now at least I can ask intelligent questions when searching on the Internet.
The 3D modeling program must be able to output a “mesh” file (oddly enough called an STL file). This “mesh” is a very large number of triangles that describe all of the walls and edges required to represent your model. There really are no circles or curves at this point, though there can be many very small lines that look like a curve. These triangles are represented by X, Y, and Z coordinates (that’s what you use when you go 3D!) for each of the 3 points of each and every triangle in your model.
Slicing the Model into Layers: Slic3r
Having learned FreeCAD — I’ll call that the “front end” of the 3D printing process — there are two other pieces of software you need. There is the middle piece, whose job it is to take the 3-dimensional model you created and “slice it” into layers. The folks at Lulzbot recommend Slic3r, an open source program that does a great job for the average user. If you will become a professional 3D printer person, you will probably want to use other software that lets you tweak things at a more detail level, but for the average hobbyist, I think Slic3r does a great job, and indeed has both “Simple” and “Expert” modes, so even the beginner can start off in a very easy mode.
Here’s a little bit of technical detail of the process that the “slicer” performs. See, all of those triangles output by your modeling process have to be “sliced” up, so that the printer can first be directed to print only the bottom-most layer of the model (Z = 1). The slicer program typically generates a special code that many 3D printers understand, called G-Code (for “graphics code,” I imagine) — typically referred to simply as gcode. So the slicer program outputs commands to move the extruder (more specifically, the “hot end” of the extruder — the place where molten filament comes out of the print head) almost completely down to the surface of the printer bed (“down” being in the Z direction), then along the X and Y axis as needed. Where the model “exists”, gcode tells the extruder to “extrude”; where the model is “empty”, the gcode tells the extruder to “retract”.
Only after the slicer has created all of the X-Y coordinate movements and extruder commands on the first level does it then command the printer to move “up 1 layer” (Z = 2). Now X-Y coordinates and hot-end extrude-retract commands are done for layer 2. When layer 2 is done, it goes on to layer 3, and so on. Keep in mind that the slicer program is just writing out gcode to a file at this point. The printer doesn’t even need to be turned on yet!
The Printer Interface: Pronterface
Once your slicer program has generated the gcode for your model, you’re now ready to print! The printer needs to be turned on, and the final software piece can be fired up — the “printer interface”. The main purpose of the printer interface program is to read the gcode and send it down to the printer in a cooperative way. 3D printers – like their 2D counterparts – actually talk back and forth to whatever software is printing to them. For example, the printer interface usually can command the printer to start the hot-end and bed heaters by setting them to a specific temperature. (I print my PLA on painter’s tape with a hot-end temperature of 200 C [about 390 F] and the bed temperature at 70 C [about 160 F].) The printer interface can then query the printer to determine what the actual temperatures are, and display them to the user.
The Lulzbot folks recommend a printer interface called Pronterface. This – like FreeCAD and Slicr – is open source software available for many platforms. I think it does a good job letting you know what’s going on with the printer, both before the printing actually starts, and during the actual printing process. I especially like the feature when it loads a gcode file where it reports the following info:
- Length, width, and height of your model
- An estimate of how long it will take to print
- An estimate of how much filament it expects to use.
Operating Systems: Windows 7 and 8.1
I’m a Windows guy, and run Windows 7 on my main desktop machine, and Windows 8.1 on my laptop. I run FreeCAD and Slice3r on both machines, but primarily do my model work on my desktop. I store the 3D files on a folder on my Microsoft OneDrive (I’m sure you can use any cloud-based storage you prefer). When I’m ready to print, I go back to the “craft room” and run Pronterface on my laptop, connected to the Lulzbot printer.
Manual Printing: SDHC Card
I’ll also mention that you can totally bypass the printer interface program by loading your gcode on an SDHC card, which is then inserted into the printer. That method works fine, and if you are using several printers to print out material in large quantity, I’m sure that’s the “right way” to do it. But for one-at-a-time development work, you’ll want the convenience of direct monitoring of the printer via the printer interface.