Preparing an object for 3D printing

Print Ready

Article from Issue 225/2019

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.


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 [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.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

  • 3D Printing: Idea to Object

    How do you get from an idea to a finished printed object? We'll take you through the steps with a glamorous example: a pair of 3D-printed earrings.

  • Printing Proper

    One last step remains in our 3D-printing voyage: actually printing something. This issue, we'll tackle how to print and monitor your print at the same time.

  • 3D Printing: A Case Study

    Just unpack and get started? It's not so easy with hobby 3D printing.

  • Tutorials – OpenSCAD

    OpenSCAD lets you use simple scripts to build 3D bodies from primitive shapes that you can then send to your 3D printer. It also lets you create custom shapes for pieces and objects. In this article, we look at two ways to do just that.

  • Xubuntu Dell Notebook

    Combining a Dell notebook with Xubuntu and an M.2 SSD makes for a reasonably priced, high-performance system for all your 3D printing projects.

comments powered by Disqus
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters

Support Our Work

Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

Learn More