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

Michael Marx michael at marx.id.au
Sat Nov 16 22:19:02 EST 2019


 

I only have Netfabb Basic, which doesn't do automatic repairs,

 

Same here, it does have automatic repairs for some things; see Extra/Repair-part. Basic does not
fix self-intersections :-( tho.

That, plus the extra Export repair, is what I applied in my earlier email. The Export repair split
the non-manifold edge as I described.

 

When import into MeshLab, it detects corruption, and asks if I want to repair it. The dialog says
"Unify duplicated vertices?".

 

In my experience this is not 'detecting' corruption, it asks that for all STLs.

It does seem to handle bad STLs (I mean really bad like some of the 3D scans), better when you do
unify them, but for others it doesn't seem to do much if anything.

It has not fixed the non-manifold edge, see Render/Show-non-manif-edges (and vertices),
(show-non-faux-edges & show-vertex-dots are good too).

 



 

 

Then I export to an OBJ file, which includes topology information. Then, when I import that same
OBJ file into MeshLab, it does not report any errors.

 

With the above options, MeshLab shows that the OBJ still has the non-manifold edge. I couldn't
check OFF, my older MeshLab doesn't have it, the latest doesn't run via RDP...

 

When loading OBJ into Netfabb, Repair/Detect-self-intersections, highlights the line. [what that
means to the future of humanity, nobody knows...]

 

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.

 

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

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

 

Isn't it inherently ambiguous?

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

One could consider some 'accepted practice' [in a particular context] that says, hell they are
touching, so why not consider them whole?

Or, as the designer clearly didn't insert one within the surface of the other, they must have
wanted them separate, so make it so.

 

OpenSCAD already does the former, for:

cube(10);

translate([10,0,0]) cube(10);

That is a solid 20x10x10, no question about it.

OpenSCAD doesn't need to do anything out of the ordinary to do so though.

 

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

 

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openscad.org/pipermail/discuss_lists.openscad.org/attachments/20191117/66327f72/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image002.jpg
Type: image/jpeg
Size: 15416 bytes
Desc: not available
URL: <http://lists.openscad.org/pipermail/discuss_lists.openscad.org/attachments/20191117/66327f72/attachment.jpg>


More information about the Discuss mailing list