Internal Voids Not Working

I am currently trying to create a fully encompassed internal void using boolean difference but I keep getting an error stating that the “Objects do not intersect. Nothing done”. The problem seems to stem from the fact that there are no intersecting surfaces for which to create a difference, even though the original item is a solid. Is this a misuse of the command or a glitch?



Hi Chris,

That’s normal behavior for Rhino actually. The inside of the closed polysrf doesn’t have anything to cut so without an intersection the walls can’t be created. If you trim a hole in both though and loft between those openings and then join all the surfaces together you’ll have one solid. Whether or not this works for you ultimately depends on the use of the model. If it’s for rendering, just make the hole very small so it’s not seen. If it’s for molding or 3D printing, see if the construction method you’ll use can indicate the best place to cut the model… perhaps it should be in halves with a lap joint for instance.

What Rhino knows as a solid is actually a completely closed surface. None of the commands (AFAIK) know anything about the “inside” or “outside” of such a “solid”. So if a Rhino solid is inside another Rhino solid it is no different than being on one side or the other of a plane. Rhino will not find an intersection. I’ve never quite understood why Rhino can do the things it does with solids but can’t be made to know about the inside of a solid. I guess the answer to this must come from the “big brains” (as Pascal likes to say) at McNeel.

As far as I understand the solids, the normal direction is determining if something is “inside” or “outside”. Use the Dir command to view/change the normal orientation.
When performing boolean operations on solids, the correct normal orientation is often vital to the desired outcome. But, as the OP already found, internal voids are not a possible outcome of a boolean operation.

You can do this with a mesh - make two concentric mesh spheres, flip the inner one inward (Dir command) and Join the two into one mesh, but Breps do not allow this- you cannot flip the normals of a closed brep inward - though it does happen from time to time by mistake…


I’m assuming you are doing this to create wallthickness for 3d printing? Keep in mind the part will have to be split in order to get the support material cleaned out of the inside. the standard workflow to do this is take your object and split it, cap it, and then boolean out the inside shape. then print it in two halves, and glue it together. Otherwise you will have wet goop (SLA) or ugly supports (SLS) or powder (zcorp) inside your part.

If you are just doing it for rendering, then you can connect your inner and outer surfaces with a tiny cylinder somewhere out of view- I frequently do this for rendering glass stuff in maxwell that requires physical thickness to the material to render correctly-