Boolean Add Problem

In the attached I have three closed surfaces. I want to add the red to the purple. It refuses to do so. If I intersect, I get a discontinuous curve. However, it appears that the red surface significantly overlaps the purple. I was wondering how this discontinuity occurs.

The blue shape is a solid with the same profile as the opening in the purple. It too will not add with the red. Again I am puzzled why do not get an closed intersection.

I was wondering if someone could explain why?

Problem Add 3.3dm (287.6 KB)

Hi Jim - x the purple thing has some edges that are way out of tolerance - use Explode and RebuildEdges, then Join again and ShowEdges to see where there are problems. The red thing has at least one surface that is very skinny and appears to have edges that cross each other. Clean that stuff up and there’s at least a chance…


You don’t get a closed intersection because your assumptions about how Rhino creates an intersection curve are flawed. This is an example of how learning to model without booleans would make you much more proficient. One thing you would learn is that Rhino is creating the intersection curve surface by surface. Whether the surfaces are part of a solid (closed polysurface) is not important to getting a good and useful intersection curve.

In the enclosed file are your 2 objects reduced to just the surfaces that are relevant to the issue of finding a good intersection. When you add more surfaces than the minimum needed that doesn’t improve the chances of getting a good complete intersection. In fact the whole flawed process of trying to create 2 intersecting solids in order to make a boolean succeed is often the very process that introduces the errors that leads to a defective or useless intersection curve and thus a failed boolean.

NoAdd_NoProblem.3dm (99.6 KB)

In my file you can just select the 2 objects (cyan and black) and run the Trim command, then pick the parts you want trimmed off and then after trimming both objects hit the Join button.

You can compare the edges in my file to the edges in your file to see how far off the trimmed boundaries are in your file.

If you want to see a better way to make the red object in your file, explode the black object in my file and then run UntrimAll, then join the 3 surfaces that make the U shape. Now you have 3 intersecting objects that you can run trim and join on to get a more useful version of your red object.

Thanks all. But let me take a step back for a moment on this same problem.
I am trying to work with surfaces here.

I created the blue as a planar surface and the red as a sweep2 at the side and a planar surface at the back.

Now I am trying to join the two. I have created 5 sweep2s (green) using the red and green edges as the raid (and made them normal).

Yet the green object at the far right (running vertically will not join to the red. Nor will the corner above.

(If I make this as one big sweep the same happens. I split to find the problem areas).

Why is a green surface not able to join red surface along an edge that was a rail to create the green surface in the first place? (Especially when the segment is a line).

Problem Sweep 1.3dm (3.1 MB)

I have tried matchsrf. That allows me to join BUT it gives me a pushed in area. (Plus I have to wonder joins like this were I cannot get two parts joining across the entire edge.)

Oddly the push in occurs when I join the planar surface the closes the whole thing.

Problem Cap.3dm (146.3 KB)

Here is the surface set above after matchsrf and joining.

Cap or PlanarSrf + Join causes a squeeze in the upper and lower rounded surfaces.

Often the reason a sweep won’t join with the edge it was swept along is because the cross-section curve isn’t touching the edge.

Thanks for all the information here. I have learned a lot. I stripped the problem down and was able to move to the large problem.

The only thing still bugging me is the cap thing.

In my final part, that segment gets cut off but I was wondering why it happens.

Hi Jim- the squeeze is caused by the render mesh - you can tune that up with DivideAlongCreases > SplitAtTangents=Yes This causes a couple of bad surfaces to be created in the object - fix these with ExtractBadSrf then ShrinkTrimmedSrf then UntrimBorder… I don’t know why off hand, the thing looks a bit more complex than maybe is necessary.