Boolean Difference Result Problem - Tolerance?

I’m trying to perform a boolean difference of two objects. Simple enough. At default tolerance, the operation fails, but it runs through when I set the absolute tolerance to 1e-08 or lower. However, I run into a severe surface meshing problem after this occurs (see below for before and after images). Is there any way to do this without such a gnarly result?

Sometimes it helps to first calculate the intersection between the two parts as curves (Intersect command), then use the curves as input for the Trim command. It takes a bit longer, and may not be feasible for your model, but can give better results than a direct boolean operation in my experience.

Hi Rob- can you post the file here or to tech@mcneel.com please? I’ll take a look.

-Pascal

Sure, I can when I have a free moment. A friend of mine gave me a possible solution of scaling the model up by 1000, running the boolean, and then scaling back down. I’ll give that a try as well, but I’ll still post regardless.

menno: I tried trimming with intersect curves too, but I was having hit-or-miss success with the trims as I was getting small segments of missing intersection lines. Became too much of a hassle.

My friend’s scale-up 1000x solution worked beautifully. Regardless, here is the model for your reference. Thanks!
Boolean Tolerance.3dm (1.9 MB)

Hi Rob - in this case, run DivideAlongCreases > SplitAtTangents = Yes, then Boolean. This should be handled better but the problem is that there are surfaces in the smaller object that tangent only, internally. Generally it is best to split up surfaces that are not curvature continuous (like rounded rectangles for instance, or in the case of the file you posted, one side of the smaller object) into separate-but-joined surfaces rather than a single surface.

-Pascal