CGAL error in CGAL_Nef_polyhedron3(): CGAL ERROR: assertion violation!

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

CGAL error in CGAL_Nef_polyhedron3(): CGAL ERROR: assertion violation!

Mekko
I have reduced a problem to the following code:

points=[[-0.95, -0.95, 0.9525], [-0.95, 0, 0.05], [-0.95, 0.95, -0.8525],
[0, -0.95, 0.05], [0, 0, 0.05], [0, 0.95, 0.05], [0.95, -0.95, -0.8525],
[0.95, 0, 0.05], [0.95, 0.95, 0.9525], [-0.95, -0.95, 0.8525], [-0.95, 0,
-0.05], [-0.95, 0.95, -0.9525], [0, -0.95, -0.05], [0, 0, -0.05], [0, 0.95,
-0.05], [0.95, -0.95, -0.9525], [0.95, 0, -0.05], [0.95, 0.95, 0.8525]];


faces = [[0, 1, 4], [1, 2, 5], [3, 4, 7], [4, 5, 8], [0, 4, 3], [1, 5, 4],
[3, 7, 6], [4, 8, 7], [9, 13, 10], [10, 14, 11], [12, 16, 13], [13, 17, 14],
[9, 12, 13], [10, 13, 14], [12, 15, 16], [13, 16, 17], [0, 6, 9], [9, 6,
15], [6, 8, 15], [15, 8, 17], [0, 11, 2], [11, 0, 9], [8, 2, 11], [11, 17,
8]];


polyhedron(points, faces);

polyhedron(points, faces);

F5 is fine but F6 triggers an error message:
ERROR: CGAL error in CGAL_Nef_polyhedron3(): CGAL ERROR: assertion
violation! Expr: e->incident_sface() != SFace_const_handle() File:
/opt/mxe/usr/i686-w64-mingw32.static/include/CGAL/Nef_S2/SM_const_decorator.h
Line: 326

If I remove one of the polyhedron() calls, everything's fine. That's not a
usable fix, however, because I'm building a complex shape out of this
polyhedron and need to render it multiple times.

I looked at the .STL in MeshLab and couldn't find any problems (though I
don't know MeshLab very well) so I'm puzzled.

Can someone help me understand what I am doing wrong here? Thanks!



--
Sent from: http://forum.openscad.org/

_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Reply | Threaded
Open this post in threaded view
|

Re: CGAL error in CGAL_Nef_polyhedron3(): CGAL ERROR: assertion violation!

adrianv
Are you actually running polyhedron twice?  If so, why?  I am only able to
get that error when I include the doubled call to polyhedron.  I'm not sure
why that should be an error, but I never saw it with just one call.  



--
Sent from: http://forum.openscad.org/

_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Reply | Threaded
Open this post in threaded view
|

Re: CGAL error in CGAL_Nef_polyhedron3(): CGAL ERROR: assertion violation!

adrianv
In reply to this post by Mekko
Ok, so I looked at your example and didn't read your text very closely:  I
thought it was weird that you were creating two copies of the same shape on
top of each other, but I realized upon further testing that it doesn't
matter where the two copies of the polyhedron are.   I checked the face
orientation and it appears to be correct (clockwise).  

Have you tried removing sections of the polyhedron?  



--
Sent from: http://forum.openscad.org/

_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Reply | Threaded
Open this post in threaded view
|

Re: CGAL error in CGAL_Nef_polyhedron3(): CGAL ERROR: assertion violation!

Mekko
Actually, I just figured out what the problem was and I'm embarrassed to say
it's a mistake I've made before - sorry to waste time and space on this
forum!

(The error was that the polyhedron has some edge faces that need to include
*all* the vertices of triangles that the edge facese line up against.)



--
Sent from: http://forum.openscad.org/

_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org