Preparing an object for 3D printing

Print Ready

Author(s):

Having covered several ways to design your 3D object, let's cover how we prepare your design for printing.

We have been going over the process of designing an object, be it something decorative or a piece for a larger machine, but you have to know that you can't actually print an STL object directly on a 3D printer.

If you have been following this series, it is very likely you will have already bought, received, assembled, calibrated, and tested your 3D printer following the manufacturer's instructions. You may have even made some of your own designs using a computer assisted design program (like OpenSCAD [1] or FreeCAD [2]).

The next step is getting cozy with something called a slicer.

Slice & Dice

Before we get started on which slicer is best for you, there are three basic concepts that need explaining:

1 Infill is the cross-hatched pattern you often see inside 3D printed objects. Printing an object solid all the way through would waste a lot of filament and also make it very heavy. Printing a hollow object would make it as fragile as an egg. You can reach a happy medium using infill. You usually set the infill as a percentage in your slicer, zero percent being no infill (a hollow object) and 100 percent being solid fill. A tighter infill will make your objects stronger, but will also use up more filament and take longer to print.

2 Supports are like the scaffolding for overhanging things in your object. You use supports because … well, 3D printing technology in general still hasn't reached the point where it can print on thin air. Slicers will generally insert supports by default for you. If you use the Cura slicer (see below), any face that shows up red in the preview of your object is getting a support.

There is a problem with supports, though: They are often difficult to remove. You often have to cut them out, and it can lead to breaking delicate parts of your print. They will often leave a mark where they were stuck on your print. There are two things you can do to minimize using supports: The first is not to worry too much about very small overhangs. I did say that 3D printers cannot print on thin air above … except if the overhang is, say, three millimeters or less wide. Usually the filament's viscosity can help sustain narrow overhangs, although this will depend on the material you use.

