Non-manifold Edges

Problem14.3dm (732.9 KB)

The attached file contains two closed surfaces. When I try to boolean union them, I get lots of non-manifold edges. The mating areas are on close surface is flat and should be exactly Z=16.675" on both sides.

Apparently, the flat bottom surface of the top part is not being adjusted to match the shape of the bottom when they are joined.

Why is that?
How does one correct?

The mating planar surfaces are not being completely removed when doing the BooleanUnion. One fix is to use ExtractSrf for this surface after the BooleanUnion>Delete it>Explode the model and then Join everything back together to fix those edges. You’ll end up with an additional surface in this workflow too that looks like the one you just extracted and deleted… delete that as well and you should have one closed solid with no non-manifold edges.

This is one of those situations where Rhino has a difficult time because part of the intersection is an overlap and part of the intersection are coincident surfaces. If you select the two parts and run Intersect, you will see that Rhino finds 3 intersection curves instead of one closed loop.

One other workaround that succeeds in this case is to first use BooleanSplit to split the lower part with the upper part, discard the extra bit (the overlap) then BooleanUnion. Here that produces a closed, non-manifold object.

–Mitch

Added to the bug list as http://mcneel.myjetbrains.com/youtrack/issue/RH-31666 .

I’ve been working on this very problem for a while now. Attached is the result I get in my current development build if I call BooleanUnion and pick the lower object first. There are still problems when I pick in the other order.Problem14Complete.3dm (433.2 KB)

Problem15.3dm (234.4 KB)

This does the same, I presume it is the same problem.

Problem16.3dm (592.6 KB)
Here’s one more manifold edge problem but I suspect this is more tricky. When these two are joined, I get a manifold edge. The problem here appear to be that one solid meets the other solid at a point (the way it’s supposed to be).

Is this editable to correct?

This is an image of the parts in my previous post where I have cut away some to show the problem area.

Is there some way to prevent getting a manifold edge where blue comes to red. The way it is supposed to be is that the red overlaps the blue and rests on it.

Sorry for the late reply. Your Problem15 is the same problem as 14. It works correctly in my development code. Problem 16 should have a non-manifold edge where the blue rests against the red. That is the correct answer. The way to eliminate the non-manifold edge is to either move the blue away from the red or have it pass through so some of it gets chopped off.

I thought 14 and 15 were different parts. I have two places where I have to edit like this on the same large component,

They are different parts, but the same problem in that Rhino fails to get a good result for the same reason.

That’s what I thought. They are two different examples of the same problem.