discuss@lists.openscad.org

OpenSCAD general discussion Mailing-list

View all threads

Lazy union problem

J
jamcultur
Sat, Dec 5, 2020 6:07 PM

I tried the lazy-union option in 2020.11.30.ci6340 (git 9a08c222f) using code
that imports a DXF and extrudes it along a Bezier curve. For this test, I
used a DXF with a complex curve and extruded along a cubic Bezier curve. In
2019.05 it took 12 minutes, 43 seconds to render. In 2020.11.30 without lazy
union, it took 13:14. In 2020.11.30 with lazy union, it took much longer,
20:14, and gave a warning message. The STL file generated with lazy union
was more than twice the size of the STL file without lazy union. (Both were
much smaller than the STL file generated by 2019.05, which I assume is
because of the difference between ascii and binary STL files.) I checked the
STLs using Meshmixer. The one generated without lazy union was perfect. The
one generated with lazy union had many errors in the mesh. Do I need to
change something in my code to get lazy union to work properly? Here is the
render output with lazy union:

Rendering Polygon Mesh using CGAL...
WARNING: GeometryEvaluator: Node didn't fit into cache. location unknown
Geometries in cache: 301
Geometry cache size in bytes: 52139248
CGAL Polyhedrons in cache: 0
CGAL cache size in bytes: 0
Total rendering time: 0:20:14.228
Top level object is a list of objects:
Objects:    2
Rendering finished.

Here is the output without lazy union:

Rendering Polygon Mesh using CGAL...
Geometries in cache: 302
Geometry cache size in bytes: 52139248
CGAL Polyhedrons in cache: 1
CGAL cache size in bytes: 93641336
Total rendering time: 0:13:14.294
Top level object is a 3D object:
Simple:        yes
Vertices:    37621
Halfedges:  218446
Edges:      109223
Halffacets: 143210
Facets:      71605
Volumes:        2
Rendering finished.

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

I tried the lazy-union option in 2020.11.30.ci6340 (git 9a08c222f) using code that imports a DXF and extrudes it along a Bezier curve. For this test, I used a DXF with a complex curve and extruded along a cubic Bezier curve. In 2019.05 it took 12 minutes, 43 seconds to render. In 2020.11.30 without lazy union, it took 13:14. In 2020.11.30 with lazy union, it took much longer, 20:14, and gave a warning message. The STL file generated with lazy union was more than twice the size of the STL file without lazy union. (Both were much smaller than the STL file generated by 2019.05, which I assume is because of the difference between ascii and binary STL files.) I checked the STLs using Meshmixer. The one generated without lazy union was perfect. The one generated with lazy union had many errors in the mesh. Do I need to change something in my code to get lazy union to work properly? Here is the render output with lazy union: Rendering Polygon Mesh using CGAL... WARNING: GeometryEvaluator: Node didn't fit into cache. location unknown Geometries in cache: 301 Geometry cache size in bytes: 52139248 CGAL Polyhedrons in cache: 0 CGAL cache size in bytes: 0 Total rendering time: 0:20:14.228 Top level object is a list of objects: Objects: 2 Rendering finished. Here is the output without lazy union: Rendering Polygon Mesh using CGAL... Geometries in cache: 302 Geometry cache size in bytes: 52139248 CGAL Polyhedrons in cache: 1 CGAL cache size in bytes: 93641336 Total rendering time: 0:13:14.294 Top level object is a 3D object: Simple: yes Vertices: 37621 Halfedges: 218446 Edges: 109223 Halffacets: 143210 Facets: 71605 Volumes: 2 Rendering finished. -- Sent from: http://forum.openscad.org/
NH
nop head
Sat, Dec 5, 2020 8:21 PM

I think you would need to add an explicit union where you want a
manifold that can be exported in STL. STL cannot handle overlapping solids.

On Sat, 5 Dec 2020 at 18:08, jamcultur nyponen@gmail.com wrote:

