Grasshopper

algorithmic modeling for Rhino

Hi all,

I'm having a little trouble trying to perform a Solid Difference, it cuts some but leaves a couple out, I've tried to perform a Union before the Difference but the Union fails. I have also tried baking it and performing the differences individually, but no luck.

Can anyone help?

Thanks,

Laurens

16_0209_DifferenceFail.gh 

Views: 3259

Replies to This Discussion

HI Laurens,

Solids can be tricky sometimes, to make sure that you have a clean solid to use as a subtractor, suggest trying various combinations of boolean unions to generate the solid. Then do your difference. Also, you may want to check for duplicate surfaces, non-meeting edges, etc in your geometry 

Hi Mark,

Thanks for the reply

The solids were all extruded from surfaces in Grasshopper and are closed, so I'm fairly sure there aren't any duplicate faces or non-meeting edges. I'll try the various unions but it seems to be happening whichever way I try it.

You're breaking the Boolean black box in a very specific way, the main way it always breaks, and you need to understand how it works to fix it.

A Boolean is merely internal automation of individual steps of finding a necessarily *clear* and *robust* intersection curve between two objects at a time. But! Your subtraction objects are kissing each *other* instead of intersecting each other well. That means that after a step or two, internally, when it tries to subtract a new object from the base object that has now already had one or more of your subtraction object subtracted, that the new base form is now kissing the new subtraction object instead of really intersecting into it, so no curve can be created for that step. Usually the whole Boolean will fail when this happens, so it's surprising you get anything.

Thus, even though each of your objects intersects just fine, the process fails at a certain step because of kissing faces with incomplete intersection curve loops, as Rhino/Grasshopper stops the calculation under the main Rhino tolerance setting.

The BrepBrep component under Intersect>Physical can visualize your intersections:

One way to fix this is to merely move your kissing objects by even a tiny amount, as long as it's above the Rhino tolerance setting, say 0.005" or so, away from each other where they kiss.

If I use the cross reference component, in right-click-option diagonal mode, to intersect all subtraction object with each other in pairs but not with self, I can visualize where your subtraction objects intersect each other, and do so badly, so badly as to have no real intersection according to Rhino:

RSS

About

Translate

Search

Videos

  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service