Boolean fails - what to do

Both these objects are water tight. I made sure to build the upper so as to intersect the lower. And yet I get a fail notice. What would be a suitable alternative to this?

ArgoFlex7.3dm.zip (1.7 MB)

Hi James - when in doubt about Booleans, the first line of inquiry is to look at the intersections between objects. Intersect command. In this case, due to coincident or near coincident edges, the result is too messy to trim with. Instead, make sure the edges of the top object actually line up with the edges if the bottom object that are nearby and Join, leaving out the bottom faces of the top object and the top faces of the bottom object. then Cap to fill in the gap.

Get these lined up first:

Or, make the top object fall completely inside the top plane of the lower object - even by a little - then the Boolean should work, but better to make a clean model the way you actually want it, which is presumably with those edges being the same.

-Pascal

ArgoFlex8.3dm.zip (506.4 KB)

So as per this example, I’d have more success with creating a solid that meets up exactly with the surface/solid to be joined? As you can see from the images, the upper extends well into the lower. Even with this I get the boolean fail. It seems this boolean operation is quite persnickety.

<img src=“https://aws1.discourse-cdn.com/mcneel/uploads/default/original/3X/6/6/66f265165c5c43b412079a37bcfa376f6b486538.png” width=“690”

height=“464”>

That is not quite what I meant, but in any case, when in doubt, ignore the Boolean operations and trim/split/join/delete at the surface level. Think of Booleans as a shortcut for that and you’ll generally get there.

-Pascal

@JKayten Intersect the two parts and look carefully at the resulting curves. There is an extra curve (actually a straight line) which overlaps with the one of the other intersection curves. Something is wrong with your model.

Thanks for taking a look. I went back and did the intersect function and I can’t see what you mentioned.

Would you mind showing me what you see?

The curves generated by Intersect are green. Points are start and end of curve segments. A short line overlaps a longer line.

I’ve tried to get around this issue by creating a simple cutting surface. However even now I cannot split , trim or boolean split the solid. I’m really scratching my head at this point.

:confused:

Split-trim-Boo.3dm (287.9 KB)

Even exploding everything and rejoining I still cant get the model to even join a surface. This is all because a curve is running along side another??

It seems there’s been booleans that have worked in this situation before.

Furthermore, I’ve even scaled the object down and nudged it so there’s no over lapping lines and still I get grief!!

Hi James - the way you have things set up, your edges and surfaces are neither exactly ‘on’ each other nor different either, so intersecting the two objects is just going to be messy - polysurfaces that have coincident edges will tend to return multiple overlapping intersection curves for example. So, either make the bottom edges of the top bit right on the top edges of the lower bit (ignoring the top plane for now) so they can be Joined, or make the top bit sit exactly on the top plane but within its ‘footprint’, not kind of on its edges, and trim the top bit in with its lower edge curves. If you want to extend the top bit down, to make afull intersection, that is fine but don’t do it by adding another surface at the bottom - the edge between the original and the added surface still lies on the top plane of the bottom thing, and the curve of intersection is likely to be messy. Instead, use ExtendSrf on the lower surfaces’ bottom edge to push them through the top plane.

-Pascal

Sometimes in these instances, just moving a Boolean part a tad, say .01" (try different directions) is enough to make it work, assuming such a movement is OK in your design.

I have not looked d at your model though…

1 Like

I’ve been at it and set aside the issue with the top and started working on the internals. I’m trying to reverse engineer a bit of structure in this model. I discovered it was too thick. Both front and back of the structure have complicated surfaces so I needed to remove the excess from within the those surfaces. In order to shave out the fraction of a millimeter I did a boolean split with an extruded plane, then moved one of the faces into the piece snapping it to a corner. Now I try to boolean the pieces together and it fails.

I know I don’t have a stellar rep so far as a modeler, but I still think the boolean function in this program is a bit unreliable.

Here are some shots and file with just the item in question.

BooHoo.3dm (637.7 KB)

Rule is, DON’T try to unify structures that have a lot of concurrent surfaces. If you call intersect on the two pieces, you see that Rhino can’t figure out a clean intersection.

In this case, if it was too thick, I might have taken the slice out of the middle (BooleanDifference out a tall thin box), moved the two halves together, and then either union the two solids, or extract the two faces in between and just join, then MergeAllFaces.

Another way to do this might have been to just turn on polysurface points (SolidPtOn) and move them - as your model is composed of all planar and single curved surfaces in the direction you want to move.

–Mitch

I didn’t know this was an option! That made quick work of it. I’ve not really ventured into the solid mode of the program yet. I’ve been concentrating on curves and surface creation. I’ve been under the mistaken impression that boolean would handle intersections in over lapping bits like it would handle objects that are sharing the same curve - as in the union function after mirroring. Earlier in this string I’d brought up an issue with another item that refused to boolean. I’d extended the lower portion of an object thinking that would provide enough intersection for the process. I would have extruded the sides of the piece but because it was made of complex surfaces it would not extend properly because I think it required a scaling effect as well.

Anyway, thanks for your help!