prusa3d / PrusaSlicer

G-code generator for 3D printers (RepRap, Makerbot, Ultimaker etc.)
https://www.prusa3d.com/prusaslicer/
GNU Affero General Public License v3.0
7.74k stars 1.93k forks source link

Idea for recursive generated organic support #11122

Open DonMathi opened 1 year ago

DonMathi commented 1 year ago

I watch my Prusa printer how it was building the organic support layer by layer, and started wondering if it could be done faster. I have also previously played around with recursive generated turtle paths.

My idea is simple: Instead of generating trees, then create a polygon, that become more and more fragmented as it moves upwards. A roundtrip of a polygon could possible be printed faster than printing the individual circles of each branch.

murk-sy commented 1 year ago

Might not actually be beneficial just based on a quick test in Prusaslicer (just focusing on the polygon part)

XL 0.25mm Speed preset, single perimeter, no infill or top/bottom

200 x 200 x 200 Circle image

157.07 x 157.07 x 200 Square (same circumference) image

Square is about 4% slower in this case.

Obviously we're never dealing with perfect circles but it should be a reasonable comparison. And at the end of the day, a circle is just a very smooth polygon.

But let me know if you're talking about actually connecting all the branches so it forms a single polygon. I believe Cura's tree supports work that way? Has been a while since I used it.

DonMathi commented 1 year ago

The current organic structure is printing 2 circles for each branch. An inner and an outer cicle. Proberbly to achive stability. An single lined fragmented polygon could have the same stability, and be faster to print?

DonMathi commented 1 year ago

By the way. The idea is to have one single streched polygon line covering all branches.

DonMathi commented 1 year ago

One could argue that this would be a travelling salesman problem, with the twist that it should not be the shortest route. But the one that covers most area between the points.

murk-sy commented 1 year ago

Another test to focus on that, based on organic supports - writing this as I test it. 0.25mm SPEED 5T XL preset Using this shape as a base to get some branches to use as sample data. The supports have retractions - I checked in preview. image

Using the area just above the interface where the branches are closest and this method should be (in my opinion) most effective: image

Using this marked shape in particular image

Arranged 2.4x2.4x100 mm cylinders in a similar fashion, 1 group disconnected and 1 connected image

Small perimeter speed was set to 75 (same as perimeter speed) so we have a clear comparison between just extruding or retract + travel + unretract.

Unconnected

image

image

Connected

image image

Summary

May be worth exploring, but could make support removal more difficult. A hybrid approach may make more sense but that would require a lot of R&D. However, it could improve max branch angle if the branches can occassionally be connected with thin overhang strands.

Project file: Prusaslicer-issue11122-test.zip

DonMathi commented 1 year ago

You still have 2 layers of support in a filling pattern on top of the organic structure. How the organic structure then affects the removal of the top layers from the object I can't see?

DonMathi commented 1 year ago

Your idea of having the branches occasionally connected, is also nice. So now we really are getting into some research. Maybe an AI generated support structure algorithm would be the right way to go?