[OpenSCAD] avoiding assertion violation
rcmpersiano at gmail.com
Wed Jul 17 17:44:42 EDT 2019
Em qua, 17 de jul de 2019 às 15:00, Carsten Arnholm <arnholm at arnholm.org>
> Therefore, the problem seen in OpenSCAD is not really in rotate_extrude,
> but how the model is interpreted when subject to union using CGAL. The
> same union using Carve works fine as should be expected.
CGAL seems to be very strict: it doesn't do boolean operations with a
non-manifold. Considering your experiment, I am led to believe that Carve
is complacent with some non-manifoldness when doing boolean operations.
To confirm it, I have examined the OFF file exported by OpenSCAD for your
rotate_extrude() example (without the cube(), of course). The topological
information in the OFF file indicates that there are 12 faces incident to
vertex index 0. Those faces are the triangles pointing to [0,0,0] from the
top (6) and from the bottom (6). So no neighborhood of the vertex 0 is
homeomorphic to a disc in the plane. So, the topology represented in the
OFF file generated by OpenSCAD is not of a manifold.
Summarizing, OpenSCAD may generate and export non-manifold objects. CGAL
doesn't accept to do boolean operations involving non-manifold. Carve seems
to be complacent with some non-manifoldness even in boolean operations. It
is worth to observe that the union of the cube to the rotate_extrude is
still a non-manifold object.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Discuss