Updates:
- 2021/03/08:
slicer4rtn
at 0.2.4 (still unreleased) resulting in better prints, blog-post linked at hackaday - 2021/03/05: 95° and 100° overhangs are printable too, more bug-fixes in
slicer4rtn
- 2021/03/04: fixing various bugs in
slicer4rtn
as disovered printing more complex pieces, supportingprusa-slicer
as well asideslic3r
, pushing the limits with overhangs - 2021/03/02: documenting my findings, a few photos, some early conclusions (not even one day old), conic sliced and tilt sliced.

Introduction
It has been target of many efforts to print 90° overhangs without support on 3-axis 3D printers as with ordinary Z slicing, each layer requires a support underneath; hence, every overhang then needs a support structure if the model itself doesn’t provide it.
But if . . . one slices non-planar? That’s what I thought about for a couple of years and kept it in the back of my mind. In January 2021 I came across Rotating Tilted Nozzle (RTN) aka RotBot as developed by ZHAW University of Applied Sciences Zurich (Switzerland). I began to design my own approach of the printhead and then started to code my own conic slicer (slicer4rtn
), as the paper which might explain it wasn’t published yet by ZHAW.
While reflecting on the output of the 4-axis conic sliced models, I thought what if I simply make the cone angle flatter than 45° but 15-25° so the vertical nozzle can print it?


slicer4rtn --angle=22.5
sliced overhang model, meant for 4-axis printer, but printed on 3-axis printerConic Slices Simulation
A simple overhang model (nr 3) conic sliced at 25° for 0.4mm nozzle, 0.2mm layer height:
Tilted Slices Simulation
The same overhang model (nr 3) tilt sliced at 25° for 0.4mm nozzle, 0.2mm layer height (like with belt printer):
Conic Slices Print Tests
And on the afternoon of March 1st 2021 I ran my G-code for the first time on an ordinary 3-axis printer, a cheap CTC DIY I3 Pro B (Prusa-i3 like), in the attempt to print 90° overhangs, with a conic sliced overhang model:
Wow – it seems to have worked! There were still some issues, like the nozzle without extrusion moved into the print as I forgot map linear motions without extrusion also to conic coordinates as well, and some other minor things.
You may consider this a “backport” of 4-axis slicing procedure back to a 3-axis 3D printing procedure.
Next Day Attempts
Conic Slices
The print is still pretty ugly due to the obvious under-extrusion, but the geometry seems to work overall. The overhang on the left-front isn’t evenly, as the outer wall print speed is still too high.
Tilted Slices
Very clean print so far but the overhang is limited to one direction (see below of overall considerations).
Findings
Well, it works, but here are some limitations of using non-planar slicing:
Conic Slices
- conic sliced overhangs need to be going out- or inward from a central point
- more complex pieces need to be volume decomposed or segmented, e.g. some sub-volume sliced ordinary vertically Z-wise, others conic sliced where needed – this is part of my research on 4-axis and 5-axis printers; and I was hoping some of the findings can be applied to 3-axis 3D printer as well (as this post shows)
- the printhead geometry with heatblock sock, part-cooler, LED light they quickly come into way with larger pieces and larger overhangs
- this might look minor, but part coolers play significant role for quality prints, so they need to be optimized for non-planar printing
- cone angle
- 15° works, sufficient space around the nozzle, but on the edge for overhangs
- 20° works better, layers more stable beneath the overhang
- 25° works too, but is the limit on my E3D V6 clone
Tilted Slices
- single direction angled slice like with belt-printer
- only one direction overhang possible, but good quality
- tilt angle:
- 25° works good, yet, the heatblock comes into the way rather quickly with my sample overhang model
Conic vs Tilted Slices
Issues to Resolve
- more tests
- more beautiful prints
- fine tune extrusion rate: the current
slicer4rtn
does a simple/poor interpolation causing rough top surfaces (under- vs overextrusion) - fine tune outer wall of overhangs, slow them down
--slicer.external-perimeter-speed=10%
(Slic3r)
- fine tune extrusion rate: the current
- support more slicers
- Slic3r: supported since
slicer4rtn 0.0.1
- Prusa Slicer: supported since
slicer4rtn 0.1.2 (0.1.1 was broken)
- Cura Engine: not yet
- Print3r: not yet (coming soon)
- Slic3r: supported since
- support skirts (again): due the slicer algorithm the skirt must omitted before pre-processing but be added at last stage or post-processing
- redesign my part cooler so I can test print larger overhang pieces
- find collision algorithm (along with given parametric printhead geometry), that’s part of the 4-axis and 5-axis slicing procedure
Gallery
2-sided overhang model nr 4 (conic sliced)
Trying out an overhang model which extends -Y and Y (as side-ways the part-cooler comes into the way)
There are still inconsistencies with extrusion calculation, but the prints getting cleaner.
4-sided overhang model nr 6 (conic sliced)
Sample print comes soon as I need to redesign my part cooler so I can print this piece.
1-sided long 4mm thick overhang model nr 3 (conic sliced)
Long 40mm overhang, just 4mm thick extending nose . . .
1-sided long 2mm thick overhang model nr 3 (conic sliced)
Long 40mm overhang, just 2mm thin extending nose, let’s push the limits of what’s possible:
OK print so far, better than anticipated, but still a way to improve it.
1-sided short 2mm thick 95° overhang model nr 3 (conic sliced)
Just trying more overhang, let’s see.
Obviously there is more than 95° overhang possible, so let’s try …
1-sided short 2mm thick 100° overhang model nr 3 (conic sliced)
Even steeper overhang, let’s see.
This is truly promising, up to 100° overhangs printable with vertical nozzle as mounted on most 3-axis 3D printers . . .
Test Protocol
Note: the protocol shows old settings of slicer4rtn
pre 0.2.0 as they have changed by now, I keep them for my own reference for a couple of weeks and remove or replace them with newer prints and settings.
Short overhang (conic sliced)
slicer4rtn-0.1.0 --angle=25 overhang3l-refined-center.stl ---slicer.max-fan-speed=50 --slicer.bed-temperature=50 --bed-center=80,60 --slicer.layer-height=0.2 --flow-rate=1.5 --slicer.retract-length=4 --output=o3l.gcode --zoff=-0.2
max-fan-speed
reduced as there is no heatblock sock anymorelayer-height=0.2
gives faster speed than 0.1, 0.3 output is too roughflow-rate
needs further experimentationangle=25
seems the max, otherwise the hexagon on the nozzle will touch existing print
Short overhang (tilt sliced)
slicer4rtn-0.1.0 --angle=25 overhang3l-refined-center.stl -k --axis=3 --slicer.max-fan-speed=50 --slicer.bed-temperature=50 -v --bed-center=80,60 --slicer.layer-height=0.2 --flow-rate=1.5 --slicer.retract-length=4 --output=overhang3l-axis=3.gcode --zoff=-0.2
axis=3
tellsslicer4rtn
there is no rotating tilted nozzle, so slice only tilted into one direction (by default -Y direction)- heatblock geometry matters with this tilted sliced print much more than with conic sliced print above, print looks better than conic sliced mainly I haven’t had time to fine-tune conic sliced printing yet
Short bi-direction overhang (conic sliced)

