So you have a 3D printer and a 3D file, but now what? Well, you have to slice it up into layers and create a .GCODE file, which you’ll then send to your 3D printer. There are many options for slicing parts in preparation for 3D printing, but Slic3r’s nice because it’s open source, free to use, relatively quick, and extremely customizable.

I’ll describe how each of the many settings relates to the actions of your 3D printer, and how to correctly adjust them to optimize your machine for your application. I don’t have experience with tweaking all of these settings (there are a lot), but I’ll do my best to describe what they do.

I recently read RichRap’s fantastic guide, Slic3r is Nicer, and recommend that you give it a read as well. Although Rich has a lot of nice photos and great explanations in his tutorial, it is almost a year old, and a lot has been added to Slic3r since then. Unlike me, he does cover extruder calibration in his tutorial, which is an optional, although beneficial, process.

The manufacturer of your 3D printer most likely provides either their default slicing settings, from which you’ll have to manually enter numbers into Slic3r, or an exported profile. If you have a .INI Slic3r profile, I’d recommend starting with that and tweaking settings from there (you can import a profile in Slic3r by going to File -> Import Config).

*Unless otherwise noted, photos of prints in progress are from John Abella.

*Main photo is from the Slic3r homepage.

Disclaimer: Despite the fact that I provide good starter settings here, there is no “set formula” that will work well for all machines, so experimentation is required if you really want to optimize your prints.

You can download Slic3r for free from the website or GitHub. Now open it up and let’s get started!

Project Steps

The application is broken up into four tabs: Plater, Print Settings, Filament Settings, and Printer Settings. The Plater tab is the most self-explanatory, and typically the last place you’ll end up before slicing, so we’ll come back to that later.

One of the neat things about Slic3r is how easy it is to create, and recall, a bunch of different profiles.

After changing any setting, clicking the Save icon will bring up a text box, where you can change the name of the profile.

Try creating a profile not only for each separate printer, but for each specific type of print as well, like “Ultimaker Hollow Part” or “Ultimaker Super Fast.”

The first subset of Print Settings is “Layers and Perimeters”. The “Layer Height” is the distance the Z-platform (or extruder) moves between each layer. So, a smaller layer height will generally result in a better looking, smoother part, but will also take longer to print. Anywhere between 0.2 and 0.3mm is probably a good place to start.

The “First Layer Height” is exactly what it sounds like, and can be entered in mm or % (a First Layer Height of 50% will be half of the standard Layer Height).

Many machines on the market today will handle a layer height of 100 microns (0.1mm) without a problem.

Remember: a print with layer height 0.1mm will have twice as many layers as a print with a 0.2mm layer height, and will therefore take twice as long to slice and print.

Perimeters (or shells) are also important. A value of 2 here implies that the printer will draw two solid outlines around the edge of the part it’s printing, on every layer. I’ve found that 2 is usually a good place to start, but 3-perimeter prints are common as well.

Randomizing the starting point of perimeters will prevent a visual indentation from appearing on the side of your part, so I’d recommend keeping that box checked. Allowing Slic3r to generate extra perimeters when needed is also a good idea.

Solid layers are completely filled in with plastic, which is why it’s usually smart to have a few of them on the bottom and top of your part. I’d recommend doing at least two solid layers on the bottom, and stick with at least one on the top.

Keep in mind that if you’re printing a very large part, each solid layer will take up a good chunk of time, so dial those values down if you value print time over part strength.

“Fill density” is the percentage of each layer that will be filled in with plastic (0.2 = 20%). You shouldn’t have to go above 60% for any reason, unless you want a really dense part. 20% fill is just fine for your everyday prints, but adjust at will and play with the parts once they’re complete to feel the difference in structural stability.

A density of 0 will only print the perimeter(s) of your part, so it will be completely hollow.

The “Fill Pattern” is the path that the extruder takes when doing the infill. These don’t have a huge impact on structural stability of the part. The “Top/bottom fill pattern” is the pattern used on the top and bottom solid layers.

