Hi,

Guest

ZZ

Zoltán Zörgő

Fri, Sep 17, 2021 11:41 AM

Hello

I am encountering something weird. Maybe somebody can explain or give a

hint as to what I am doing wrong.

Consider following script:

color ("red")

translate ([-19.7,0,-68.28])

rotate ([0,0,180])

polyhedron(

points=[

[20,10,0], // 0

[20,-10,0], // 1

[-8,0,0], // 2

[20,0,28] // 3

],

faces=[

[1,2,3],

[0,2,3],

[0,1,3],

[0,1,2],

]

);

color ("blue")

translate ([-7.09,6.52,-68.28])

rotate ([0,0,54.7])

polyhedron(

points=[

[43,10,0], // 0

[43,-10,0], // 1

[-8,0,0], // 2

[40.4,0,28] // 3

],

faces=[

[1,2,3],

[0,2,3],

[0,1,3],

[0,1,2],

]

);

Which looks like this in preview:

[image: image.png]

However, yields this error when rendering... and an empty drawing:

Compiling design (CSG Tree generation)…

Rendering Polygon Mesh using CGAL…

ERROR: The given mesh is not closed! Unable to convert to

CGAL_Nef_Polyhedron.

ERROR: The given mesh is not closed! Unable to convert to

CGAL_Nef_Polyhedron.

Geometries in cache: 50

Geometry cache size in bytes: 300616

CGAL Polyhedrons in cache: 7

CGAL cache size in bytes: 4911720

Total rendering time: 0:00:00.040

WARNING: No top level geometry to render

Even more strange, if I delete any of the two tetrahedrons from the script,

the remaining one is rendered without problem.

Thank you in advance for any advice.

Hello
I am encountering something weird. Maybe somebody can explain or give a
hint as to what I am doing wrong.
Consider following script:
color ("red")
translate ([-19.7,0,-68.28])
rotate ([0,0,180])
polyhedron(
points=[
[20,10,0], // 0
[20,-10,0], // 1
[-8,0,0], // 2
[20,0,28] // 3
],
faces=[
[1,2,3],
[0,2,3],
[0,1,3],
[0,1,2],
]
);
color ("blue")
translate ([-7.09,6.52,-68.28])
rotate ([0,0,54.7])
polyhedron(
points=[
[43,10,0], // 0
[43,-10,0], // 1
[-8,0,0], // 2
[40.4,0,28] // 3
],
faces=[
[1,2,3],
[0,2,3],
[0,1,3],
[0,1,2],
]
);
Which looks like this in preview:
[image: image.png]
However, yields this error when rendering... and an empty drawing:
Compiling design (CSG Tree generation)…
Rendering Polygon Mesh using CGAL…
ERROR: The given mesh is not closed! Unable to convert to
CGAL_Nef_Polyhedron.
ERROR: The given mesh is not closed! Unable to convert to
CGAL_Nef_Polyhedron.
Geometries in cache: 50
Geometry cache size in bytes: 300616
CGAL Polyhedrons in cache: 7
CGAL cache size in bytes: 4911720
Total rendering time: 0:00:00.040
WARNING: No top level geometry to render
Even more strange, if I delete any of the two tetrahedrons from the script,
the remaining one is rendered without problem.
Thank you in advance for any advice.

HL

Hans L

Fri, Sep 17, 2021 1:41 PM

Half of your faces have the wrong winding order.

https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/The_OpenSCAD_Language#Mis-ordered_faces

On Fri, Sep 17, 2021 at 6:42 AM Zoltán Zörgő zoltan.zorgo@gmail.com wrote:

Hello

I am encountering something weird. Maybe somebody can explain or give a

hint as to what I am doing wrong.

Consider following script:

color ("red")

translate ([-19.7,0,-68.28])

rotate ([0,0,180])

polyhedron(

points=[

[20,10,0], // 0

[20,-10,0], // 1

[-8,0,0], // 2

[20,0,28] // 3

],

faces=[

[1,2,3],

[0,2,3],

[0,1,3],

[0,1,2],

]

);

color ("blue")

translate ([-7.09,6.52,-68.28])

rotate ([0,0,54.7])

polyhedron(

points=[

[43,10,0], // 0

[43,-10,0], // 1

[-8,0,0], // 2

[40.4,0,28] // 3

],

faces=[

[1,2,3],

[0,2,3],

[0,1,3],

[0,1,2],

]

);

Which looks like this in preview:

[image: image.png]

However, yields this error when rendering... and an empty drawing:

Compiling design (CSG Tree generation)…

Rendering Polygon Mesh using CGAL…

ERROR: The given mesh is not closed! Unable to convert to

CGAL_Nef_Polyhedron.

ERROR: The given mesh is not closed! Unable to convert to

CGAL_Nef_Polyhedron.

Geometries in cache: 50

Geometry cache size in bytes: 300616

CGAL Polyhedrons in cache: 7

CGAL cache size in bytes: 4911720

Total rendering time: 0:00:00.040

WARNING: No top level geometry to render

