Multiple colors in PrusaSlicer

To print with PrusaSlicer, you first need to have a profile for your printer in it. If you are using the Creality Ender-3, the profile from sn4k3 on GitHub is an excellent departure point.

For everything else, you need to select the Expert mode in PrusaSlicer:

Select the Expert mode in PrusaSlicer.

The next step is to lie to PrusaSlicer and make it believe you have something like a Prusa MMU unit on your printer: go to the Printer Settings tab and, in the General sub-tab, set the number of extruders to more than 1 (I set it to 2). Also select Single Extruder Multiple Material which means it is going to send all the extrusion orders to the first extruder:

Make your printer a multi material one :)

Once this is done, a special command needs to be send for the filament change itself. Go to the Custom G-code sub-tab of the Printer Settings tab and set the Tool change G-code to the following G-code:

M600; Filament change

M600 as Custom G-code for tool change

This will tell the printer to change the filament each time there is a color change.

Finally you can change the color of each extruder in the Extruder X sub-tabs of the Printer Settings tab to make it easier to recognize them when slicing, I used black and white as this was the goal of my print. I however somehow inverted the color in this slicing (but not in the actual print):

Setting the extruder color

Slicing for multiple extruders

Once the printer is configured for multiple colors, only slicing is left. This take the cover as example but there is no limit in the number of colors or number of color change (except how many you are willing to actually perform).

You can import a multi color format or simply using several STL for the various parts (method described here).

You start by importing the first STL as you would do for a one color slicing (here the Ender-3 logo), then you click right on the little icon next to the imported part, and select Add Part > Load…:

Importing a multi part object

Select the second model (the cover here) and then you should get the full part in.

Finally, you need to select the extruder you want by clicking on the number in the Extruder column in front of each parts and selecting the extruder you need:

Selecting the extruder for each part

Now only slicing is left. You can see in the layer view that there is two colors in the same layers:

Layer 4 with the 3 first layers having 2 colors

Nota bene: this example model has 3 color changes if Extruder 1 is the logo’s color and 4 if it is the box color, this is why Extruder 1 is assigned to the logo.

The tedious part: printing

The last part of the process is actually printing. It is going to be tedious since at every filament change you are going to need to manually change the filament. On Linux, I use the following command to know how many of them they are:

$ grep M600 file.gcode | wc -l

This simply counts the number of occurrences of M600 G-code.

Nota bene: when changing the filament, make sure you wait a little bit after the color is out before clicking on “Continue” so that it ooze in the park location, not on the model.

Forewords

That’s how I made this 2 color cover on my printer, it is a nice technique as you don’t need an expensive printer machinery to do simple multi-material prints. It is pretty limited though as it require a lot of manual intervention during the print (to physically change the filament).

I used PETG for this print, a material notoriously stringy and for which my retraction is probably not well tuned, and you can see on the picture some thin white trace on the first layer and some thin black trace on the second layer due to stringing. I bet the result would have been better with PLA but I was out of black PLA.

A last word for people that asked me the STLs on Facebook, I finally got the copyright waiver from my company for this box so I’ll probably release the design of it on Thingiverse soon.