Discussion:
[OpenSCAD] non-manifold?
Kenneth Sloan
12 years ago
Permalink
Why is this not a manifold surface? Is this a bug in OpenSCAD? How can I work around it?
Marius Kintel
12 years ago
Permalink
Post by Kenneth Sloan
Why is this not a manifold surface? Is this a bug in OpenSCAD? How can I work around it?
Hm, it looks like you have a freak intersection exactly on four point on your cylinder, causing it to create four linear objects with no volume.
Making your cylinder a tiny bit smaller seems to fix it.

-Marius
Kenneth Sloan
12 years ago
Permalink
Ah…I thought it might have been the many coincidental points of intersection. I fixed it
by offsetting the three sets of cross beams by +/0/- epsilon (the beams are 1mm, epsilon is 0.01mm).

That produced some slivers at the boundary of the cylinder, so I ALSO reduced the size of the cylinder by epsilon.

It's all good now - all of these features are just at the limit of what my PLA printer will print so that the resulting object is robust (i.e., doesn't fall apart).

But…now I wonder - it seems that OpenSCAD has a design decision to NOT export STL if the result is not manifold. I think this is a mistake (especially since there are no tools to help you fix the non-manifold vertices, or even LOCATE them). In my opinion, a better choice would be to output the STL with a warning (STL is perfectly capable of representing all sorts of evil surfaces!). Then, I could use MeshLab or netfabb to repair the mesh. As it is, I can't get my hands on the mesh to try to repair it.

or…can I? Is there something I'm missing?

--
Kenneth Sloan
...
Don Bright
12 years ago
Permalink
It is theoretically possible to go directly to STL but it requires some
modifications to OpenSCAD. Here is why.

OpenSCAD uses the cgal.org geometry engine. OpenSCAD uses 2 of CGAL's
representation of 3d shapes

1. Nef Polyhedron
2. "Ordinary" Polyhedron

Nef poly are used to do boolean ops, while 'ordinary' poly are used to do
file output. CGAL requires that conversion from Nef poly to 'ordinary' poly
be done only on 2 manifold shapes.

To skip this conversion, the programmer could dig into the Nef poly data
structure and pull out triangles. Its quite a bit of work.

-DB
...
Don Bright
12 years ago
Permalink
Oh, and if people want this feature they could perhaps support the effort
to implement it by raising a bounty. Bounties are linked off the github
issue tracker to BountySource. Here is the github issue for direct export
of non-manifold STL . and the BS link. thanks.

https://github.com/openscad/openscad/issues/337

https://www.bountysource.com/#issues/286575-export-directly-to-stl-from-nef-polyhedron-w-o-manifold-check

-DB
...
Triffid Hunter
12 years ago
Permalink
Post by Kenneth Sloan
Why is this not a manifold surface? Is this a bug in OpenSCAD? How can I work around it?
suggest using difference instead of intersection, it'll render a lot faster!
Marius Kintel
12 years ago
Permalink
Post by Kenneth Sloan
Why is this not a manifold surface? Is this a bug in OpenSCAD? How can I work around it?
PS! View->Show Edges might help see what happened.

-Marius

Continue reading on narkive:
Loading...