Discussion:
[OpenSCAD] openScad + STL cannot render
Helmut Deichmann
2018-01-31 14:40:05 UTC
Permalink
Hello,

I dit often now try to put an STL file upon the object created with openScad.
Each time when I do render this the STL objekt is simply gone.

Even as I created elefants with openScad and did put on the speaker box I ceated I could not render it.
On the other hand the STL objekt it self I can render. So no problem inside.

Senciely

Helmut Deichmann
cbernhardt
2018-01-31 19:57:37 UTC
Permalink
I believe the problem might be caused by the normal vectors in the STL file.
To test this I drew a 100 x 100 x 100 cube in AutoCAD and randomly drew
3DFACES (three dimensional triangular facets) to cover each side, 12
triangles total. I then exported the cube as an STL file, calculating the
normal vector of each triangle as the cross product of the first two sides
as drawn.

When I imported the cube.stl file into OpenSCAD it previewed (F5) and
rendered (F6) correctly but when I added an OpenSCAD object (i.e. an
extruded polygon) both objects previewed correctly but rendering (F6) caused
the STL object to disappear.

I wrote a routine inside AutoCAD to display the normal vectors when
importing an STL file and discovered that some of them, depending on the
direction in which the triangle had been drawn, did not point to the outside
of the cube. After redrawing the suspect triangles so that all normal
vectors pointed to the outside of the cube, everything worked correctly in
OpenSCAD.

I don't know if there is a program to automatically "fix" the normal
vectors. Perhaps some of the more experienced OpenSCAD users know of such a
program??

Charles



--
Sent from: http://forum.openscad.org/
Chris Camacho
2018-01-31 20:03:49 UTC
Permalink
I don't know about the likes of AutoCAD as I'm too tight to buy
propriety software and comfortable with my tin foil hat.....

however in blender you can "recalculate outside", "recalculate inside"
and also flip normals

You can also display normals which I usually do, just as a quick check...
Post by cbernhardt
I believe the problem might be caused by the normal vectors in the STL file.
To test this I drew a 100 x 100 x 100 cube in AutoCAD and randomly drew
3DFACES (three dimensional triangular facets) to cover each side, 12
triangles total. I then exported the cube as an STL file, calculating the
normal vector of each triangle as the cross product of the first two sides
as drawn.
When I imported the cube.stl file into OpenSCAD it previewed (F5) and
rendered (F6) correctly but when I added an OpenSCAD object (i.e. an
extruded polygon) both objects previewed correctly but rendering (F6) caused
the STL object to disappear.
I wrote a routine inside AutoCAD to display the normal vectors when
importing an STL file and discovered that some of them, depending on the
direction in which the triangle had been drawn, did not point to the outside
of the cube. After redrawing the suspect triangles so that all normal
vectors pointed to the outside of the cube, everything worked correctly in
OpenSCAD.
I don't know if there is a program to automatically "fix" the normal
vectors. Perhaps some of the more experienced OpenSCAD users know of such a
program??
Charles
--
Sent from: http://forum.openscad.org/
_______________________________________________
OpenSCAD mailing list
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Antonio Bueno
2018-01-31 20:05:05 UTC
Permalink
You can check and fix the normals of an STL with the --normal-directions
option of *ADMesh*:
https://admesh.readthedocs.io/en/latest/cli.html#options
Post by cbernhardt
I believe the problem might be caused by the normal vectors in the STL file.
To test this I drew a 100 x 100 x 100 cube in AutoCAD and randomly drew
3DFACES (three dimensional triangular facets) to cover each side, 12
triangles total. I then exported the cube as an STL file, calculating the
normal vector of each triangle as the cross product of the first two sides
as drawn.
When I imported the cube.stl file into OpenSCAD it previewed (F5) and
rendered (F6) correctly but when I added an OpenSCAD object (i.e. an
extruded polygon) both objects previewed correctly but rendering (F6) caused
the STL object to disappear.
I wrote a routine inside AutoCAD to display the normal vectors when
importing an STL file and discovered that some of them, depending on the
direction in which the triangle had been drawn, did not point to the outside
of the cube. After redrawing the suspect triangles so that all normal
vectors pointed to the outside of the cube, everything worked correctly in
OpenSCAD.
I don't know if there is a program to automatically "fix" the normal
vectors. Perhaps some of the more experienced OpenSCAD users know of such a
program??
Charles
--
Sent from: http://forum.openscad.org/
_______________________________________________
OpenSCAD mailing list
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
--
Saludos,
Antonio
Parkinbot
2018-01-31 21:29:27 UTC
Permalink
OpenSCAD like most other programms doesn't make use of the normals at all. It
recalcs them from the vertices. You can check that by rendering and
exporting

cube(10);

e.g. to my.stl. Open the STL with an editor and modify the normals as you
like. Then import the result and check:

import("my.stl");
cube(1);





--
Sent from: http://forum.openscad.org/
hdeichmann
2018-02-01 16:35:44 UTC
Permalink
Hello found my problem, my Laptop has no enough memory. I have Importe the upper part of the speak er as stl. It us running and cab be redndert very fast, perhaps couse made with openScad. So I selected Another stl File and did render. What I had to see was the spwaker part was missing and the elephan was there. Problem is clear now.Thanks for the replay.
Helmut Deichmann 


Von meinem Samsung GerÀt gesendet.

-------- UrsprÃŒngliche Nachricht --------
Von: Parkinbot <***@parkinbot.com>
Datum: 31.01.18 22:29 (GMT+01:00)
An: ***@lists.openscad.org
Betreff: Re: [OpenSCAD] openScad + STL cannot render

OpenSCAD like most other programms doesn't make use of the normals at all. It
recalcs them from the vertices. You can check that by rendering and
exporting

cube(10);

e.g. to my.stl. Open the STL with an editor and modify the normals as you
like. Then import the result and check:

import("my.stl");
cube(1);





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

Loading...