Conical slicing: support-free overhangs on a 3-axis printer with cone layers
Warp the model so layers print as cones: outward-flaring overhangs need no supports on a normal printer. Two Python scripts. Limits: head clearance, inward overhangs.
- Conical slicing warps the model before slicing and warps the G-code back, so the real layers are cones instead of flat sheets.
- It works for overhangs that flare outward around a central axis. Inward overhangs get harder, and both at the same height have no solution yet.
- The main limit is clearance under the print head, so ordinary printers use small cone angles of about 15–20°, not the research machine's 45°.
- As of October 2026 it is still an experimental GPL-3.0 script set, not in any mainline slicer, with several manual steps.
Conical slicing prints layers shaped like cones instead of flat sheets. Overhangs that flare out around a central axis, such as a funnel mouth or a pipe flange, print without supports, because the outermost line hanging in the air has the line beside it in the same layer to lean on. It runs on an ordinary 3-axis printer with two Python scripts, but head clearance and part shape limit what you can do.
As of October 2026 the main tool is still CNC Kitchen’s experimental script set (ConicalSlicer, GPL-3.0). It is not a button in any mainline slicer.
Background: from a 4-axis machine to an ordinary one
The idea comes from the RotBot project at ZHAW in Switzerland. Their research machine has a print head tilted at 45° plus an extra rotation axis around Z. A 2021 paper in Applied Sciences reports overhangs up to about 100° without supports.
CNC Kitchen adapted the project’s scripts to work with smaller cone angles. The README gives 15° as an example, so a normal printer with no rotation axis can use it.
How it works
Normal slicers are “2.5D”: they stack flat layers and almost never move all three axes at once. Conical slicing tricks the slicer by warping the model first and un-warping the G-code afterwards.
- Warp the STL.
Transformation_STL.pylifts each mesh point according to its distance from the central axis, by r × tan(cone angle), and saves an odd-looking new STL. - Slice as usual in your normal slicer. You get flat layers in the warped space.
- Warp the G-code back.
Backtransformation_GCode.pylowers the Z of every point by the same r-based amount, so layers that were flat in the file become cones on the printer. Long moves are cut into short segments (max_length) so Z can follow.
Script settings include transformation_type ('inward' or 'outward'), the number of mesh refinement passes, x_shift / y_shift, z_desired, and extrusion corrections in two directions.
Worked numbers: cone angle and head clearance
CNC Kitchen’s example uses 16°; tan 16° ≈ 0.287.
How far points are lifted during the warp:
- A point 10 mm from the axis is lifted 10 × 0.287 ≈ 2.9 mm.
- A point 30 mm from the axis is lifted 30 × 0.287 ≈ 8.6 mm.
The same numbers are the problem at print time. When the nozzle is at the outer edge, the part nearer the axis in the same layer stands higher than the nozzle tip. Any part of the print head (fan duct, heater block, bed probe) sitting d mm from the tip toward the axis must be more than d × tan(angle) above the tip, or it hits the print.
A rough example (measure your own head and plug in its numbers):
- A fan duct sits 15 mm from the nozzle tip and 4 mm above it.
- At 16° it needs 15 × 0.287 ≈ 4.3 mm, more than the 4 mm available → collision.
- Largest safe angle = atan(4 ÷ 15) ≈ 14.9°. Pick something below that, such as 14°.
That is why CNC Kitchen got about 20° on small parts on one printer, while larger parts brought the bed probe into the print. Below roughly 10–15° the benefit shrinks, because plastic starts to droop.
Your print head sets the cone angle, not your model. Measure the clearance first, then choose the angle.
Which shapes work
| Shape | Result |
|---|---|
| Overhangs flaring outward around an axis (funnel, flange, umbrella) | best case |
| Overhangs curving inward | harder than normal slicing; split into sections and slice separately |
| Outward and inward overhangs at the same height | no solution yet |
| Wide flat parts with no clear axis | large lift at the edges, easy head collisions |
Compared with other overhang techniques
| Method | Layers | Printer | Status, Oct 2026 |
|---|---|---|---|
| Normal supports | flat | any | in every slicer |
| Wave overhangs | flat, paths changed | any | experimental forks |
| Small-angle conical slicing | 15–20° cones | 3-axis with head clearance | manual Python scripts |
| RotBot 4-axis | 45° cones | tilted head + rotation axis | research machine |
A first try, step by step
- Set your printer profile in the slicer so the origin is at the bed centre.
- Place the part so the cone axis matches the file’s Z axis, and save it.
- Run the STL warp script with the chosen angle.
- Load the warped file, put the cone axis at the origin, and slice. If the slicer can export empty layers, turn that on.
- Run the G-code un-warp script with the same angle and the same
transformation_type. - Open the G-code in a viewer and check the layers really are cones and Z never goes negative.
CNC Kitchen warns that PrusaSlicer and Cura don’t place parts at the STL’s own coordinates, which makes steps 2 and 4 harder.
Common mistakes
- Different angles in the two scripts. Layers come out wrong or the nozzle digs into the part.
- Not measuring head clearance. The fan duct or probe sweeps the print mid-job.
- Turning the fan down. The plastic must set with nothing underneath; cooling matters a lot.
- Choosing a part with inward overhangs and expecting the script to help. It only helps in the direction you chose.
- Forgetting Z moves on every move. The Z axis works much harder than usual, and CNC Kitchen notes extra lead-screw wear. Start with short prints.
Safety
Un-warped G-code has not been checked by the slicer. A hard crash can loosen the nozzle and let 200 °C+ plastic leak around the hot end. Stay by the printer on the first run, slow it down from the printer’s screen, and be ready to stop it.
Previous: 90° overhangs with wave toolpaths · Next: mixing new colours with thin alternating layers
Sources
FAQ
Do I need to modify my printer?
Not for small angles, but measure the clearance around your print head first. CNC Kitchen got about 20° on small parts on one printer; on larger parts the bed probe hit the print. Some printers need a longer nozzle, at the cost of weaker cooling.
Which slicer do I use?
The scripts work on STL and G-code, so any slicer will do. The README names Cura and Simplify3D; the demo used SuperSlicer because it keeps parts at the file's own coordinates more easily.
How is this different from wave overhangs?
Wave overhangs keep flat layers and only change the paths of the overhanging layer. Conical slicing changes the shape of every layer into a cone, so Z moves throughout the print.
Circuits and code were tested on sample boards. Boards differ in pin layout, so check your board's pinout before you power anything.