Boolean Difference using multiple objects at once

Is there a way to select multiple objects to subtract with when doing a boolean difference command? I am trying to make hundreds of little holes in a surface and can do a boolean difference with one cylinder to make one hole, but can’t select multiple cylinders to make multiple holes at once. I am making too many holes to do them one at a time. Any suggestions?

group the subtraction objects.- works fine.
-or select multiple objects from the right… like sweep over the objects from the right instead of the left.

Inside of BooleanDifference, you should be able to select multiple objects with any of the normal selection methods … What’s not working?


I’ve tried grouping the subtraction objects and it doesn’t work. It says “boolean difference failed.” Same for joining the objects. And I’ve also tried sweeping over the objects to select multiple, and selecting them one at a time while holding shift. Still no luck.

Yes, I can select multiple objects. So I should clarify that’s not the problem.

When I do a boolean difference with multiple objects selected it doesn’t work and says “boolean difference failed”. If I try to boolean difference with the same objects one at a time it works fine. Any suggestions?

Also I’m using Rhino on mac, not sure if thats relevant or not.

BooleanDifference will fail if even one of the objects doesn’t work. It won’t tell you which one either. This is one of the shortcomings of the way the function is written.

Remedies -
You need to find which object(s) isn’t(aren’t) working.

  1. SelBadObjects. If you find any, fix those.
  2. Intersect2Sets between your base object and all the objects you want to subtract. Inspect all the resulting curves. They should all be closed. If you find any open curves or ones that overlap, that will be your problem object(s).
  3. Fix the problem objects as necessary.
  4. If all the objects are good and closed, all the intersections are good and closed, the Boolean operation SHOULD work. If not, please post the file here and someone will look.

Have a read on this page for more info.

HTH, --Mitch

I didn’t find any bad objects or bad intersections. Heres my file if anyone wants a go at it. I am subtracting from the larger, tall cylinder with the smaller, horizontal cylinders. There are already some holes where I was testing stuff out. Again, one at a time works fine, but I can get it to boolean difference when I’ve selected multiple small cylinders. Thanks for your help!

holes test 2.3dm (632.4 KB)

it works if you trim those tubes short enough so they don’t intersect themselves…

Hmm, I cannot get them all to subtract at once, only if I do it in two or more groups…

The file tolerance is dangerously close to the small tube diameter, but even upping it to .001 and trimming out the tubes as Jeff did (first thing I tried) it still doesn’t work all at once. (windows)

Edit - tried again and now it works… Also on Mac. hmmm… :confounded:


here’s the one i used which does work… (fwiw)

holesTestModified.3dm (1.0 MB)

[edit] just saw your edit ; )

OK, I think I figured out why - there are two tiny surfaces in there, and depending on how you window select they get included in the selection and then it fails. If not, it succeeds.

Nether object, nor pipes are solid/manifold.

Manifold yes, solid no. Solid is not necessary for Boolean operations to succeed. --Mitch

THANK YOU! I got it to work and you saved me hours of work!

Yes, my bad.

Looks like Boolean difference doesn’t like when objects of the same set intersect each other.