Why won't this boolean?

I made an object to Boolean Difference from another. It worked but reported that the tolerance need to be doubled. I mirrored the object to repeat on the other side, but Boolean Difference fails. I know I can size the object slightly over or under for booleans to work, but that leaves tiny edges. (other problems happen using trim) Any advice on how to get booleans right in situations like this. What I’ve been doing in the past is splitting the object, mirroring the side that worked, and joining.

Cygolite_Clip.3dm (666.8 KB)

you should mirror that once more, something might have went wrong, i tried and it worked then.

Coincident surfaces are always a problem. Your file tolerance is 0.001, and when Rhino said tolerance had to be doubled for the boolean to work on one side, it means that the intersection found was not perfect, but in relaxing the tolerance to 0.002, it managed to find a complete and closed intersection to trim with.

It tried to do the same on the other side, but unfortunately in one area it’s out by 0.00205… So Rhino says no - because it’s just more than double the tolerance.

You can see this by running Intersect between the main part and the subtract block on the right side - it will produce 3 curves, when to join the two curves together that should form the outer loop, it tells you they are out by more than 0.002.

If I zoom in at some mega-level, I see the surfaces are not quite perfectly vertical seen from the top, the difference is well below the file tolerance, but I guess this is not helping things any.

I run into these problems and quite often I’m DupEges to make my parts. They should be exact, no? Should I be reducing my tolerance setting from .001?

Hi -

Yes. So it’s likely that the issue lies in some other part of your workflow. If you notice when you run into trouble and recall all the steps that were involved in creating the objects, please post a step-by-step example.

For most purposes, that should be fine.