How to check your .stl files before 3D printing them

Hi there, today it’s going to be about some general design rules that should always be performed on any .stl file you create before 3D printing. Most of the downloadable .stl files for 3D print offered by several platforms are already checked for 3D printing, and the feedback is quick as well if something is wrong because of the nice community around 3D printing.

© parametric | art

© parametric | art

After the 3D printing boom in the last couple of months, the number of the 3D printer owners has rised and a lot of people started to 3D print their downloaded things at home. The system of the RepRap-like FDM 3D printers hasn’t been designed for a plug&play use, if you’re into 3 printing you should know what I am talking about. If you are a natural born hacker, RepRaps are just for you, but if you want a 3D printer for professional production you should buy an expensive FDM printer from the higher class. They use the same technology but the system is closed so it doesn’t need any adjustment or special maintenance.

© parametric | art

© parametric | art

If you want to design a 3D model for a visualization render or a video game, you needn’t pay any attention to real world physics. In the practice, the most 3D objects will only contain the meshes that are visible, they don’t need to really connect, there can be a lot of 2D elements in the geometry and there can be some holes and broken meshes or duplicates which can disturb the slicing process while generating the g-code, etc. You can completely ignore the physical world. 
As some of you have already discovered, once you start working with 3D printers this is very different!

Screen shot 2013-07-19 at 1.19.52 PM

I just would like to share the basic design rules of my general design for 3D printing process and the machines I’ve worked with. If you design something in 3D, at the beginning, you probably don’t know which type of machine and material you want to use to realize your object. In general, every single 3D printing technology like FDM, SLS or DLP has got its own pros and cons, so the designs should be optimized for the actual chosen additive manufacturing method and the material for the fabrication. I mostly use my desktop 3D printer which works with fused deposition modeling technology (FDM), actually it is an upgraded/hacked Makerbot Replicator2, which is capable to 3D print with experimental materials as well, like laybrick (sandstone-like stuff) and laywood (wooden filament). I usually print with PLA filaments and sometimes I make 3D prints with wood and sandstone. I already have 3D printed more than 2000 hrs with my machine, and I had to learn the limitations of the FDM process so I could design more complex geometrical forms and parts.

Usually, I make my designs in Rhino with the Grasshopper parametric modeling tool, which is absolutely free. This great plug-in gives you parametric control over your meshes, so I can think about the 3D printing process while designing my sculptures or stuff like that.

Screen shot 2013-08-05 at 2.13.04 PM

If you want to prepare your model for 3D printing, you should know the boundaries of your machine. If not, there are some general guidelines to choose the right and universal maximum size and wall-thickness, based on the build volume and nozzle/beam diameter of the 3D printer. In general, the model should fit into a 15 x 15 x 15 cm cube and mustn’t contain walls with a thickness under 1mm.

Screen shot 2013-07-19 at 11.44.21 AM

If you need support structures for your 3D print, maybe you should add them manually to your model; the automatic generated supports by the several slicer software are a waste of material and if you don’t use some soluble material for 3D printing support structures with a dual extrusion 3D printer, you may have some issues while removing the support structures and get a nice surface finish.

@ parametric | art

@ parametric | art

Another important thing is the position of the normal vectors of the meshes of your .stl file. All meshes of your model should have their normals pointing in the correct direction. When your model contains inverted normal’s, the 3D printer cannot determine the inside or outside of your mesh or 3D model.  Usual problem is the error of the mesh surface as well, holes, duplicates can make your print wrong.  In Rhino, there are some really nice Mesh Repair tools like Cap Holes of Remove Duplicates, which can make your work easier. Netfabb is an awesome cloud-based tool as well, the free version already allows you to analyze, test and repair your .stl files, split and cut them into parts.

Your 3D printed surfaces must be closed, I’d like like to call this being ‘watertight’. It can sometimes be a pain to identify where this problem occurs in your 3D model, if you can’t find it, there are some really nice algorithms or applications and tools which will highlight the problem area for you. Will It 3D Print is useful site with a funny design, unfortunately, it doesn’t work for me with complex and huge .stl files, with simple geometries it might work. I’ve already put together an algorithm in Grasshopper which analyzes meshes for holes and unifies their normal vectors.