Even more strange, if I delete any of the two tetrahedrons from the

script, the remaining one is rendered without problem.

Thank you in advance for any advice.

OpenSCAD mailing list

To unsubscribe send an email to discuss-leave@lists.openscad.org

Half of your faces have the wrong winding order.
https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/The_OpenSCAD_Language#Mis-ordered_faces
On Fri, Sep 17, 2021 at 6:42 AM Zoltán Zörgő <zoltan.zorgo@gmail.com> wrote:
> Hello
>
> I am encountering something weird. Maybe somebody can explain or give a
> hint as to what I am doing wrong.
>
> Consider following script:
>
> color ("red")
> translate ([-19.7,0,-68.28])
> rotate ([0,0,180])
> polyhedron(
> points=[
> [20,10,0], // 0
> [20,-10,0], // 1
> [-8,0,0], // 2
> [20,0,28] // 3
> ],
> faces=[
> [1,2,3],
> [0,2,3],
> [0,1,3],
> [0,1,2],
> ]
> );
>
> color ("blue")
> translate ([-7.09,6.52,-68.28])
> rotate ([0,0,54.7])
> polyhedron(
> points=[
> [43,10,0], // 0
> [43,-10,0], // 1
> [-8,0,0], // 2
> [40.4,0,28] // 3
> ],
> faces=[
> [1,2,3],
> [0,2,3],
> [0,1,3],
> [0,1,2],
> ]
> );
>
>
> Which looks like this in preview:
> [image: image.png]
>
> However, yields this error when rendering... and an empty drawing:
>
> Compiling design (CSG Tree generation)…
> Rendering Polygon Mesh using CGAL…
> ERROR: The given mesh is not closed! Unable to convert to
> CGAL_Nef_Polyhedron.
> ERROR: The given mesh is not closed! Unable to convert to
> CGAL_Nef_Polyhedron.
> Geometries in cache: 50
> Geometry cache size in bytes: 300616
> CGAL Polyhedrons in cache: 7
> CGAL cache size in bytes: 4911720
> Total rendering time: 0:00:00.040
> WARNING: No top level geometry to render
>
>
> Even more strange, if I delete any of the two tetrahedrons from the
> script, the remaining one is rendered without problem.
>
>
> Thank you in advance for any advice.
> _______________________________________________
> OpenSCAD mailing list
> To unsubscribe send an email to discuss-leave@lists.openscad.org
>

JB

Jordan Brown

Fri, Sep 17, 2021 4:46 PM

On 9/17/2021 6:41 AM, Hans L wrote:

Half of your faces have the wrong winding order.

Yes.

Comment out the "color" settings, because they confuse the issue, and

then select View / Thrown Together, and F5.

Note that some of your faces are yellow (good) and some of your faces

are purple (bad). You need to reverse the order of the vertices in the

purple faces, until all of the faces are yellow. Here's what that looks

like:

Also, a hint: when offering a program for analysis, brutally strip out

everything that is not necessary to demonstrate the problem. Don't make

the reader understand anything other than that. The rotates and

translates in your program are not necessary to demonstrate the problem,

except perhaps a translate to keep the polyhedra from overlapping. Make

the numbers as simple as possible.

Here's such a simplified version of your example:

```
polyhedron(
points=[
[10,10,0], // 0
[10,0,0], // 1
[0,0,0], // 2
[10,0,10] // 3
],
faces=[
[1,2,3],
[0,2,3],
[0,1,3],
[0,1,2],
]
);
translate([20,0,0]) polyhedron(
points=[
[10,10,0], // 0
[10,0,0], // 1
[0,0,0], // 2
[10,0,10] // 3
],
faces=[
[1,2,3],
[0,2,3],
[0,1,3],
[0,1,2],
]
);
```

On 9/17/2021 6:41 AM, Hans L wrote:
> Half of your faces have the wrong winding order.
Yes.
Comment out the "color" settings, because they confuse the issue, and
then select View / Thrown Together, and F5.
Note that some of your faces are yellow (good) and some of your faces
are purple (bad). You need to reverse the order of the vertices in the
purple faces, until all of the faces are yellow. Here's what that looks
like:
Also, a hint: when offering a program for analysis, brutally strip out
everything that is not necessary to demonstrate the problem. Don't make
the reader understand anything other than that. The rotates and
translates in your program are not necessary to demonstrate the problem,
except perhaps a translate to keep the polyhedra from overlapping. Make
the numbers as simple as possible.
Here's such a simplified version of your example:
polyhedron(
points=[
[10,10,0], // 0
[10,0,0], // 1
[0,0,0], // 2
[10,0,10] // 3
],
faces=[
[1,2,3],
[0,2,3],
[0,1,3],
[0,1,2],
]
);
translate([20,0,0]) polyhedron(
points=[
[10,10,0], // 0
[10,0,0], // 1
[0,0,0], // 2
[10,0,10] // 3
],
faces=[
[1,2,3],
[0,2,3],
[0,1,3],
[0,1,2],
]
);

Replying to:

Empathy v1.0
2021 ©Harmonylists.com