openscad crash w/ degenerate polyhedra

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

openscad crash w/ degenerate polyhedra

Carl Witty
Hi.  I'm trying to model a tetrahemihexahedron
(http://en.wikipedia.org/wiki/Tetrahemihexahedron).  This is a
non-orientable surface, so it can't be modeled using a single
"polyhedron" command.  Instead, I decided to try to model it as the
union of 7 degenerate polyhedra (where a degenerate polyhedron has
only two faces, "back-to-back"), 3 squares and 4 triangles; this
crashed openscad.  (Yes, I could easily model it with 4 equilateral
triangles and 12 right isosceles triangles; but that would be less
easy with other, more complicated polyhedra.  This is supposed to be
the test case for a general technique.)

The "compile" and the OpenCSG work fine; it's only render that makes it crash.

Carl Witty

Here's the file:

// polyhedron(points = [[0, 0, -1], [1, 0, 0], [-1, 0, 0], [0, -1, 0],
[0, 1, 0], [0, 0, 1]],
//  triangles = [[0, 1, 5, 2], [0, 2, 3], [0, 3, 5, 4], [4, 1, 0],
[1, 4, 2, 3], [5, 3, 1], [4, 5, 2]]);

polyhedron(points = [[0, 0, -1], [1, 0, 0], [-1, 0, 0], [0, -1, 0],
[0, 1, 0], [0, 0, 1]],
 triangles = [[0, 1, 5, 2], [2, 5, 1, 0]]);
polyhedron(points = [[0, 0, -1], [1, 0, 0], [-1, 0, 0], [0, -1, 0],
[0, 1, 0], [0, 0, 1]],
 triangles = [[0, 2, 3], [3, 2, 0]]);
polyhedron(points = [[0, 0, -1], [1, 0, 0], [-1, 0, 0], [0, -1, 0],
[0, 1, 0], [0, 0, 1]],
 triangles = [[0, 3, 5, 4], [4, 5, 3, 0]]);
polyhedron(points = [[0, 0, -1], [1, 0, 0], [-1, 0, 0], [0, -1, 0],
[0, 1, 0], [0, 0, 1]],
 triangles = [[4, 1, 0], [0, 1, 4]]);
polyhedron(points = [[0, 0, -1], [1, 0, 0], [-1, 0, 0], [0, -1, 0],
[0, 1, 0], [0, 0, 1]],
 triangles = [[1, 4, 2, 3], [3, 2, 4, 1]]);
polyhedron(points = [[0, 0, -1], [1, 0, 0], [-1, 0, 0], [0, -1, 0],
[0, 1, 0], [0, 0, 1]],
 triangles = [[5, 3, 1], [1, 3, 5]]);
polyhedron(points = [[0, 0, -1], [1, 0, 0], [-1, 0, 0], [0, -1, 0],
[0, 1, 0], [0, 0, 1]],
 triangles = [[4, 5, 2], [2, 5, 4]]);