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

Support generation may take long time, sometimes forever #3656

Open
alexxy opened this issue Jan 5, 2017 · 14 comments
Open

Support generation may take long time, sometimes forever #3656

alexxy opened this issue Jan 5, 2017 · 14 comments

Comments

@alexxy
Copy link

alexxy commented Jan 5, 2017

Version

all versions including latest git master

Operating system type + version

Linux

Behavior

Generation of support material especialy for two extruder setup may take very long time, sometimes forever. I attached example config and stl file (for that generating support may take up to few hours). If needed i can upload file for that support generation takes forever (i wait for 4 days and it didnt finished).

trp-cage_w_sidechains.zip

pdb.zip

@bubnikv
Copy link
Contributor

bubnikv commented Jan 6, 2017

I am currently fine tuning a new support generator. It is pretty fast, the support generation for this model took around 10 seconds with layer height 0.2mm. The code is available as the master of the prusa3d fork, but I do not consider it to be production ready yet, though the results are very promising.

image

The main issue with the original Slic3r support is the complexity of overhang curves, which get summed up, and the complexity of the clipper library boolean and mainly the offset functions, which have at best O(n log n) time complexity, but probably worse in some instances. Cura fights this problem by simplifying the contours by a non-shrinking algorihtm (filling in concave corners only), I am fighting the problem by a discretization into a regular grid, which is the way Simplify3D handles the problem. I will likely extend my code to stretch a shrink-wrap around the contours discretized into the regular grid to achieve smooth curves with low complexity.

@bubnikv
Copy link
Contributor

bubnikv commented Jan 6, 2017

thanks for a great support torture test object anyway. If you have some more, please share them :-)

@bubnikv
Copy link
Contributor

bubnikv commented Jan 6, 2017

By the way, for the following model the original Slic3r did not calculate supports in a whole day. One of the kiss of deaths is the "safety offset" done on a very complex curve. If the safety offset is performed curve after curve separately and then later merged, the complexity of the operation is greatly reduced. I did this change in the prusa3d fork (see the offset functions on ExPolygon and ExPolygons)

Space_marine_365%.zip

@alexxy
Copy link
Author

alexxy commented Jan 10, 2017

I can upload object for which support generation takes forever (waited ~4 days and it didnt finished) if you interested in it =)

@bubnikv
Copy link
Contributor

bubnikv commented Jan 10, 2017

Sure, please go ahead and provide the test case.

To give all the interested a peek into my progress, I am currently fighting with two major issues:

  1. Too much supports are getting generated. Some kind of filtering is needed to remove supports from spots, which are overhangs, but the overhangs are too small to be worth the scars created by the supports. For example, with the bridging perimeters enabled one can print 70 degrees slopes with some level of success and if those overhangs are not too large, one is better off to leave them unsupported.

  2. As usual, with every support implementation one needs to do the test prints to make sure the supports serve their purpose and they are easy to remove.

@alexxy
Copy link
Author

alexxy commented Jan 10, 2017

New example. I'll add one more that will take forever
2l15.zip

@alexxy
Copy link
Author

alexxy commented Jan 10, 2017

Basicaly its a models of proteins and their structures.

@alexxy
Copy link
Author

alexxy commented Jan 10, 2017

This model takes forever
Ribosome_v2.zip

@alexxy
Copy link
Author

alexxy commented Jan 10, 2017

Last one is rendering of CryoEM electron density

@sl42
Copy link

sl42 commented Jan 10, 2017

I have also a small test example from a friend where the slic3r support generation didn't finish.

feder.zip

Thank you very much for improving the support generation

@alexxy
Copy link
Author

alexxy commented Jan 10, 2017

I tryed git master version from prusa3d fork. But it seems doesnt generate support for me

@bubnikv
Copy link
Contributor

bubnikv commented Jan 11, 2017

Thanks for the test objects.

I have created an issue at the prusa3d github fork. I will generate alpha builds likely today. The new support generator works and the supports are not that difficult to remove, but it generates too much of unnecessary supports to my taste.

Once I provide the prusa3d builds, please use the following issue for further communication about the testing of the new supports.
prusa3d/PrusaSlicer#91

@bubnikv
Copy link
Contributor

bubnikv commented Jan 11, 2017

@alexxy what is 2l15 ? I am gonna print it, so I would like to know what I will own :-)

@alexxy
Copy link
Author

alexxy commented Jan 11, 2017

2l15 is a pdb code =) check it here

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants