Boolean Difference troubles

I’ve spent the better half of a day trying to indent a pattern onto an object with zero success. I assumed it would be as simple as pipe the linework that I’ve flowed along an object and (skipping a few steps) boolean difference the piped pattern to the object, but that keeps either freezing Rhino 6 or failing outright.

I’ve tried boolean difference, boolean split, boolean intersection, boolean union, the mesh equivalents of the above, split, trim, and combinations of the above in an effort to create this effect with no success and am at a bit of a loss.

Any and all suggestions welcome. I have a sneaking suspicion the answer to this will at least in part solve 95% of the issues I have when using Rhino.

This may be a simple place to start, but do your pipes self-intersect? Rhino will usually hang for a long time and ultimately fail during a boolean operation if your objects fold back on themselves.

1 Like

I don’t think they self intersect, but the pattern consists of a bunch of closed looped, piped geometric shapes, so sections of the pattern definitely overlap–I tried to solve that by boolean joining or splitting/trimming and joining the pipes, but that isn’t working either.

The Rhino file isn’t able to be directly uploaded for some reason, but I’ll add a Dropbox link in a sec.

(Update) Here’s the link:!ApHA6RoGLheWiDcZ-TXXp2FRk8Ed?e=8AmbEh

SelBadObjects selects a number of your pipe objects as bad objects. I’ll see if I can find the problem. Added: Nothing obvious to me. A guess, and only a guess is a tolerance of 0.001 may be too large when creating pipes which are 0.01 in diameter.
@pascal is the master of identifying causes of bad pipes. Perhaps he will be able to look at these.

1 Like

Hi David,

Thanks for assisting me, here!

I literally just rebuilt the pattern and piping from scratch and can confirm it contains zero bad objects, naked edges, and non-manifold edges and it STILL won’t boolean difference/intersection/split/union.

I can send the file if you want.

Hello - the first line of inquiry for failed Boolean operations is to run Intersect on the objects and then have a look, at the resulting curves. My guess is that David’s comment about tolerance may well be on the mark, for at least part of this. Ideally, isolate one or two objects that fail and export these to a file, post here… I’ll take a look.


1 Like

Among the non-bad objects in your uploaded file you have pipes which almost but not quite coincide. Those may also be causing problems.

1 Like

Yeah, it’s looking like it simply might not be possible to create an indented pattern on an object using a piped pattern as the cutting object. I might have to figure out another method of accomplishing such an indented look, that doesn’t involve piping.

Hello - it should be possible - is this for an image or an actual physical object?


1 Like

Hey Pascal,

I think you might’ve been the one who helped me yesterday. If so, the struggle continues, lol. I’m actually not as big of a newbie as I’m coming across as. I’ve been using Rhino and Grasshopper professionally to create relatively complex architectural, furniture and product designs for years and rarely if ever am as stumped as this project has made me. That said, this task has definitely helped drive home the point that I have a lot of room to improve. I’ve been trying to accomplish this very simple task for what’s going on four days, which is hilarious considering how much I’m usually able to accomplish in four days.

As I mentioned, I remade the pattern, flowed along the surface, piped it, and even managed to boolean union all the piping together, and it now contains zero bad objects and edges. Still won’t boolean difference (or anything) with the larger object I’d like to make indented.

It’s looking like it just might not be possible and I’ll have to come up with another method of indenting the pattern into the second object, though.

Here’s the file as things stand now.!ApHA6RoGLheWiDk6_VkVttv0FOm4?e=OfidK0

Hello - there are a lot of overlapping faces in this - where the pipes converge they are not all cut off by one another:

they should look more like this:

Can you post a file with the flat curves and the base and target surfaces?
OK, I see the layers…


Yeah, the problem is, is that I don’t know how you can pipe such a pattern without creating overlapping lines, which leads me to believe that piping probably isn’t the best way to go about this.

I posted the file, but I’ll repost it below. I had to link to OneDrive, though, as the file isn’t uploading directly.


Would some like like fattened (plus SubD of the result) work for your needs?


It’s a bit of work but I’d say you need to sort out exactly one repeat of the pattern in 2d and pipe and join that up cleanly in 2d including the ‘ragged’ edge miters that you need to join to the next repeat -


Get that set up and flow it to the target - there is a chance it will all work out but I’d do it all at a tolerance of .0001, and I think I’d put a .01 radius sphere at each pipe joint that has fewer than 6 coming in so you get angles like this:



1 Like

This is probably as close of a solution as I’m going to get, so seriously a thousand thanks for that.

I’ve decided to pipe manually curve by curve, 5-pipe intersection by 5-pipe intersection, and figure out the kinks as I go and then hopefully it will be able to be used as a cutting object in a boolean difference operation. Sounds like a needlessly lengthy process for such a simple aesthetic I’m trying to achieve, but considering I’ve spent 5 days trying to figure out all-in-one command shortcuts (the type that usually work), this will probably be shorter in the long run.

Really appreciate your help, everyone. You rock.