arc-overhang
arc-overhang copied to clipboard
Gradual transition from arcs to concentric perimeter
2 stages:
- Print some number of regular arcs. Need to figure out when to stop and move to 2
- Have 2 curves: outline of already printed shape A, target shape B The goal is to interpolate between A and B. Divide each of them into N segments of equal lengths A0, A1, ... AN - points of curve A B0, B1, ... BN - points of curve B Build points of intermediate curves C with LERP(Ai, Bi, c) This will require variable flow rate. It looks like flow rate in any i-th point is proportional to the length of AiBi line.
Caveat - I'm not sure how to avoid concave segments
Looks like a solid idea. You may be able to forget about arcs entirely. I'm not sure that the concave shapes will be an issue as long as there is sufficient overlap between lines.
For starters I'll keep arcs, they should help in case of odd shapes. Seems like even spacing on both sides is not the right way to go, should try even spacing on one side and project those points to another side
Projection looks like this
Even with those gaps it may be a way to go. Time to generate some contours
left faint interpolation rails in background
distance between lines is less than line_width most of the time as number of contours is selected in a way to not exceed it in the widest areas
probably after generating rails it's worth finding widest gaps and add extra points there
latest version, still only drawing, no gcode
Woah!! Looks amazing! Hope you don't mind, I shared your progress on my Instagram: https://www.instagram.com/p/CmkG-vQSK9o/
Sure! However, I did not continue with this idea today to explore another one, I'll create a separate issue for that later. In this approach I'm concerned that I need to maintain line width of 0.35 on widest sections but as result on most of the contour it's around 0.15-0.20
Another idea is kinda flood approach, it's a little buggy at the moment, but has much better performance and consistent line widths
sorry for teasing it like that, all the work is in my fork main branch for this issue and floodfill2 branch for todays idea https://github.com/ServAlex/arc-overhang/tree/main