The advanced settings give you even more control over the infill, although I don’t think I’ve ever touched them. “Infill every 2 layers” will alternate between layers of filled (with the fill density you chose) and hollow. “Infill every 3 layers” will have two hollow layers between every filled layer, etc. I’ve always left this at 1, the default.

You can also choose to insert a solid layer every __ layers, for extra stability. The “Fill angle” is the angle at which the extruder will do its filling paths, based on the axes’ orientation of your machine. I don’t see how changing this will affect your part very much, but it may have varying levels of impact based on the Fill patterns you use.

I typically leave “Only retract when crossing perimeters” unchecked, as is default. We’ll learn about retraction soon, and then this will make sense.

Now onto speed! “Perimeter speed” is how fast the perimeters will be printed. 50 is a good place to start. “Small perimeter” speed is how fast small features will be printed. This is typically slower than your normal perimeter speed, to give the plastic more time to cool down.

“External perimeters” are the outer perimeters of your part — the most important ones. I’d start with a speed similar to, if not exactly the same, as the standard perimeter speed, and go from there.

“Infill” speed is how fast your machine will print during the infill stage. Since clean lines and extreme accuracy aren’t paramount here, crank it up! The speed I’m using here, 80 mm/s, is quite conservative, especially for the Ultimaker, but it’s probably a good place to start.

“Solid infill” speed is how fast the solid infill layers will be printed. These paths are more important than your everyday infills, so keep this slower than your standard infill speed. Don’t bring the speed down too much, however, since 100% infill layers take awhile.

The “Top solid infill” speed is how fast the top, 100% filled layer(s) will be printed. Since it’s important that these look nice, keep this speed lower than your two other infill speeds.

“Bridges” are used to fill in a gap, where the extruder stretches filament between two walls over air. If the gap’s any greater than around 0.5″, you’re going to get drooping, no matter how fast you move, but moving quickly will prevent anything major. Printing material and nozzle temperature will have an effect on plastic droop during bridging.

“Travel” speed is the speed at which your machine will move between two extrusion points. Since you’ll never be extruding at this time, you might as well crank up the speed here as well. I’d recommend starting at 175 mm/s and moving up from there. Machines that use a light, Bowden extruder (like the Ultimaker) can move as quickly as 300 mm/s.

“First layer speed” will modify how quickly your machine prints the first layer. I’d start with 50% and go from there. Read the second part of Rich’s tutorial on getting your first layer to stick.

The “Skirt” is an outline around the perimeter of your part, drawn by your printer before it does anything else. This is a great opportunity to “prime” your extruder, make sure your nozzle’s at a good height, and kill the print before it gets too far, if any adjustments are needed.

If your extruder typically takes a few seconds before the plastic appears, increase the number of loops, so it will makes its way around your part more than once. Typically, the skirt is kept at one layer high, and anywhere from 3 to 10mm away from the object.

Automatically generating support material during slicing will cause your printer to print scaffolding under overhangs and tough angles, giving you better overall results once the support’s pulled away. Just check that box, and Slic3r will do all the tough work for you.

The overhang threshold is the angle past which support will be generated. To prevent the machine from generating support for tiny protrusions that really don’t need it, start with 45 degrees.

You can also select a pattern of support, just like you did with the infill, but it’s probably more important here, since certain patterns are easier to break away post-print than others. “Rectilinear” is a good place to start.

The pattern spacing will also have a major effect on the structure of the support — a higher value will generate support that’s easier to break away. The pattern angle is the angle at which the support will be printed, with respect to the X and Y axes of your machine.

Too low of a pattern spacing will yield support that’s more similar to the rest of the part, and will be hard to break away. But, too high of a pattern spacing may not provide enough support for the overhangs.

Notes are useful for your own records, are completely optional, and have no effect on the print. After printing a part and noticing how your changes affected the output, type your notes in here so you know what to change in the future.

You’ll only need to mess with “Sequential printing” if you have an automated way to remove parts from the print bed, and want to print many parts in sequence. I’ve never bothered with changing the “Output file” settings, but they’re useful if you’d like create a standard format for GCODE filenames, for example.

The “Multiple Extruders” settings are designed for machines with just that — more than one extruder. Here you can specify specific tasks for each extruder, like support and infill.

