-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
path_extrudes() not loved by Manifold (or even CGAL, maybe...) #5086
Comments
@butcherg You need to include scad code which reproduces the issue. |
https://github.com/butcherg/DRG_168/blob/main/scad/cistern.scad Edit: To run cistern.scad, it's more straightforward to clone the whole repo as there are other files in the repo tree upon which the script depends. |
If you want to make it easy to track an issue it would be great if you can provide a short code snipped that produces the issue without needing any external files. I understand this is more work for you, but this would help the dev people to have a look without costing them much time. |
A more minimal test would indeed be great. In the meantime: @pca006132 This is the stack trace - looks like an exception thrown when calling the Manifold constructor.
|
So, I took cistern.scad and did an "elimnation by comment", and I isolated the behavior to the trim() module. This module calls others that do various path_extrude() to make "rope" trim on the cistern top edges. So, I worked through each module call individually, none gave anything other than a perfect Manifold render. But, when I uncommented them all, I go the error I originally reported. And, since I did this in the GUI, I got a dialog complaining of a critical error and the program stopped doing any rendering, preview or mesh. For any path_extrude(), I'm getting multiples of:
and in most cases it appears the repair works. Only for cistern.scad does it crash, of note it also crashes with CGAL. This same script worked without even a NotManifold error with as recently as a March nightly. I apologize, I don't know how to cut this up to make a performant snippet... |
The hard crash is likely a separate issue, so let's deal with that separately. |
We optimized the Manifold interface code quite a bit around mid-March, so we probably uncovered some instability. |
@pca006132 I slimmed down the example to this. Note: Lots of very close vertices:
|
I do think this is a bug in manifold, at least we should not crash. I am still a bit busy recently, will look into in details a bit later. |
This may be a partial duplicate of #4824 Note: There are two separate places where Manifold throws this exception:
|
Describe the bug
terminate called after throwing an instance of 'std::out_of_range'
what(): Vec out of range
Thread 1 "openscad" received signal SIGABRT, Aborted.
__pthread_kill_implementation (no_tid=0, signo=6, threadid=140737251305408) at .
To Reproduce
$ openscad --enable=manifold --enable=lazy-union --export-format binstl -o cistern.stl cistern.scad
Expected behavior
A clear and concise description of what you expected to happen.
Code reproducing the issue
I've narrowed it down to path extrude operations, both BOSL2 path_sweep() and a path_extrude() I downloaded from Thingiverse
Environment and Version info (please complete the following information):
Library & Graphics card information
If applicable, add the content of the Help->Library Info window, or the output of running the
openscad --info
command.Ubuntu, from the command line:
./openscad --info
Additional context
Here's a stack trace from a gdb run of the Ubuntu executable:
The text was updated successfully, but these errors were encountered: