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

Carsten Arnholm arnholm at arnholm.org
Sun Nov 17 07:55:18 EST 2019

Discussing 2 cubes sharing an edge:

On 17.11.2019 04:19, Michael Marx wrote:
> So the problem is still there. A slicer would still need to figure out 
> whether to do a left or right turn in the middle.

No it does not have such a dilemma.

I would say it is a misunderstanding to present this as a problem. There 
is nothing wrong with this model, it is just not 2-manifold everywhere. 
1-manifold edges are a problem, but this 4-manifold edge is not.

The 2 subvolumes are well defined, and that is all that is required by a 
slicer. A slicer works by slicing (surprise!) the model into horizontal 
cuts with a constant thickness equal to the plastic extrusion height. 
The software needs to determine the polygons to be filled with plastic 
and do it using plastic extrusion paths. There is no problem with this 
case whether the edge is shared or duplicated, the slicer task is 
equally well defined in both cases.

> To me (not someone who studies this topic mathematically) it boils down 
> to: is it two objects or one?

That question is purely philosophical. It does not matter from a slicer 
point of view. Topologically, if there is a shared edge, it is one mesh.

> What says that the surface of one cube is a continuation of the surface 
> of the other? Or not?

That is of no interest to a slicer or the question of sharing models 
between applications.

When you drive down a road and the road splits in two like a Y, does it 
matter whether one or the other arms of the Y is considered a 
continuation of the road you were driving on?

> Isn't it inherently ambiguous?

The answer is no.

> So something has to be done to consider it one way or the other.

No, that is not necessary.

> I'm suggesting that OpenSCAD remove the ambiguity of touching 
> non-manifolds too, by adding the smallest amount of solid to the edge.

It is not required and it is not solving anything. Certainly it would 
create new problems if you tried.

Carsten Arnholm

More information about the Discuss mailing list