Operational Sofware in 3D Printing

By Jason Griffey |

Editor's Note: This post is one of a series excerpted from Jason Griffey's Library Technology Report "3D Printers for Libraries."

I’m using the term operational software to refer to your direct interface with the 3D printer, whether you’re preparing STL files for printing or actually creating the output file that the printer understands. This post focuses on the software needed for Fused Deposition printing, as that’s the most likely to be of use in a library. And once you get into SLS and other types, the software/process will likely be proprietary.

Much like a desktop printer doesn’t speak “Microsoft Word,” even if that is the most common filetype that you print, 3D printers don’t actually print STL files. An STL is a mathematical representation of a shape, while the 3D printer itself needs instructions: how much filament to extrude, where and how fast to move the nozzle, how far and when to lower the build platform, how hot the extruder should be. The actual mechanical movements are encoded in a separate file, and the filetype depends on the printer. Most FDM printers use an open filetype, called a G-code file, that is an ascii representation of all of the values needed to create the object. G-code is handy; because it’s simply a text file, you can manually alter known values in order to change the way the print is done. If you want to lower the extrusion temperature, no need to re-encode the file. You can just change the value, once you know where it is. G-code is also open, which means there are multiple programs that can generate it.

The process of moving from STL file to G-code for 3D printing is called “slicing,” because you are in effect taking the 3D object and slicing it into thin layers that the printer will reproduce. Some slicing software has a ton of control, letting you “plate” the models. Plating means to place them on a virtual representation of the build plate of the printer, allowing for printing of muliple parts simultaneously by plating more than one STL. Other slicing software is more bare bones, allowing you to just make choices as to printer settings during the print process.

The most popular slicing engine is called, appropriately enough, Slic3r. Slic3r is an open source project that is usable as by itself, but is probably more commonly used as a backend slicing software for more popular packages that include plating and other options. These would include MatterControl, Pronterface, ReplicatorG and Repetier-Host, the most popular management software for 3D printers. Slic3r does allow for rough plating of objects, but its strength is in the detail given to the slicing process.

Slicr3r has three main areas of control: print settings, filament settings, and printer settings. Each can be saved independently of the other, allowing for a collection of presets to be designed around your most common printing needs. The simplest of these areas is the Printer setup, which allows you to set the size of the printer build platform, as well as details about the extruder. Generally speaking, you only need one printer setup for each printer that you want to use with Slic3r. The filament settings are also not likely to change much, as it only allows you to set the diameter of your filament and the desired printing temperature for the extruder and bed. The real power comes from the print settings, where you have almost total control over every other aspect of the behavior of the print. Under print settings, you’ll find options for layer height, infill, speed, skirt and brim, support, and more.

We’ve discussed layer height, but the other settings are likely to be a bit mysterious. Infill controls the solidity of the print, the amount of material used to fill the interior, expressed as a percentage. The software does the math and determines how to arrange the type of infill you choose (square, hexagonal, etc.) in order to achieve the correct percentage of infill. As an example, if we were printing a 200mm by 200mm cube, and wanted it to be totally hollow, we would set the infill to 0. Setting the infill to a very low percentage, between 1% and 10% or so would result in very large square or hexagonal infill on each later, and as you increased the percntage, the infill would become more and more dense, until at 100% infill you would get an actually solid piece of plastic. You would almost never print an object at that infill, as there is a dimishing return for increasing the infill as it relates to strength versus the amount of plastic used. More than 60-70% or so, you’ll likely not find any actual structural advantage unless there is a specific geometry that needs to be solid. I find myself printing most objects at less than a 20% infill, which is a sweet spot of strength and weight to amount of plastic (and thus cost to print).

Speed is the rate at which the print head moves around the build plate. FDM printing is a slow effort, and one way to speed the process is to make the print head move faster as it’s depositing the plastic. Simply cranking the speed up has issues though. As you increase the speed, you’ll reach a point at which you will begin to decrease the quality of the output. The speed for moving and cleanly extruding plastic has its limits, and each printer has a sweet spot of speed for producing great looking prints as quickly as possible. The other issue is the weight of the print heads on these printers, which is fairly heavy, with their motors and metal heat sinks and brass nozzles. As you begin to move this not-insubstantial mass faster and faster, you create a significant amount of inertia that can be more than the printer body can contain. Videos online show printers “walking” across a desk as the print head is thrown back and forth across the build plate.

