December 23, 2022
Description
What the heck is Print-on-Print? It is a technique for embedding crisp, flush, high-contrast graphics in the first layer or two of your print. In this case, the entire print is only two layers thick, so the graphics appear on both sides of the bookmark.
It works by having your graphics as a separate object which is only one or two layers thick. The graphics object gets printed first. Then on top of that you print the rest of your object, which has a zero-clearance cutout in the first layer or two for where the graphics object goes. The two objects print touching one another, fusing themselves into a single object. Note that if the graphics object is taller than 1 or 2 layers, the nozzle will plow into it significantly when you print the main object. For each playing card, I've provided Graphics file and a Card file.
Unfortunately, in Prusa Slicer (as far as I can tell) you have to play a few tricks to make this work. Firstly, to keep the two objects aligned, I had to create a bounding box around both so that when Prusa Slicer centers the objects, they stay aligned. (Prusa Slicer doesn't seem to give you access to the original X-Y position from the STL file.)
Secondly, you need to make some minor edits (shown below) to the starting and ending G-Code to execute the filament color change, to keep the motors from turning off, and also to prevent the printer from re-homing before printing the second object. (Homing is not exact and if you re-home between prints, there will be some minor misalignment.) I've provided 3MF files for the graphics and card files that already have the required edits to the starting and ending G-code. However, if you aren't printing using PrusaSlicer on a Prusa Mini+, these changes probably won't propagate through. (I've also provided the plain STL files.)
Printing
Here are the exact steps you need to take:
1. For the Graphic objects, you will need to edit the Ending G-Code (found in the printer settings):
; comment out this line: M104 S0 ; turn off temperature
; comment out this line: M140 S0 ; turn off heatbed
; comment out this line: M84 ; disable motors;
; Add this line directly following the M84 line:
M600 ;Execute filament change
Also set the layer height to 0.2mm, the number of skirt lines to 0, and the elephant's foot compensation to 0. Load and center one of the Graphic files (say, AceofSpades-Graphic.STL) and then slice.
2. For the Card objects, revert back to the default Ending G-Code, but edit the Starting G-Code:
; comment out this line: G28 ; home all without mesh bed level
; comment out this line: G29 ; mesh bed leveling
3. Print the Graphic G-code file first. The graphics will print, and after printing you will be prompted for a filament change. After the filament change, the printer will park itself, but the motors will stay on and the bed and nozzle will also stay hot.
4. Print the Card G-code file. This file should print on top of the Graphic object but without the printer re-homing or re-executing the bed leveling.
License:
Creative Commons — Attribution — Share Alike