Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FR] ARC & Bezier Support #324

Open
thierryzoller opened this issue Jun 28, 2020 · 15 comments
Open

[FR] ARC & Bezier Support #324

thierryzoller opened this issue Jun 28, 2020 · 15 comments
Labels
new Feature New feature or request

Comments

@thierryzoller
Copy link

thierryzoller commented Jun 28, 2020

Overall explanation: https://bernhardkubicek.soup.io/post/191097625/If-you-have-a-path-of-segments
Slic3r (alpha) implementation code :https://github.com/TheThirdOne/Slic3r/commits/arc-fitting
Academia: https://arxiv.org/pdf/1808.01831.pdf

History

Post Processing

@supermerill supermerill added the new Feature New feature or request label Jun 28, 2020
@yschroeder
Copy link

Some more info to consider:
https://community.octoprint.org/t/new-plugin-anti-stutter-need-testers/18077

There is a plugin for octoprint in the making to convert g1 to g2/g3 post-slicing.

SuperSlicer won't be able to do much more than this when it runs off STL files. Only when slicing STEP files it can do better.

@supermerill
Copy link
Owner

problem is with step-import, is that i need to do offset, difference, union, intersection on polygons. Currently, using clipper, it's possible for a vector of points. If you add bezier curve, it may need a rewrite, be slower, etc...

@n8bot
Copy link

n8bot commented Jun 28, 2020

Let's also keep in mind G5 bezier curves. Maybe G5 bezier curves do not need to be implemented at the same time, but they should be kept in mind so that any STEP file or G2/3 arc code doesn't need to be completely refactored to accommodate future implementation of G5 bezier curves.

See Marlin implementation documentation: https://marlinfw.org/docs/gcode/G005.html

@thierryzoller
Copy link
Author

One idea also would be (if that make sense) to use ARC support for Infill (example, gyroid)

@thierryzoller
Copy link
Author

thierryzoller commented Jun 28, 2020

SuperSlicer won't be able to do much more than this when it runs off STL files. Only when slicing STEP files it can do better.

Superslicer could use this for infill, thus not only postprocessing.

@thierryzoller
Copy link
Author

Personally I am not interested in ARC support because of judder, the recent changes to marlin allowing JD but disabling certain functions solved the issue. I am not getting really round shapes, and there is tons and tons of overhead printing straight lines. Maybe if a slicer could also support another fileformat than stl that would make arc more powerfull as well.

@supermerill
Copy link
Owner

supermerill commented Jun 28, 2020

the gyroid is computed by resolving an equation for each point (step).
outputing curve/bezier for gyroid means redoing it entirely, from the math formula (unless you use the post-processing script mentioned above).

The maybe only "not extremely hard" possibility is for archimedean curves.... not worth it.

for doing offset with bezier... https://stackoverflow.com/questions/4148831/how-to-offset-a-cubic-bezier-curve seems hard or slow.
But step-> polygon with points near enough -> curve seems to be much quicker to do, simpler to code and won't create huge difference.
If we can verify that any deviation is within a set threshold, it should be enough.

@thierryzoller thierryzoller changed the title [FR] ARC Support [FR] ARC & Bezier Support Jun 30, 2020
@ciro1138
Copy link

ciro1138 commented Aug 10, 2020

I am curious if arc support could be added by calculating the arc based on the point sections or take the inside curve of the line sections. I know 3d systems did something like this with there sla software and it made some improvements.

Edit: the way they did the calculation was to take the point segments and form a triangle with the third point at the center of the line segment. Then they took the center point of that triangle to find the arc average.

@yschroeder
Copy link

Arc welder can be used stand alone by compiling an executable. You can use it to post process your file. The octoprint plugin is just a gui for that executable.

@supermerill
Copy link
Owner

And the slicer support will be the same. It's just more convenient.

you can integrate yourself by putting the command in the post-processing field. I don't know the details.

@uis246
Copy link

uis246 commented Jan 31, 2022

Maybe add STEP and CSG support?

@supermerill
Copy link
Owner

@uis246 please... did you read the conversation, or you're a bot?

@uis246
Copy link

uis246 commented Feb 1, 2022

I mean STEP and CSG formats support cylinders and spheres, which makes arc generation possible.
CSG is simplified OpenSCAD export format.

@supermerill
Copy link
Owner

And still, you can't slice & offset them.

@fabse-hack
Copy link

something new about this? .... i think is a great idea !!!!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
new Feature New feature or request
Projects
None yet
Development

No branches or pull requests

7 participants