Screen shot 2013-08-05 at 2.20.10 PM

Let me share some really nice apps and tools which I’ve used to create and optimize my 3D models for the 3D printing. At first, you have to create the 3D geometry of your model. I use several professional 3D software’s, but if you don’t want to get into 3D modeling and complex geometries, there are some easy-to-use sculpting solutions which can give you great results without any 3D experience. Of course, you can download .stl files from 3D databases like Thingiverse, GrabCAD, Ponoko, or Nervous System, you also can customize your stuff with some really nice WebGL based 3D modeling tools which run in your browser window.

Screen shot 2013-08-05 at 2.23.35 PM

If you want to create something unique, SculptGL, 123D and Leopoly could be the right choice for you! Both are in-browser 3D modeling environments with 3D print and .stl export function, and Leopoly has got an absolutely awesome controller called Leonar3Do which is a bird-like device to navigate and work in a 3D virtual reality space.

If you already have your model, you have to optimize and check them before 3D printing, Netfabb, the Mesh Repair functions of Rhino, WillIt3DPrint and Meshmixer are great solutions for that, and of course, the new 3D printing features of Blender’s latest release gives you a nice control over these parameters as well.

Screen shot 2013-08-05 at 2.16.17 PM

After your .stl meshes have been tested, you have to slice your model to generate the g-code which defines the tool path for the extruder head of your 3D printer. This article cannot describe the whole world of g-codes that the most desktop 3D printer firmwares use and how they work, but some facts should be cleared. The main target is additive fabrication using FFF/FDM processes. Codes for the 3D printer head movements follow the NIST RS274NGC G-code standard, so RepRap-like firmwares could be used well for CNC milling or stuff like that.

As many different firmwares exist and their developers tend to implement new features without discussing strategies or looking what others did before them, a lot of different sub-flavours for the 3D-Printer specific codes developed over the years. The most common slicing software solutions like Slic3r, MakerWare, ReplicatorG, etc. can save the information in the main format and as a pure g-code as well. If we aren’t sure about the success of our 3D prints, because we try it for the first time, we can test and simulate the 3D printing process with our g-code. There are a couple of g-code visualizers available, some of them already runs on Android as well. CNC Simulators can animate the 3D printers movement and working process as well, so can easily check if our print will work or not. The ReplicatorG and Slic3r offers similar simulating and analyzing functions like Netfabb and WillIt3DPrint.

Screen shot 2013-08-05 at 2.34.44 PM

If everything is ready, and our model has been sliced and fully prepared for 3D printing, we can turn on our magic machine (I mean a desktop 3D printer for example) and prepare it for the work. Make sure your build plate has been leveled correctly because it can cause the first layer not to stick to the plate. You can wash it with acethone but always check the leveling before you print.

© parametric | art

© parametric | art

You can use a painters tape if you want to, I personally don’t prefer stuff like that because I print all the time so it would take too many hours to change the tape, I always print with solid raft structures so I can easily remove the prints from the plate without any risk of damage. Make sure you have enough filament on the spool to complete the process, and let’s start heating the extruder! In a couple of hours (or days depending on the size and resolution) your prototype is ready, just like this huge industrial prototype I’ve printed, which took more than 50 hrs to print in 3 separate parts.

© parametric | art

© parametric | art

But it looks really cool, I’ve made it with translucent PLA using 70 micron (.07mm) layer height, which is quite good from a desktop 3D printer like my hacked Makerbot. Of course, all the 3D printer manufacturers offer their own software for the machine, and I bet they work pretty good as well, but if you want to push the boundaries of your desktop 3D printer, the open-source software solutions gives you more possibilities for fine tuning and calibration of your machine for special materials or experiments. In my next entry, I’m going to post some results about my latest 3D printing experiments: 3D printing with sandstone and wood – organic materials in the digital fabrication process! Stay tuned 😉

sandbud