[OpenSCAD] Discuss manifoldness, co-incident faces edges etc

nop head nop.head at gmail.com
Fri Nov 15 04:30:30 EST 2019

I think those three steps are exactly what union does. The only
difference is the faces belong to two separate objects instead of being
from the same object. So perhaps the source code for a union operation can
be hacked to union an object with itself. A unary union!

On Fri, 15 Nov 2019 at 09:15, <arnholm at arnholm.org> wrote:

> On 2019-11-15 09:15, nop head wrote:
> > If you can partition the self-overlapping object into separate
> > sections that don't self overlap but do overlap each other than they
> > can be unioned back together. So perhaps the solution lies that way.
> That sounds as complicated as the original problem, maybe more so.
> Partitioning is not so easy, it is the kind of thing that is done in
> Minkowski.
> Here is a rough sketch of I think it could be done (ignoring the issue
> of property resolution):
> Assume we start with a clean 2-manifold solid, potentially self
> overlapping.
> Stage 1 is to detect whether self overlapping has indeed happened. I
> think this must be done by discovering face/face intersections between
> faces of the solid.
> Stage 2 is to imprint the intersection edges on those faces, i.e. split
> them creating N-manifold edges. When all intersections are done, you
> have some internal faces with no outside.
> Stage 3 is to identify those internal faces and remove them.  This is
> tricky. The candidates are faces referring to N-manifold edges where
> N>2, but it is not a sufficient criterion. However if you can identify
> the internal faces and remove them, the result is 2-manifold.
> Carsten Arnholm
> _______________________________________________
> OpenSCAD mailing list
> Discuss at lists.openscad.org
> http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openscad.org/pipermail/discuss_lists.openscad.org/attachments/20191115/d38b81c6/attachment.html>

More information about the Discuss mailing list