banner perso

Some links about me. Many of my 3D designs are free, but I can also be contracted to design yours !

Tuesday, October 23, 2012

Review : which software for 3D printers?

A short review of 3D-printing softwares


Example: Cura as a smart front end to show, scale, slice and print


The printer firmware

This is the software that tells the hardware what to do, and to read sensors such as the temperature. What it does mainly is to read very basic "goto x,y,z and extrude z" commands and translate this into motor stimuli.



I quickly upgraded the UM printer from the default 5D firmware to Marlin, which prints faster than the original firmware. Upgrading is trivial, just like uploading to a regular open hardware Arduino (which the printer electronics are based upon!). Just click a button and you're done.
There is no way to screw up your printer neither, so just try as will :)

You may head to Daid's excellent builder in case you start modding your printer. It has the required support for most of the usual changes you may want on your printer (SD card reader, hot bed, etc).

Another interesting firmware named sailfish is in the pipe (not yet for UM), and it looks like it is faster even. Check the list of firmwares on the reprap forum if you need.

The software interface to the printer


I also very quickly switched from the default ReplicatorG to Cura for the printing software.


First, Cura works on Windows, Linux and Mac. And it features a very nice wizard to upgrade your printer, test it, and calibrate your filament feeder, the latter being extremely important for good quality prints.

Cura works like a breeze. Really! I very seldom get slicing issues, but it is hard to call them bugs : slicing has no trivial solution, since the nozzle has a given size which necessarily impacts the print. Try to fill a circle with a big marker without intersecting your path and you will understand the issue... However Cura will very conveniently show how the thing is sliced, so you can tune it again if needed (eg. fill, overhangs and so).

Slicers convert a 3D STL object into g-code commands for the printer

Cura

The biggest drawback of Cura, if any, is that its slicing software is based on an old fork of Skeinforge. Skeinforge is a slow beast that is capable of much more than FDM 3D printing (eg. it knows how to mill or laser cut...). And it really has too many options for "just" printing, and tons of plugins... Cura makes it very easy to use by hiding most of its options and providing correct values for the others. It also has the proper initial setup for Ultimaker printers and it is a bit faster. But, since there is always a "but", this slicer looks almost completely stalled, while Cura is improved in a steady pace. When you get a (rare) slicing bug you would better get around it than wait for a fix...!

Alternate slicers

Since slicing is probably the most important part of the process, I gave the young slic3r a try for a while. It is way faster. But it is also buggy compared to Cura's slicer. I soon decided I would better spend 5 minutes slicing a complex part than 20 seconds and fail to print... As soon as it is stable, it was said to be integrated in Cura, which is something many of us wait for.

Of course, there are other slicers such as the nice Kisslicer shareware. It feature a few smart  ideas such as automatically adding a wiping column next the object to clean the head on top of it (especially useful for dual head printing). I guess they will be implemented in the other slicers soon or later. Actually, I saw something alike buried in Skeinforge plugins.

For the standalone slicers, you will need a software to send the g-code to the printer. Printrun is the opensource freeware that you will be looking for. It also gives you direct control on your printer, e.g. to check and play with the motors and sensors. Note that Cura already embeds Printrun, so check within the directory, as you already have it.

Finally, if you want full paranoid control with lots of options, you may "just" use Skeinforge with Printrun. But you probably do not want this, else you would not be reading this post!

Netfabb

Finally, there is the full featured all-in-one $700 netfabb, which is a complete and quite expensive professional software that does it all, plus some nice mesh operations that the other do not at all.  There is a kind of shareware version named netfabb Studio Basic. It has the advantages (?) and inconvenients (!) of closed-source software, most of them being the usual corporate bullshit: I never felt a use for it ;)

Note also that Netfabb provides an additional nice, effective, and completely free web service to clean up your STL object. This happens sometimes, so think about it when you get slicing issues, sometimes  the STL object is broken in the first place, e.g. is has inconsistent holes or incorrect normals. By the way, Netfabb webservice will give it back to you in binary format, which is much more compact than the default text version of the STL.

Software I use to design printable objects

Design and create a 3D object


There are many CAD software. Really, too many...


The usual modelers

I definitely am a programmer, and I would better learn a new language than yet-another software interface... With time or need though, I would go back to blender (a real and free 3D beast for modeling and rendering), or even try again sketchup a bit more seriously, since so many people use it. I played a while with the outstanding and easy tinkercad, which is one of the most intuitive modeler I ever saw, but still looked like a toy in the long run (why though?). It is an online application (no need to install anything thanks to webgl), and still it can make things very quickly using the natural constructive solid geometry paradigm (CSG).

Though, I fear that most of the to-much interactive modelers may lack the precision or "tunability" that scripted modeler inherently have. This is a showstopper for me : it is cool to design something with the mouse, but I always want to tune something afterwards. Sometimes with such software it is almost impossible, because of the manual non-recorded chain of modifications on top of each other.


Openscad

So, for technical objects, ie. non organic shapes, openscad really rocks. I use it systematically in fact.

Programmed shape with openscad (get it here), which is simply made of
two connected spheres and two connected rectangles with a void between them.

Openscad is not interactive since it is a programming language explicitly aimed at the creation 3D shapes, again via constructive solid geometry. As a language, it lacks a few key points such as local variables, but it became a small standard on its own and is still very efficient to build complex shapes.

What really rocks is that you really control every bit of your shape by specifying positions and dimensions numerically (see above). Parts of the objects are just programmed like subroutines. This is something you will either love or hate, and it mostly depends on if you are already a programmer and/or if you can think of an object like a sum and subtraction of primitive shapes, plus some clever union, intersection and a few more complex transformations (such as convex hulls in the above example).

Just give it a try even if you do not kown much programming : simply get a small .scad file from thingiverse, look at it and start playing with it. Who knows, you may even get what programming is all about this way (well, forget about local variables though and switch to a real language!) :D

Tweak and tune the STL meshes


I did not have much need for such software yet (I will update the blog post regularly -- may be a wiki would have been better). The only one was meshlab for this case.


About Me

My Photo

If you know me and you cannot tell exactly what my real job is, then you probably found the right Jeremie. Check zax.fr for some pointers.

I am self-employed and I help start-ups, research centers, small companies with their needs related to computers, maths and mechatronics. If you have a project and know what "R&D" is, then you already caught my interest ;)