I haven’t messed with any of the Advanced settings except for the “Extrusion width.” With accurate plastic and nozzle information (which we’ll enter later), Slic3r can adjust the height of the extruder to widen the width of extrusion.

You may want to bump the first layer width up past 100% in order to get the plastic to stick to the bed more efficiently, but I’ve never felt the need to adjust the other widths.

Now we’re moving onto the second main tab, “Filament Settings.” Your machine probably came with some plastic, or you may have bought some other spools in different colors or materials. Your filament is advertised as being 3mm or 1.75mm in diameter, but that’s never quite right.

So, take a caliper or micrometer to your filament at a few different positions, and average your readings. Input them into Slic3r with more accuracy than I did here (ex: 1.69mm or 2.92mm).

The “Extrusion multiplier” will simply alter the value you just entered into the “Diameter” box. Unless you have a specific reason to do so, leave this at 1.

Extruder and bed temperature are also very important. You can specify a different temperature for the first layer. If anything, run your extruder hotter than usual to start, to promote extra gooeyness and stickiness.

For PLA, an extruder temperature of 185 is probably as low as you want to go (This Ultimaker profile is set for PLA printing). For ABS, I’d recommend starting at 220.

If you have a heated bed, use it at whatever temperature you feel comfortable with, since anything will help. For PLA, 60 is probably a good place to start, and 110 is good for ABS (although if your bed takes forever to get that hot, dial it down, so you won’t have to wait hours for a print to start).

If you don’t have a heated bed, keep the bed temperature at 0. If it isn’t at 0, the print will never start.

Fan settings: If your machine doesn’t have a fan directed at the extruder, you can skip this step. If you have a fan, check “Enable cooling” and read the description that pops up — this will intelligently cool the nozzle only when needed, and keep the fan off at all other times.

As you adjust the following settings, refer back to the description under the “Enable cooling” box to see how your edits will change the intelligent cooling activity of the machine during printing.

“Fan speed” is a percentage, and is really up to you. Do a few prints with cooling enabled and increase the minimum fan speed if you notice that your plastic is drooping or excessively sticking to the nozzle. “Bridges fan speed” is how fast the fan will turn during bridging — keep this high to promote cooling and less drooping.

I like to disable the fan for the first layer to keep the plastic as gooey and liquidy as possible, to keep it stuck to the bed (this is especially popular with PLA printing). You can also check a box to keep the fan on at all times, from print start to end.

The cooling thresholds give you more advanced control over when the fan starts. In general, layers with shorter print times are more difficult for the printer to complete successfully, and therefore benefit most from additional airflow.

The thresholds to set for decreased printing speed will come with time and lots of experimentation, but I think the times I have here are a good place to start. The “Min print speed” can be set fairly low, and will result in a great variation in print speed during a print with lots of challenges.

You may find that separate cooling thresholds are necessary for different parts, so creating a different slicing profile for each may be the quickest solution. Ex: one for tough columns, one for hollow objects, one for busts (where detail is important), etc.

Now we can move onto the Printer Settings tab. Before we start with General settings, break out the ruler. Measure the length and width of your print area, and input the results into the “Bed size” boxes. The “Print center” should be half of the Bed length and width, so the print starts at the exact center of the build platform.

The Z offset is at 0mm by default, and should be left there unless you frequently change to a build platform of a different thickness. If, for example, your heated glass platform is removable, you can set the Z offset to its thickness so your machine will automatically adjust for it when you slice a part with that profile.

The “G-code flavor” should be fine at RepRap (Marlin/Sprinter), but definitely take a look at the drop-down and select the one that most accurately describes your machine. The manufacturer of your machine and the electronics they use will be much more influential in this than I…

Leave the “Use relative E distances” box unchecked unless you’re absolutely sure that your machine uses relative positioning. Most use absolute positioning, which states the end point of the current move in the G-code, regardless of where you are.

The “Extruders” number should only be changed from 1 if you have more than one extruder on your machine. If so, go back to the “Multiple Extruders” section of the Print Settings tab and mess with those settings.