slicer4rtn-0.1.0 --angle=25 overhang4l-refined-center.stl -k --slicer.max-fan-speed=50 --slicer.bed-temperature=50 -v --bed-center=130,60 --slicer.layer-height=0.2 --flow-rate=1.5 --slicer.retract-length=4 --slicer.fill-density=10 --slicer.external-perimeter-speed=10% --output=overhang4l.gcode --zoff=-0.2
slicer.external-perimeter-speed=10%
makes a significant difference with better overhangs (slower printed)
Long thin 2mm overhang (conic sliced)
slicer4rtn-0.1.0 --angle=25 overhang3l2mm-refined.stl -k --slicer.max-fan-speed=50 --slicer.bed-temperature=50 -v --bed-center=130,70 --slicer.layer-height=0.2 --flow-rate=1.5 --slicer.retract-length=4 --slicer.fill-density=10 --slicer.external-perimeter-speed=10% --output=overhang3l2mm.gcode --slicer.nozzle-diameter=0.4 --zoff=-0.1 --slicer=slic3r
- very good print
(slicer4rtn-0.2.3) print3r --printer=y3228-rtn print overhang3l2mm.stl --subdivide=5 --erate=0.8 --random-placement --layer-height=0.3 --fill-density=5% --print-speed=20 --infill-speed=20 --perimeter-speed=20
- better surface, no stringing anymore
- faster print speed but also more geometric inconsistency like bending up
- underside is more uneven but also cleaner than all the previous (pre- 0.2.0 of
slicer4rtn
)
Long thin 4mm overhang (conic sliced)
slicer4rtn-0.1.0 --angle=25 overhang3l4mm-refined.stl -k --slicer.max-fan-speed=50 --slicer.bed-temperature=50 -v --bed-center=130,70 --slicer.layer-height=0.2 --flow-rate=1.5 --slicer.retract-length=4 --slicer.fill-density=10 --slicer.external-perimeter-speed=10% --output=overhang3l4mm.gcode --slicer.nozzle-diameter=0.4 --zoff=-0.1
- rough surface still, on top and beneath overhang, need to review my extrusion transformation
- some layers hang a bit under, either over-extrusion or lack of cooling
Shorter 90°+ thin 2mm overhang (conic sliced)
Both overhang3l2mm95deg
and 100deg
were printed with
slicer4rtn-0.1.5 --angle=25 overhang3l2mm95deg-refined.stl -k --slicer.max-fan-speed=50 --slicer.bed-temperature=50 -v --bed-center=130,70 --slicer.layer-height=0.2 --flow-rate=1.5 --slicer.retract-length=4 --slicer.fill-density=10 --slicer.external-perimeter-speed=10% --output=overhang3l2mm95deg.gcode --slicer.nozzle-diameter=0.4 --zoff=-0.2 --slicer=slic3r
Tuning 3-axis 3D Printer
Following changes are recommended (for now just for myself as slicer4rtn
isn’t released yet):
- increase Z axis speed: within the start G-code the line
M203 Z..
(replace..
with an actual number) to increase speed of Z-axis- depending on the pitch of your Z-lead screw or threaded rods, you may set it to
Z4
,Z6
, or higher, so the motion speed comes close to X- and Y-axis to improve print quality - if it’s set too high, your stepper motor will block and not move at all
- my setup with M6 threaded rod for Z (200 full steps = 1mm):
M203 Z8
lead to block of Z motion, trying now withM203 Z6
, 6mm/s => 6 revolutions/s => 1200 full steps/s
- my setup with M6 threaded rod for Z (200 full steps = 1mm):
- depending on the pitch of your Z-lead screw or threaded rods, you may set it to
- slow down perimeter (overhangs): use
--external-perimeter-speed=10%
or a bit more, it prints overhangs better, leave it at50%
if prints look good
Models
References
- Conic Slicing for Rotating Tilted Nozzle (RTN)
- Rotating Tilted Nozzle (RTN)
- RotBot by ZHAW, the source of my inspiration
That’s it.