stmcculloch / arc-overhang

A 3D printer slicing algorithm that lets you print 90° overhangs without support material.
GNU General Public License v3.0
417 stars 67 forks source link

Flood method #12

Open ServAlex opened 1 year ago

ServAlex commented 1 year ago

Another method of generating curves: image Unlike interpolation this one even works without arcs image

It's still only drawing, no gcode yet, but it should be easier to generate it as line widths are constant https://github.com/ServAlex/arc-overhang/tree/floodfill2

ServAlex commented 1 year ago

Ohh @stmcculloch is this what you showed in the last short? T_T

stmcculloch commented 1 year ago

It is similar to what I showed.. but yours looks a lot better! mine was really hacked together and was actually not able to print some shapes properly. Also it was just using a single arc extended as far as it could go. I think using the starting line makes a lot more sense, since it should avoid the issue of the central blob. I expect this will print really well.

ServAlex commented 1 year ago

Realized that util.write_gcode does everything I was missing. Latest commit adds gcode generation, time to try printing

ServAlex commented 1 year ago

Finally, after a lot of trial and error got somewhat decent result P_20221226_171500 P_20221226_172158 P_20221226_172318 a lot of warping though: P_20221226_172223

beware, start and end gcodes are edited for my setup

X-Ryl669 commented 1 year ago

Is the warping "up" only (meaning the surface is concave and only tangent to the expected planar surface at the center of mass) or is it also "down" (the warped surface is intersecting the expected planar surface ?)

ServAlex commented 1 year ago

@X-Ryl669 "up". As soon as perimeter get's anywhere higher than the plane on the next pass nozzle bend's it down to the level of the plane but this means new perimeter attaches to it in wrong location. Looking at the cross section of perimeters new one attaches at 2 o'clock instead of 3 and this error accumulates more and more

rvmn commented 1 year ago

warping is interestingly always ´up´. it is caused by shrinking of layers on top which is inavoidable with plastics, they are plastic and formable obviously. you could theoretically correct for that by making the overhang downwards a bit so the warping will put it back up. just that is practically not too easy to do, you cannot let the print head print downwards a lot, you might hit the print doing that. and controlled sagging is very hard to predict as it is related to print speed and cooling speed, which is air flow, temperature and material all being relative altogether. would be nice if someone could find a way to do controlled sagging with a lidar taking measurements (like the one on the bambu x1), but that is like high tech for the bambulab to pick up sometime maybe..

X-Ryl669 commented 1 year ago

What about overextruding then, to use gravity as a solution here ?

The shrinking seems to be due to plastic shrinking when cooling, pulling the previous layer toward the center of mass of the new layer. If the new layer is over-extruded so that the missing "volume" of plastic (that's matching the amount of plastic that has shrunk) is present, it shouldn't wrap to anything but a plane.

That could be a empirical solution, since this overextrusion factor is proportional to the distance to the center of mass (and in case of circular rings, the center of mass could be the center of the rings).

But at least it's possible to try without many expensive measurement setup (like air flow, temp sensor, lidar, etc...)

rvmn commented 1 year ago

@X-Ryl669 yeah, that would be a solution too :) Maybe we can make some scientific formula for the saggedness and come up with a calibration test object and the way to calculate the right extrusion increase values using it.