2 of 6 similar closed objects fail to trim, split, or boolean


I am modifying some standoffs on this model of a telephone receiver. I’ve removed the old ones and untrimmed the holes and now I would like to add the new ones using the inner surface of the phone case as a cutting object.
ideally I do this by using booleanDifference > booleanUnion. This works for the 4 pieces on either side, but not the center two. All objects involved are closed polysurfaces.

I think it must have to do with the fact that the center two standoffs are intersecting with a non planar surface.

What am I missing here?



standoffs to be trimmed

4 out of 6 standoffs trimmed

boolean_union_all_but_center_standoffs.3dm (12.3 MB)

When I download your file and open it I get a message that a linked block definition file can’t be found, and then the file opens without the standoffs in place. Try uploading it after bringing the standoffs into the primary file.

Boolean operations do not require planar surfaces.

My first steps when problems arise with trimming, splitting, Boolean operations and similar is to use Intersect or IntersectTwoSets to create curves of the intersections, and then examine those curves to see if they are closed. If they are open then CrvStart and CrvEnd can be used to find the gaps if they are not readily apparent.

ok, here is a file w/o the block instances, sorry about that!

I executed IntersectTwoSets on both problematic junctures and indeed there were open curves in each one. It is weird to me that they would be open there and nowhere else… anyway I duplicated a set of each. I am a little iffy on how to go about rebuilding the curves, however.

my first idea was to make a simple extrusion the same dimensions as the standoff, intersect it with the phone body, and get the proper curve from that. But that procedure yielded the same open curve. This leads me to believe the problem is with the phone shell somehow…

Let me know what you think,

Thank you,


boolean_union_all_but_center_standoffs.3dm.zip (6.7 MB)

BooleanUnion seems to work for me, but I’m not certain what you are trying to accomplish.

Really? I’ll revisit that. I am trying to fuse them to the shell, as I was able to do with the four other ones in the model.

when I boolean union the model, the center standoffs disappear

Here’s what I get using BooleanUnion twice, once for each side and associated center standoff.
boolean_union_all_but_center_standoffs DC1.3dm (13.5 MB)

I’m using Rhino for Windows V5.12.

very interesting, I am using Rhino for Mac v 5.1.

If I weren’t such a n00b I would go so far as to say this is a bug…:confused:

your BooleanUnion still resulted in these messy curves, but it still executed, which my Rhino refuses to do.

I wonder what the reason for the weird curves is.

What steps results in those curves?

those curves are from the model that you successfully BooleanUnion 'd. I was getting the same curves generated seemingly out of nowhere when I tried that operation. Odd.

How did you do the BooleanUnion?

I’m using Rhino for Windows so the procedure may be different but here is what I did.
Start BooleanUnion with nothing selected.
Select one of the phone bodies.
Select the corresponding standoff.

yup thats pretty much it.

I’ve a mac rhino.
I tried and I get a same error.

I exploded the closed surface and seems two of the surfaces in the
middle can not be trimmed either.
Same result with WIP5.2

Any other mac users?

By scaling the model to 0.5x then scaling up 2x
(so surface wise not doing anything, but letting rhino work on the surface)
seems to fix the surface and boolean was possible.
Not solving the issue but a temporary workaround…

Nice! Thank you. Is that generally a good technique for ridding a model of errant curves? Good to know regardless.

I wanted to find out how to fix the problem and
got to it by trial and error… so not sure if this
works in other cases…
It looks like a bug tho…

it does to me too!

I’m not sure what you mean… errant curves… In general, I suppose it does little harm but if scaling twice fixes something, we need to know what that is and make it work the first time. I’ll have a look at the file you posted.