The last part of the print settings that you want to pay particular attention to is the support material settings. This includes both raft settings as well as support settings. A raft is a thin (2-3 layer) platform of plastic that can be printed as a sort of buffer between the build plate and the print itself. For certain prints, this can help with adhesion and curl issues. Also important are supports, which are vertical structures built not as a part of the model but to support an overhang in the model, giving the printer a base layer upon which to print it. You can choose whether to use supports and their shape.

After you get all of these settings tuned for your particular printer, few changes are required from print to print. Slic3r supports saving profiles, so you could do a series of printer settings for the slight variations that you might do most often, like 10% infill, 25% infill, etc. Or if you print with multiple filament types, you could have one profile for PLA, and another for ABS, with all of the appropriate temperature changes and such preset.

Slic3r works with any 3D fused deposition printer that speaks G-code, which is the vast majority. The bad news is that the most popular 3D printer for libraries doesn’t use G-code, isn’t compatible with Slic3r, and instead uses proprietary software and slicing filetype. I’m talking, of course, about Makerbot and Makerware. Makerbot is by far the most popular consumer 3D printer company on the market today. They’ve likely sold more FDM printers to consumers than all other printer manufacturers combined, and they have chosen to go their own way when it comes to software to run their printers. Makerbot printers made prior to this year use software called Makerware to manage their printing, and it’s a far more user-friendly process than I’ve described for Slic3r above. The newest Makerbot printers (their 5th generation printers) are designed to use even more powerful software, Makerbot Desktop. We’ll talk a little about both below, although Desktop was in beta at the time I prepared my Library Technology Report.

Makerware is an all-in-one Makerbot management tool. It will take one or more STL files, allow you to place them on the build platform, rotate, scale, and otherwise manipulate them, and then set all of your printer specifics before hitting print. It’s visual, easy to use, and designed for first-use 3D printing. If you have a Makerbot model with multiple extruders, it also allows you to set the specifics of each extruder, and designate which parts on the build platform get built in the respective plastics.

Makerware also has the ability to output a printable file that can be moved to the printer on an SD card, although Makerbot doesn’t use the standard G-code format that most other 3D printers use. Their proprietary file format (x3g) isn’t compatible with other printers. You can also print directly to a compatible Makerbot printer that is connected by USB. Most people with experience recommend printing from the SD card, rather than live from computer, because it eliminates possible problems like a reboot or a program crash.

Makerware is compatible with all of the Makerbot printers prior to the 5th generation (the Replicator, Replicator 2, Replicator 2x).

Makerbot Desktop is the newest 3D printer software for controlling Makerbot 5th generation printers. Those are the Replicator Mini, the Replicator (5th Gen), and the Replicator Z18. They require a different software, because they’ve added a lot of hardware features not found on other 3D printers, including built-in webcams, wifi accessibility, “smart” extruders, and more.

While the interface for Makerbot Desktop is slightly different, the basic functionality is the same as Makerware. You can import, position, rotate, and plate STL files to prep them for output. But that’s the least of its features, as it also includes access to the new Makerbot Cloud service, allowing you to maintain a library of 3D designs in the cloud, and access them from any computer running Makerbot Desktop simply by logging in. They have also introduced yet another filetype, the .makerbot file, which is used as the printable output file for the 5th generation printers.

The addition of cameras in each of the new Makerbot printers also enables Makerbot Desktop to be a visual monitor of your prints, regardless of where you are. You are able to view the printing locally or remotely, and control the printer remotely, including pausing or cancelling prints. You can even use it to snap pics for uploading of your model to Thingiverse.

For libraries, the biggest impact might be felt by use of one of the smallest actual feature additions to Makerbot Desktop. When you plate an STL file in Makerbot Desktop, it can give you both a time-to-print estimate and a total amount of plastic used, both of which are almost impossible to determine before you print on pretty much any other platform.