PrusaSlicer
PrusaSlicer copied to clipboard
Print overhangs using arc-overhang algorithm instead of supports.
Is your feature request related to a problem? Please describe. I would like to print overhangs without using support material. I recently designed an algorithm that makes this possible by recursively generating arcs: https://github.com/stmcculloch/arc-overhang
How it looks when it's printed. This is looking up at the bottom of the print from the perspective of the print bed:
I've got ideas for improvements that can be made that will improve quality
Algorithm visualization:

Describe the solution you'd like I'd like this algorithm to be implemented so that you can choose to print overhanging sections using the arc-overhang algorithm instead of support structures. The only parts that still get support are the following cases:
- Unsupported "islands" that have no previous layers underneath to build arcs out from.
- Large areas that would result in poor surface quality. User can set the maximum area for arc overhangs, so any polygons larger than that will use normal supports.
Describe how it would work A description is found in the readme of my github repo. I also tried to comment the code extensively so that it can be read.
Describe alternatives you've considered An alternative to this could be conical slicing, but that requires nonplanar layers, and I assume that is way out of scope.
Additional context See the arc-overhang readme for background and context.
PS. I am interested in implementing this myself and submitting a pull request, but I'm not very experienced with C++ and I'm finding it hard to get started. I can build and run the code from source, but I'm a bit lost in understanding the codebase. If there is any documentation for a high-level breakdown of the steps involved in slicing, or any other resources for developers other than the github wiki, I'd love to hear about it.
@Godrak is working on an approach, which in some sense is similar to yours. Please @Godrak check this proposal.
@Godrak do you need some help about it?
This sounds awesome, I hope it gets implemented! I'd love to play around with it rather than mess with supports even if it just improved some models.
Hello, This is awesome. However, it's not very nice. May I suggest that this technique could be used as a support to build "old/actual style" support. This could save a lot of time and material as the support doesn't need to start from the build plate anymore. Thanks! Sev
what do you mean by "it's not very nice" personally i think an algorithm that just makes sure there is minimum attachment to other material would work, or instead of making a bunch of arcs, using a single repeating arc with a mask
I agree that it may not look good (although it depends on opinion, and application), but sometimes it doesn't matter: for functional parts, some sort of "internal" (hidden) overhangs where support would be very hard (or impossible) to remove, or simply top solid layers without infill (even less material than lightning infill, although probably longer print time).
I would really like to have this option.
Hello @bubnikv I refer to the white example posted by @stmcculloch It can be nice if it's the desired effect, but it's not flat (can pose problems for technical parts). If the intended use of this technique is to save time and support material, it should allow printing of technical part. Hence my suggestion to use this as a base to build traditional type of support on top of it.
there are probably ways to improve the quality, but i think it would be overly complicated to make something that sticks out for support material; remember that this method has some drawbacks too
I print completely without supports to reduce waste as my printer cannot change filament but can print huge parts very quickly, for my use case this would be a game changer for printing everything in-place.
Hey, I improved on Steven McCullohs Script and wrote a Post Processing Script for PrusaSlicer to automate the generation Process. Even if it not integrated in the core of the slicer, it enables to print real world overhang objects right now. https://github.com/nicolai-wachenschwan/arc-overhang-prusaslicer-integration
Hey, I improved on Steven McCullohs Script and wrote a Post Processing Script for PrusaSlicer to automate the generation Process. Even if it not integrated in the core of the slicer, it enables to print real world overhang objects right now. https://github.com/nicolai-wachenschwan/arc-overhang-prusaslicer-integration
Hi Nicolai. Does your script work with the current PrusaSlicer development release (2.6 beta2)?
If it's a postprocessor it just takes gcode, there shouldn't be any compatibility issues Also https://tryitands.ee/
Hey, I improved on Steven McCullohs Script and wrote a Post Processing Script for PrusaSlicer to automate the generation Process. Even if it not integrated in the core of the slicer, it enables to print real world overhang objects right now. https://github.com/nicolai-wachenschwan/arc-overhang-prusaslicer-integration
Hi Nicolai. Does your script work with the current PrusaSlicer development release (2.6 beta2)?
Yep, Just testet it successfully :)
Yep, Just testet it successfully :)
There is something I'm wrong then.
Post processing scripts setting
Output on exporting the g-code
Running from terminal
macOS Ventura 13.4 on Apple silicon M2 pro PrusaSlicer 2.6.0-beta2
@liftbag: the Script is telling you to change your PrusaSlicer Settings: enable Overhang Detection. the Rest of the Error is due to os not being able to handle the input command. (Occurs only when this Error is raised)
@liftbag: the Script is telling you to change your PrusaSlicer Settings: enable Overhang Detection. the Rest of the Error is due to os not being able to handle the input command. (Occurs only when this Error is raised)
Right, gotcha. It works on beta3 now. Hilbert curve where there was solid linear infill is normal?
Yes, this prevents warping
Yes, this prevents warping
Ok. Thanks a lot.
has anyone attempted a C++ implementation