The second thing is to learn from architects of yore. You may have noticed all those ogive (that's a real word) or pointed arches in medieval churches. They are so common, because they are structurally strong and didn't need scaffolding – or at least not much (Figure 1). The same applies to 3D printing objects: If your overhang is, say, less than 45 degrees from vertical, then you are probably safe. You may even get away with printing a semicircular arch without supports. Again, the viscosity of the material you use will be a factor. Experiment.

Figure 1: This folly requires no supports thanks to the way its arches and roof are designed.

3 Skirts, brims, and rafts: No, we have not shifted into a sewing tutorial; these are all elements that help ensure your object sticks properly to the bed or helps you see whether the bed is properly leveled and the nozzle is extruding correctly.

A skirt is an outline of the printed object, which is drawn onto the bed with one layer of filament (Figure 2). It is a reference for you, the user, and will tell you if there is any problem with the adhesion (it won't stick to the bed), leveling of the bed (some parts will be too pale or, again, some parts won't stick), or whether the extruder is having trouble (like if it is clogged). Pay special attention to the skirt, and cancel the print if you notice any problems.

Figure 2: A skirt is an outline of the object drawn on the bed that allows you to check whether everything is working properly.

Brims are a special kind of skirt that are joined to the object. A brim is designed to improve the adhesion of your object to the bed. Say you have an object with a very narrow base. You can make your slicer include a brim in your print, and your printer will create a wide, flat, one-layer surface in the shape of your print and print your object on that. When you finish printing, you cut the brim away.

A raft is similar to a brim, but instead of being solid, it is a lattice, and it is also taller. It is like a stand on which the printer will print your object. You may want to use a raft when printing with ABS, since a raft will often help avoid warping, a common problem with this material. As with skirts, rafts also help objects stick better to the bed.

Cura

A slicer does what it says on the box: It splits up your 3D object into layers (the slices), which your printer then prints one on top of (or under) the other.

There are quite a few slicers out there, and many are free software. We managed to narrow down the selection to three. The ones we are not going to mention we rejected because they were either proprietary, required some sort of registration, were nightmarish to configure, didn't work on Linux, or didn't work at all without requiring beyond a reasonable amount of tweaking. Let's not even bother with them. Life is short, and 3D print times are long.

Probably one of the most popular slicers out there is Cura [3]. Originally created by Ultimaker for their own line of printers, it has since developed further to support a much wider range of printers.

It is popular for a good reason: It is simple. The default interface is clean and straightforward, with big, friendly buttons and hints when you roll over the options (Figure 3).

Figure 3: Cura's interface is simple and straightforward – ideal for getting to grips with slicing.

In the upper left corner, the folder icon will open a file explorer that lets you search for the STL file you want to slice. You can load more than one object into Cura and arrange them on the virtual bed. In that manner, you can print several pieces at the same time.

Continuing across the top, to the right of the load button you have a drop-down that lets you choose the printer that will use the slicer. You can add to the list by choosing Add Printer and then picking from a list of printer profiles. Or you can define your own printer by inputting the bed size, nozzle diameter, maximum nozzle temperature, bed temperature, etc. – this is where having your printer's specs comes in handy.

Finally, to the right, you have the print settings panel. Clicking on that will open the options that let you configure the layer height (lower gives you a smoother and more detailed print, but will take longer), infill, whether to use supports or not, and whether to use adhesion devices (like brims, skirts, and rafts).

If you click Custom at the bottom of the panel, you can fine-tune all these options and a few more. You can set things like whether the fan should be active all the time (something you may not want if you are using ABS) or the print speed, the shape of the infill, and all sorts of other bits and bobs.

To the left of the 3D visualization area, you have a graphical toolbar with the things you can do to any of the objects you have loaded. Click on an object and the toolbar will become active. The tools let you move, scale, rotate, and mirror the selected object, as well as configure specific print parameters for the object.

The last option allows you to place support blockers. Click the option and then click the object where you want to place the blocker, and a little cube will appear. You use blockers to stop the slicer from creating supports where you don't want or need them (even though the slicer thinks you do).

You can do more things with an object by right-clicking on it. That brings up a menu that lets you delete, center, clone (multiply), group, and do a lot of other things with your objects. So, even though Cura seems simple on the surface, really it has plenty of tools to tweak your slicing to a very precise degree (Figure 4).

Figure 4: Underneath its veneer of simplicity, Cura hides all of the options you need to fine-tune your slicing.

Once you are done configuring the slicing, press the Slice button in the bottom right-hand corner of the window. When the slicing process is done, Cura will show you some important information, such as how long the print will take and how much filament it will need. These values are estimations, so take them with a pinch of salt.

Another interesting thing you can do is see a preview of the print, with supports, skirts, brims – the whole lot. At the top of the window, in the center of a dark blue bar, you have the choices of Prepare (the tab you have been using up until now), Preview, and Monitor. Click on Preview to see what the actual printed object will look like, with each layer defined (supports, infilling, etc.). Be warned that this is a lot of 3D data, and it can slow down the Cura application (or even your whole desktop) a lot.

On the right of the preview window, you will see a black vertical bar with two circular handles. Drag the handles up and down to see sections of the print (Figure 5). Along the bottom of the window is another bar with a circular handle and a "play" button. Press the button to see an animation that shows how the nozzle will move to print the selected layer.

Figure 5: A layer in the lower half of the print showing the lattice infill as seen in Cura's Preview pane. Also notice the skirt around the base of the object.

You can use the Preview window to check how the print will go and anticipate any problems that may occur.

Once you are happy with the sliced object, the button in the lower right-hand corner now offers to save it to a G-code file on your hard disk, or, if you have an SD inserted into your computer, onto the card. You can then transfer the card to your printer and start printing.

You could also print directly from Cura via the Monitor tab. However, we will be seeing how to control and monitor a print from your laptop in the next issue, because that is whole different kettle of fish from slicing, which is this article's topic.

Slic3r

Slic3r [4] has slicing capabilities similar to those of Cura, but you will probably have to do more adjustments by hand, since it comes with no default settings.

When you first open the program, for some reason, the virtual bed is way off in the distance. Use the mouse wheel to zoom in (Figure 6). You can also use the left mouse button to rotate the view and the middle button to pan. Although right-clicking, holding, and dragging on an empty area also pans, it is best to save right-clicks for bringing up more options for the active object.

Figure 6: Slic3r offers similar features to Cura, but with less predefined defaults.

The settings for the print, filament, and printer itself are on the right. Click on the gear button next to the Printer: drop-down to open a new tab in the work area that lets you create printer profiles and save them with your printer's name. Again, you will need to have the specs of your printer handy.

The Filament: setting allows you to define things like heat of the nozzle and printing bed for different materials. On my Ender 3, for example, PLA works best with a nozzle heat of 200 degrees Celsius and with a bed temperature of 70 degrees Celsius for the first layer and 60 degrees Celsius for the subsequent layers. When you have defined several materials, you can pick them from the drop-down, and the G-code files will contain the correct data when you send them to the printer.

The gear next to the Print Settings: drop-down opens a tab where you can adjust things like supports, infill, print speed, and others.

The toolbar across the top lets you add more objects to the print, create more copies of existing objects, rotate a selected object, scale it, split a group of objects into its components, cut an object up, adjust its settings, and modify its layers' heights.

Along the bottom, there are several tabs. The 3D view is what you see in Figure 6, and 2D shows a top down view of the bed.

The Preview tab shows what the slicing will look like (Figure 7). In a similar fashion to Cura, down the right side of the pane, you have a slider with a circular handle. Drag the handle up and down to see what a cross section of the object will look like at different phases of the print.

Figure 7: The Preview tab lets you see a cross section of the print.

The Layers tab shows you each layer as a 2D cross section. Again you have a slider on the right, which will let you move up and down through the object.

Moving back to the column on the right, under the configuration drop-downs, when you click the Export G-code button, you generate and save the gcode file that you can then load into the printer.

In theory, as with Cura, Slic3r can talk directly to the printer, but this didn't work for us. Every time we tried to Test the connection in the Print Settings tab, Slic3r crashed. This needs further research.

IceSL

IceSL [5] is probably the most intimidating of the applications you are seeing today. It also has the steepest learning curve. However, it is worth getting to know this slicer, because it comes with some features that make it unique.

You make all the adjustments for your print in the column on the left. You can define the type of printer you have in the Printer model drop-down and the size and orientation of your object under the Orientation and scale fold-down. Click on Settings (Figure 8) to see all the options that let you fine-tune every aspect of the print.

Figure 8: IceSL makes up for a lack of a friendly interface with options galore.

There are no toolbars, so you reach all the options from the menus at the top left of the window. Speaking of which, some of the most obvious features that makes IceSL different are the options hiding under the Effects menu. Among tools that are nifty but of dubious use (such as melting bits away from your object or adding "snow" or bumps), you'll find one that lets you paint different colors onto your model: the Paint brushes effect. This means that, if you have a 3D printer with multiple extruders, each extruder loaded with different types of filaments, you can actually print multicolored objects.

Pressing the Slice! button in the column on the right starts the slicing process and saves a G-code file to your system. When the process is over, IceSL will show the preview of the sliced object in the main window, along with a box with information on the print and sliders that let you see a cross section of the sliced object superimposed on your model (Figure 9).

Figure 9: A sliced object with two materials is superimposed over your model.

You can also create objects with two or more materials by loading STL files into different brushes. Click on File | Load stl on… | Brush 0. Navigate to the STL file containing the parts that needed printing in one material and load that. Then do the same choosing Brush 1 and loading a second STL containing the parts that need to be printed using the second material (Figure 10).

Figure 10: A classic benchy that will be printed with two different materials.

This allows you to not only print in a variety of colors, but also use filaments with different properties, like rigid and flexible filaments, or conducting and non-conducting materials. You can also assign different densities and shapes of the infill for each part.

We're going to stop here, but IceSL has much more going for it. In fact, to cover even a tenth of the features that IceSL brings to the game, we would probably need another couple of articles. Did you know, for example, that you could model your 3D objects directly in IceSL using scripts similar to those of OpenSCAD, but written in Lua? Well, you can. You can also configure the printing options in obsessive detail using the same language.

However, at this stage and at the end of the day, what you are trying to achieve is to get the object sliced and into a G-code file that won't collapse during the print. With what you have learned about IceSL here, you have enough to do that.

Conclusion

We are not totally done yet! Next time, we will look at the final steps in the printing process and what tools you can use to control the print while it is happening.

Until then, happy printing!

Infos

  1. "Using OpenSCAD to build custom 3D pieces" by Paul Brown, Linux Magazine, issue 223, June 2019, pp. 90-94, http://www.linux-magazine.com/Issues/2019/223/Tutorials-OpenSCAD
  2. "Technical 3D design using FreeCAD" by Paul Brown, Linux Magazine, issue 224, July 2019, pp. 90-95, http://www.linux-magazine.com/Issues/2019/224/Mother-of-Invention
  3. Cura: https://ultimaker.com/en/products/ultimaker-cura-software
  4. Slic3r: https://slic3r.org/
  5. IceSL: https://icesl.loria.fr/