Stacking - How to set up in PrusaSlicer?
I'm printing shields on my mk2.5 and would like to stack multiple visor frames on top of each other. The shield frames are from 3dverkstan and now i can print 2 at the time and need to match the printing time so i can maximize the amount of printed frames/day.
I noticed that the ones from Prusa was stacked and would like to to the same, but how to do that? Anyone that has time to write or record a tutorial on this? I would like to do it with PrusaSlicer.
Thanks in advance /Ulf
You have to add very small printable parts between them. Prusa slicer works on the principle of objects and parts. An object MUST touch the print bed somewhere to be valid to print (which makes sense as you cant print in mid air). So all separate object all touch the bed. However slicer allows you to add extra parts to an object and those parts can be placed anywhere you like. Its one way of getting around all things must be on the bed.
However slicer also knows that if theres empty layers then the parts of a object above that wont technically print (even though in some cases they would). It tries to stop people doing things that are 'stupid' to reduce problems with people who are new to 3d printing. To get around this you can add modifiers that are very small between your stacked parts. As long as there's something between them it wont complain. Of course it might not print but thats down to you now that you have bypassed its safety function. Just stack your visors like you want them and then add a 0.5mm cylinder through all the stack. No more empty layer and if you place it right it should be easy to just trim through.
It would be nice to have something somewhere to turn this check off for instances like this. I am doing the same thing and getting the same error. The fix was to merge everything into one part with a little cylinder that connects the parts.
I am printing shield parts too and have tried and failed at stacking.
BUT! I'm now printing and ejecting parts with custom g-code after printing, so I can run continuously. Currently I'm running a hacked together gcode file to print three, and it is on its second one after a successful ejection.
It looks like the "sequential printing" option can do the same thing: my test has three models in the same place with "Between objects G-code" set to do the cooling and ejecting and reheating. So far it looks like this:
; BETWEEN OBJECTS G-CODE FOR SEQUENTIAL PRINTING START
M104 S0 ; turn off hot end
M140 S0 ; turn off bed heater
; COOL OFF BEFORE PUSH OFF
M106 S255 ; fan on
G1 X40 Y50 Z10 F3000 ; position 1
G4 S60 ; 1 minute to cool enough?
G1 X205 ; position 2
G4 S60 ; 1 minute to cool enough?
; PUSH IT REAL GOOD
G1 X125 Y212 ; position for pushing off: centered near far edge
G1 Z5 ; 5 mm over bed (?)
M107 ; fans off
G1 Y0 F400 ; AH PUSH IT
; Heaters back on
M104 S[first_layer_temperature] ; set extruder temp
M140 S[first_layer_bed_temperature] ; set bed temp
M190 S[first_layer_bed_temperature] ; wait for bed temp
M109 S[first_layer_temperature] ; wait for extruder temp
; BETWEEN OBJECTS G-CODE FOR SEQUENTIAL PRINTING END
My prints stick very well to my bed even with the bed temp off. I also have a stationary bed with the hot end moving in xy (makerbot style) so trying to sequence prints is not really an option. I modified the part to have chamfers so it stays stable while printing but separates easily.
Hey guys, I've been working with a similar issue, trying to get the 3dVerkstan shield frames to stack. I got a successful 2x stack test print by printing a boarder between one frame and the next, with the width of the boarder being the .4mm nozzle diameter, and the height being the .3mm layer height. This worked, but I wanted to try to do a version where that boarder was broken up so that splitting up the frames would be easier. So I cut areas away from the boarder, essentially creating a dashed line out of it. This file is printing on the ultimaker, sliced with Cura, but when trying to load the same stack into Prusa Slic3r, it gives me the old "empty layers" warning. Here's a download link of stl's for reference.
OK it doesn't work for sequential printing, but it works as end of g-code code, then I can just copy and paste the gcode after itself to make more.
you brought me to the idea to stack several visors in CAD with 0.2mm distance, then put a kind of nail through all for avoiding the prusaslicer error.
If you like, please try, if it works, its no problem for me to vary the distance or stack more visors.
I'll try tomorrow morning. but slicing up to a layer hight 0.25 mm worked for me
This is the stl with 4 stacked visors, distance 0,2mm
This is working better for me than I thought it would, just printed a test part and the bottom of the upper part looks good and separated well! I copied, offset, and combined in Meshmixer and made a generic cylinder in the PrusaSlicer interface.
More results later, hopefully I'll be printing a stack tonight...
Yes adhesion is a problem for me too. For PLA, the cooling doesn't seem to do much, but the design builds up the pushing force force like a spring, and it pops off the bed and flies across the room. I've printed a bunch like this, and it's OK.
But I can't push off with PETG-- adhesion is too great, the printer stalls and misses steps and doesn't like it at all.
After some tests my stacking status is:
- from bottom to top the next stacked part needs solid base layers
- this works if there are distances between the parts, so prusaslicer detects "overhanging outer contour"
This distance can be created outside prusaslicer in a CAD tool.
- Which distance to set?
If sliced, prusaslicer only knows full layer heights. If you have distances, which are less than this layer height, there will be rounding effects from part to part, so after slicing the distance will be there just "sometimes ".
so best case is to set the distance exactely to layer height.
I set layer height to 0.3mm for reducing print time.
- If you import such a stacked part with distances between, prusaslicer will give an error. One solution is to add a small vertical cylinder , diameter for example 0.5mm (bigger than extrusion width) throuch all stacked parts.
This can probably also be done inside prusaslicer by using a modifier.
- Problems: in some cases the distance of 0,3mm seems to be too much, because at the inner rounding some extruded lines do not stick to the part and are like bridges. But these lines are not too many.
If a solution is needed, it could be possible to modify the gcode by adding babystepping and reducing the 0,3mm distance exactely at the distance layer. Command M290 Z-0.1 or similar, depending on the firmware
- tests continued…
Good idea, this is what I'm hearing others doing, placing a 0.5mm cylinder through the entire stack (probably a few along the frame). I'm going to try this, and continue spacing the frames apart equal to the layer height setting in the slicer. I'm hoping this will break apart easier and leave less jagged edges. I was able to get two 8-stacks to print in a row using my previously described dashed line method, but that was on an ultimaker with Cura where there isn't the same empty layer warning. Will report back.
I'd like to try your idea of pushing the item from the bed between prints, as a means of printing multiple head visors. However, I know nothing about gcode. I see a number of comments at the beginning and end of the code, together with commands that initialize the printer, bring up to temperature, bed level check, into line.
Are you able to advise more precisely the point where your "Between Objects gcode" goes? I presume I'd then copy/paste more of the original gcode after your code, but would need to omit the initialization codes.
I've attached the gcode for the visor in case you can give an example.
Hope I'm not asking too much!!
Anyone have updates on this? I tried putting a couple tiny cylinders through the stack and using the height range modifier, but I'm still getting the empty layer warning.
Somebody made a video.
I have my push-off code in Printer Settings > Custom G-code > End G-code.
I open the .gcode file as text (Notepad++) and then select all, copy, paste, paste, paste, paste etc.
It's also important to make sure you don't have a priming line and skirt btw-- turn the former off in the Start G-code (in Printer Settings > Custom G-code) and the latter in Print Settings > Skirt and Brim.
Using a pin to allow slicing through Z-gaps was one of the keys for me, but in the end, the model is the problem. I'm remodeling now explicitly for printing a stack in PETG at .25mm layers with no support and minimal stacking artifacts. I'm close. fwiw I'm modifying the 3DVerkstan design, North America 6-hole version. More bottom chamfer, nub revisions, and visor profile. Details tomorrow I hope.
I'm making my stacks in Meshmixer with a .15 or .2mm separation between them. Then I'm adding a 1mm diameter cylinder in PrusaSlicer that goes top to bottom. Works a treat.
Hmmm..... Excellent advice to switch off priming line and skirt...I hadn't thought of that. My only issue there, though, is that I need a brim to hold down the rather narrow footprint dimensions, otherwise it sometimes lifts. So I'd need a first brim, then no brim from the second time through, and that may be difficult to locate in the gcode.