I tried the lazy-union option in 2020.11.30.ci6340 (git 9a08c222f) using
code
that imports a DXF and extrudes it along a Bezier curve. For this test, I
used a DXF with a complex curve and extruded along a cubic Bezier curve. In
2019.05 it took 12 minutes, 43 seconds to render. In 2020.11.30 without
lazy
union, it took 13:14. In 2020.11.30 with lazy union, it took much longer,
20:14, and gave a warning message. The STL file generated with lazy union
was more than twice the size of the STL file without lazy union. (Both were
much smaller than the STL file generated by 2019.05, which I assume is
because of the difference between ascii and binary STL files.) I checked
the
STLs using Meshmixer. The one generated without lazy union was perfect. The
one generated with lazy union had many errors in the mesh. Do I need to
change something in my code to get lazy union to work properly? Here is the
render output with lazy union:

Rendering Polygon Mesh using CGAL...
WARNING: GeometryEvaluator: Node didn't fit into cache. location unknown
Geometries in cache: 301
Geometry cache size in bytes: 52139248
CGAL Polyhedrons in cache: 0
CGAL cache size in bytes: 0
Total rendering time: 0:20:14.228
Top level object is a list of objects:
Objects:    2
Rendering finished.

Here is the output without lazy union:

Rendering Polygon Mesh using CGAL...
Geometries in cache: 302
Geometry cache size in bytes: 52139248
CGAL Polyhedrons in cache: 1
CGAL cache size in bytes: 93641336
Total rendering time: 0:13:14.294
Top level object is a 3D object:
Simple:        yes
Vertices:    37621
Halfedges:  218446
Edges:      109223
Halffacets: 143210
Facets:      71605
Volumes:        2
Rendering finished.

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


OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org

I think you would need to add an explicit union where you want a manifold that can be exported in STL. STL cannot handle overlapping solids. On Sat, 5 Dec 2020 at 18:08, jamcultur <nyponen@gmail.com> wrote: > I tried the lazy-union option in 2020.11.30.ci6340 (git 9a08c222f) using > code > that imports a DXF and extrudes it along a Bezier curve. For this test, I > used a DXF with a complex curve and extruded along a cubic Bezier curve. In > 2019.05 it took 12 minutes, 43 seconds to render. In 2020.11.30 without > lazy > union, it took 13:14. In 2020.11.30 with lazy union, it took much longer, > 20:14, and gave a warning message. The STL file generated with lazy union > was more than twice the size of the STL file without lazy union. (Both were > much smaller than the STL file generated by 2019.05, which I assume is > because of the difference between ascii and binary STL files.) I checked > the > STLs using Meshmixer. The one generated without lazy union was perfect. The > one generated with lazy union had many errors in the mesh. Do I need to > change something in my code to get lazy union to work properly? Here is the > render output with lazy union: > > Rendering Polygon Mesh using CGAL... > WARNING: GeometryEvaluator: Node didn't fit into cache. location unknown > Geometries in cache: 301 > Geometry cache size in bytes: 52139248 > CGAL Polyhedrons in cache: 0 > CGAL cache size in bytes: 0 > Total rendering time: 0:20:14.228 > Top level object is a list of objects: > Objects: 2 > Rendering finished. > > Here is the output without lazy union: > > Rendering Polygon Mesh using CGAL... > Geometries in cache: 302 > Geometry cache size in bytes: 52139248 > CGAL Polyhedrons in cache: 1 > CGAL cache size in bytes: 93641336 > Total rendering time: 0:13:14.294 > Top level object is a 3D object: > Simple: yes > Vertices: 37621 > Halfedges: 218446 > Edges: 109223 > Halffacets: 143210 > Facets: 71605 > Volumes: 2 > Rendering finished. > > > > -- > Sent from: http://forum.openscad.org/ > > _______________________________________________ > OpenSCAD mailing list > Discuss@lists.openscad.org > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org >