Is it printable?
How to check if a model is printable
Before we start we need to talk about how the printing process looks like. First of all, we use STL files as a source of a model. Most 3D printer do this, because it is a pretty common file format. However this file cannot be printed directly, we need to slice it, which means we slice it to layers, and every layer consists of a lot of head movement which will result the model. And here's the trick: to slice the model, the slicer needs to know which is the outside and which is the inside. This is not as simple as it looks at the first glance, because the model is not defined as a solid object. In the model there are a lot of polygons, which together looks like our object. This means the inside of the model is empty and the slicer needs to know somehow which part of the model should be filled.
The first problem is that the polygons' normal must point to the outside. All of them. This doesn't cause too much trouble in printing, because this problem turns out much earlier, because this will affect the rendering as well. The second problem is what we fought a lot in the past. The model should be manifold, more precisely the model should be 2-manifold. This means every edge must connect to exactly two polygons.
These two rules guarantees the model will be water-proof, which means if we fill the inside up with water, the water will touch every polygon's inner side and there won't be any leak where the water can escape.
That was the theory, now let's see it in practice. First of all, we need a software which can help detecting both of the above problems: we use MeshLab all the time to check the models. It's open source and pretty easy to use.
The first rule can be checked easily. Just open the model in MeshLab, and if it looks good, the first rule is probably okay. Checking the second rule is a little bit harder, but not that much. You can enable the "Show non-manifold edges" and "Show non-manifold verticies" functions in the Render menu. Both of this will add a little box to the top-left of the window. All number should be zero to be able to print as you can see it on the picture. This is not a foulproof way, but a quick and easy pre-check and if it fails it is sure the model has problems (there is a chance it still can be printed - more details later).
When a model passed that first check it is almost surely printable, but to be sure, you have to slice it like we do, when we want to print it. We use Slic3r as a slicer, so you should check with that too, just to be on the safe side. The software has a lot of settings, but it doesn't matter in this case: the settings are not affecting the slicability, so you can use the default settings. The slicing is pretty easy, you open the model (you can use drag-and-drop if you wish) and push the "Export G-code" button. Save the G-code file somewhere and wait patiently - the slicing could be a long process. If the software didn't warn you when you opened the files nor when you exported the G-code the slicing went well and the model is printable! If there was warning you are not that lucky.
But even if you got warnings the result could be okay, because the slicer has some intelligent error handling mechanism. But it's not reliable, so you must check it manually. To do so, you will need yet another software - the same software we use to print the result. We are using the ready-to-run version of Printrun. The pronterface from that package can be used to see the result of the slicing. You can open the Gcode file through the "Load file" button, and then, clicking on the schematic view of the printer's plate where you can check every layer in the result. You should be really careful though, the most common slicing problem if the source model is not manifold is to leave out a few layers completely!