3d modeling for 3d printing

If you want to design a 3d model for a rendering or video game, you don’t need to pay any attention to reality. You can completely ignore the physical world. Most 3d scenes and objects will only contain the outer meshes and layers that are visible, objects don’t need to really connect, and there can be some acceptable topology issues, bad meshes and dupklicated vertexes as well, which won’t affect the end results. Some of you might have already experienced, that once you start working with 3d printers, this is very different!

There are several software needs for 3d printer users: open-source 3d modeling tools, like OpenSCAD or Blender, slicing tool, to “compile” the 3d geometry to a set of G-Code instructions for the toolpath of the extruder tool of the 3d printer, such as Skeinforge or Slic3r; and finally a 3d printer controller program, such as Printrun, Cura or RepetierHost.

Whether you use a web-based (webGL or html5) 3d modeler optimized for 3d printing (such as Leopoly) or a professional CAD tool like Rhinoceros, 3dsMax, Maya, SketchUp or Blender, designing objects for 3D printing demands expertise in everything from structural engineering to material science.

Most common basic 3D software which are available out there are tools like Blender or SketchUp, which have a freely available version, and they are really easy to learn because there are a plenty of well-documented tutorials available online. There are also sites like Leopoly (click here) and Tinkercad, which are in browser based 3D modeling tools that allow you to rapidly create and download a file that you can 3d print on your desktop 3d printer. If you want it to get more advanced you can get into things like Rhino and Grasshopper or Solidworks which are professional level engineering softwares. Or you can go into the AutoCAD suite where you have things like 3D Max, Maya, and AutoCAD.

3d modeling for 3d printing with Blender

Blender is an open-source 3d modeling software that you can use to create your very own models for 3d printing. It is completely free, and there are a plenty of good sites and tutorials if you want to learn how it works. The latest edition came with a 3d printing toolbox as well, designed especially for the needs of modeling for 3d printing. At the beginning, we have to set up the scale and dimensions of our scene. Metric units are easier to notate in blender than imperial units, and the most common 3d printing services use metric measurements (meters and centimeters) rather than the standard blender unit.

You also can scale your 3d model by its volume, it can be useful if you want to optimize your cost of 3d printing (most services charge by volume and material, and you don’t want to pay a huge amount of money just because you haven’t optimized your .stl file the right way). You can check the volume of your object in the 3d print toolbar, and if it is too big, you can actually scale the model automatically so that it is exactly a certain volume. To do this, under the Print3D tab, find Scale To and click volume. Then you have to type in your desired volume in cm3, and it will automatically scale down your model for you. If the volume values are pretty high, your 3d printed object would be quite expensive, so you’d better fix that by making the model hollow.

Common FDM 3d printers can only print things down to certain dimensions, so you should check your machines technical boundaries. Minimal wall thickness, best resolution (minimal layer height) and additional supports (if needed) are the most important aspects of optimizing your 3d model for 3d printing. If you want to add thickness to your mesh surface, select your 3d object in your scene, then add the Solidify modifier. After these steps, you only have to export your 3d model as an .stl file. Before doing this, please double check your measurements and dimensions to make sure everything is at optimal scale, and then above the export button, designate a file path and click export. You should now have a .stl file at your designated location, which can be prepared for slicing and generating the g-code, just like I have described it in the last blog post about checking .stl files before 3d printing.

3d modeling for 3d printing with SketchUp

If you want to get started making awesome models for 3d printing, SketchUp might be a nice and free tool at the beginning. It is the 3d modeling tool of Google, which can help you to design some objects and then 3d print them. Whatever you’re designing, keep in mind the real world. Your 3d model will become an actual object, so you must consider dimensions, strength and gravity. Unlike Blender, SketchUp doesn’t have a 3d printing toolbox, you have to set the parameters for 3d printing manually or use some nice open-source plugins. For example, Cura can directly import the “.dae” file format that SketchUp natively export to. We only have to define the inside and outside of our closed mesh.

Does our computer actually know what is the inside or outside? This important thing should be clear to us, but most computer software needs you to specify this, this is called ‘orienting the faces’ in SketchUp (or ‘unify mesh normals’ in Rhino). There usually is a front and a backside to a ‘face’. In SketchUp there is a slightly different color for the front an back sides. The inside and outside are not understood to a ‘dumb’ computer, so you have to help it! There are some nice tutorials here.

3d models for 3d printing must be “watertight” or “Solid” to be 3d printable. This is by far the most common problem beginners have when modeling for 3d printing. If you were to fill it with water, none would drain out, and the model must not have any extra lines or faces. If you make your object into a group or component, Sketchup will indicate when its solid in the Entity Info dialog box (Window > Entity Info). Plugins can also help you work faster or do things that Sketchup simply can’t do. Solid Inspector is a great tool for detecting bad meshes and topology issues that prevent your geometry from forming solids. The parameters are the same just like in Blender: wall thickness, scale and print material specifications and limitations should be checked before exporting the .stl file. For exporting, there is a great plugin called SketchUp STL Exporter. There is a great tutorial by Shapeways here.

3d modeling for 3d printing with Rhino and Grasshopper

3d design using ‘visual programming’ for 3d printed output might be really cool, but actually, it isn’t available to output a Grasshopper design to be printed with a 3d printer, but the visual programming language of this awesome tool allows us to create some custom mesh optimization algorithms and then bake the results in the Rhino environment. There are some really useful mesh analysis tools to detect and remove bad meshes and we also can check the curvature of the object for additional supports. Grasshopper runs within the Rhinoceros 3D CAD application, which is a professional NURBS 3d modeling environment but without ‘explicit history’ feature or parametric tools.

Rhino is basically a surface modeler, but it can work with solids as well.  By putting components on the canvas we can make some really useful definitions to optimize our model for 3d printing, and those fluid forms created with mathematical algorithms look really fancy if realized. These are the most useful components and plugins which can help us to give thickness to our mesh surfaces and make them watertight like Weaverbird and MeshAnalysis.

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 😉