Custom G-Code is important, and is probably something that the manufacturer of your machine can help you with more than I can. In general, the “Start G-Code” usually includes commands to zero out all three axes, heat up the extruder and heated bed, do some sort of test extrusion, and start the print.

The “End G-Code” typically turns both the extruder and heated bed off, zeros out all three axes again, and lowers the Z platform for easy part removal.

Now onto the “Extruder 1” section of Printer Settings. The “Nozzle diameter” should be provided by your manufacturer, but if not, take a pair of digital calipers to it and measure it yourself. It will most likely be 0.35, 0.4, or 0.5mm. Giving Slic3r this information will allow it to accurately place extrusion paths.

Don’t bother with “Extruder offset” unless you have more than one extruder. If you do, this is the horizontal and vertical distance between your extruders.

Since there’s so much to talk about when it comes to retraction, I’m devoting the whole next step to it…

But before you go there, check out this video of a custom Ultimaker extruder retracting, so you can get an idea of what it’s all about.

Retraction is one of the coolest features in Slic3r, and will greatly improve the quality of your prints. By retracting the hot filament with the extruder motor during travel moves, plastic oozing is prevented. The length of filament to retract before moving to the next extrusion path will depend wildly on the motor and gearing you have.

If you have no idea what to put here, I’d recommend starting with 0.75mm and moving up from there if you notice that you’re still getting stringing between gaps. The value I’m using here is so high because of the Ultimaker’s extruder gearing.

“Lift Z” will raise the extruder (or lower the bed) during retraction and before moving to the next path, where it will lower, in order to avoid knocking the part off the platform or dragging plastic with it. If you’re building tall parts that may get knocked off the platform easily, set this to one layer height. If not, I would leave this at 0.

“Speed” is how quickly your extruder motor will reverse to retract the filament. You want this to be quick, so do some tests with your extruder and see just how fast you can retract. I’d recommend starting at 15mm/s and building up from there, since once again, extruders will differ wildly in gearing and motor speed.

“Extra length on restart” is the length of plastic you’d like to extrude after travelling to a new path and prior to moving again. I don’t use it, since it would just put extra plastic down where I don’t necessarily need it.

The only application for this may be when your extruder has serious problems starting up again after retraction, but in that case I’d just recommend dialing down your retraction length and/or speed. So yeah, leave this at 0.

“Minimum travel after retraction” is the minimum distance required for the printer to retract at all between paths. In this case, if the two paths are closer than 3mm, the extruder won’t retract, to prevent the motor from doing tons of unnecessary work during an extremely complicated print. I think 2mm is a good place to start.

The last two settings here are for multi-extruder setups. When one of the extruders is disabled, you can have it retract to prevent it from oozing while the other’s working. You can also add extra length on restart here, where it may have more use, since extruders in a multi setup are often idle for longer and may require additional “priming”.

Now we can finally move back to the Plater tab! Load a part by clicking “Add”, or dragging it into the grid on the left. The part will automatically snap to the center of your build platform.

You can add additional parts in the same manner, and then duplicate them by clicking “More” after selecting them (selected parts will be red). They’ll be automatically arranged as you add them onto the plate.

You can also rotate the parts with the “45° ccw,” “45° cw,” and “Rotate…” buttons. Clicking “Rotate…” will bring up a text box, into which you can enter a specific angle. Scaling is also possible with the “Scale…” button, and works similarly to the “Rotate…” button.

If you import an assembly of multiple .STLs, like this “nautilus_plate” (file here), you can split it up into its separate .STLs with the “Split” button.

This is useful if you needed to print a few extra gears, but also wanted to print a single piece of the other .STLs as well.

That’s it! Enjoy using Slic3r.

I don’t want this to be a once-and-done thing, so please email me (eric@makermedia) or post a comment here if you have any suggestions on how to make this tutorial better.

If you’d like to contribute any related photos, that would be helpful as well, since this is a bit too text-heavy for my tastes. :P

The free in-browser G-code viewer used for a few of the photos is by Jeremy Herrman, and can be found here.

All test prints used in this demo can be found on the MAKE 3D Printing page.