Remember paint-by-number kits? Your canvas has outlines with numbered regions that you paint with correspondingly numbered paints. When you are done, you’ve recreated the Mona Lisa. [KurtH3] uses a similar technique to coax multicolor prints from his 3D printer.
The technique isn’t general purpose, but it still is an interesting way to add some color to your usually monochrome prints. The idea is simple: You find a paint-by-number layout (apparently, you can find them with a Google search). Use your favorite method to get the outline into a CAD program. [KurtH3] doesn’t really get into the details about this, but some CAD programs will directly import images. Others will require you to trace in Inkscape (or a similar program) and convert to a vector format like DXF that the 3D CAD program can import.
Here’s the trick: instead of extruding the 2D image as one piece, you extrude the numeric regions to slightly different heights. Say you wanted to print a red, white, and blue flag to a thickness of about 5mm and you use 0.2mm layers. You could extrude the white part to 5mm, for example. Then the red parts could be extruded to 5.2mm (one layer higher) and the blue parts to 5.4mm. You could extend the idea to do multiple layers, although that will increase the surface roughness.
[KurtH3] pauses the print at the end of the layers to change filament, but we would probably edit the sliced G-Code to put pauses in the right places (for example, Repetier Host lets you put @pause in your file). You could also use software to split the G-Code as we’ve previously covered. The resulting print, using our example, would be white from the bottom up but would have thin red and blue layers over the top in the right places. The few hundred microns difference from the white surface to the other colors means you won’t get a perfectly smooth surface, but a few hundred microns shouldn’t be too noticeable.
It isn’t a new idea to stop the printer and switch filament (see the video below, for example). The interesting idea here is starting with paint-by-number images and extruding based on the color.
In Marlin, just throw in a M600 at the right heights, and it will wait for you to change the filament…
https://www.youtube.com/watch?v=1xVTGK_3Jnc
Since 2013…
What is nice about using the @ command in RH is that you can set up custom code to run at the pause (not sure; can you do that with M600 without firmware change?). So it doesn’t just pause, you can make it retract, move to a dump area, reverse the filament out to suction the hot end a little, etc. etc. etc. Then on the resume, same thing. You can have it feed a few cm of filament before it goes back, etc.
But yeah, like I said, changing filament is not a new thing, but I had never thought of using paint by number templates to start with.
Math fail.
Whoops i got an extra zero in there didn’t I? Thanks. (Fixed)
Cool… pssst, in the third paragraph tbe second reference to “white parts” should be “blue parts”. Still a fun idea.
Oops. Fixed, thanks.