Join Dave Schultze for an in-depth discussion in this video Troubleshooting solids and Booleans, part of Rhino 4 Essential Training.
In this video, we'll review common situations and problems that occur when working with solids and Booleans. I'll also introduce a few extra solid editing and creation commands that will make it working with these solids much easier, and hopefully fun. We'll start off by looking at these two solid objects here. We have a sphere and a box. So, I want to bring up a command located here on the Solid menu called Boolean Two Objects. Now this will kind of cycle through all the other options, and give us a visual representation.
So, it's really nice if you're not exactly sure what will work the best. So, the command line asks us to selects two objects. The first process is called Union. You have to look up here on the command line to see what it's currently showing you. And each time you click, it's going to cycle through, so that's Intersection. That's pretty obvious. And when you're subtracting, of course, there are two directions to go. This is A minus B. That's B minus A. Here is an Inverse intersection. It looks actually like a Union, but what it's giving you is two separate pieces, and that intersection is not included.
Back to the originals. Let's go ahead and accept those. So, we've cycled through quite a few options and it really helps to get the visual feedback. Let's talk about the co-planar problem. We've got a series of cubes over here. We can go ahead and just union these together and see what happens. Let's select them, and I will just select that Boolean Union right off the main menu here. So, it looks like it completed, but you probably are noticing, these are overlapping surfaces.
It's not 100% clear. I'm just seeing thicker lines along those edges. So, a quick way to get surfaces out of a joined solid is to use the Explode command. So, let's try that and see what happens. So, it'd located right here in the main menu, right next to Join. So, it's almost like its opposite, the Explode. I'm going to select this new unioned solid, hit Enter, and let's take a look. So, sure enough, it has got a lot of fragmented pieces.
Technically, it solved the problem, but this is not a clean solution at all. And in fact, you would have problems if you wanted to prototype. Let's undo that with Ctrl+Z. Here is a more surgical way, if you will, to get these surfaces extracted. Go to the Solid menu and it's called Extract Surface, so instead of exploding everything into separate pieces, you get to select which parts are removed individually. So, I'll just go through here and pick these pieces. I can actually speed things up if I rotate my view and just draw a box around those.
I'm going to right-click, and I want to just scoot those all the way with the Nudge command. So now, we've removed all those complicated overlapping pieces. This is still joined together, so we can cap that off in one single command now as long as it is a flat planar hole that remains. Go to the Solid menu > Cap Planar, and now if we check it out you'll see our good friends, the single isocurve, going in one line each direction.
That means it's a simple solution as possible, but that still leaves the bottom. We've got the same situation as the top, a lot of overlapping interconnected pieces. So, we can fix this in one command. It's located on the Solid menu, kind of buried, Edit Tools > Faces > Merge All Faces. I'm going to click here on the object, which is still all joined together, and right-click when done. Check it out. It actually found all the overlaps, removed them, and put in one single clean surface there.
So, it gives you a couple of options to proceed when surfaces are not Booleaned cleanly, like our first try. Okay, so we have been doing the Boolean operations with lots of different solids. Let's extend our capabilities here a bit, and see if they will work with surfaces. So, we've got a curve here intersecting this Boolean Union shape. I'm going to go ahead and extrude that, Surface menu > Extrude > Straight. Always make sure you've got plenty of clearance so it overlaps cleanly. I'm going to come around here, so I can pick these appropriately, and I'm going to go to the Solid menu and do a Difference.
So, we're going to use the old mnemonic, "mother bites the baby." First set we want to keep, right-click, second set will be the subtracter, right-click, and we get the exact opposite of what we wanted. I wanted to keep the bottom and trim it with this curve, but it's kept to top. So, just go ahead and undo this, and examine a little further. Now, all solids have this property of closing volume, and therefore having an inside and outside. We can verify this with this command over here called Analyze Direction on the main menu. I'm going to turn that on.
These are also called Surface Normals, and they typically point out to tell you which way is the outside of a closed entity. Now, in a solid like this, it's obvious which is inside and outside, whereas for a surface, who's to say which is up and down, or which is inside and outside. It's not really enclosing anything at this point. I'm going to turn on the Surface Normals, and notice that they are pointing out. That kind of gives us a clue that that is the side that was used to subtract. Not a problem. We can just click on the surface anywhere and each time we click, it will flip them back the other way.
Here is the way we started. The other way to do it is just click on this Flip option in the command line. Then when you're done, you would want to right-click to accept that. So, we've change the direction to the exact opposite. Let's try that Boolean command one more time. Solid > Difference, here is the mother, right-click, and then the baby, right-click. Ah! It worked. So, if you experience difficulties with the Boolean operations, definitely check those surface normals, see which way they are pointing, and flip them. It's a quick step.
Now, the final Solid command is pretty cool. We've got a surface here almost completed. I've got a polysurface there, a couple of flat planes defining the other edges. And I'm going to go ahead and complete this roof structure here by selecting three curves, and just make a Surface > Loft to close them off. You can accept all the defaults. The trick here for this command to work successfully is you have to make sure there's 100% overlap on all of these planes, whether you four, five, six, seven, or as many as you want.
And it looks like we're in good shape. It's under the Solid menu and it's got kind of a vague description, Create Solid. So, we're going to select all of the intersecting surfaces, or polysurfaces, and then it will hopefully, automatically trim them and join them. So, let's pick those top surface, flat plane, flat plane. Another reason I'm in Perspective, I can always verify everything is selected, and no surprises.
Right-click to accept, bingo! That was a lot of extra steps we didn't have to take. And you also note that I have generated this entire surface, each face that is, with curves so if there were any changes or revisions you could easily regenerate them,and do that one command again. A final note - this is a great little tip to verify that this is in fact closed. Now, it's simple enough. We could just assume it is. However, if you've done a lot more work to a surface and need to do a quick check, I'll show you where to locate that.
We're going to go up to Analyze > Mass Properties, and then select Volume. So, I really don't care what the Volume is. I'm just verifying that it gives me a number. And it does give me a number. That means it's enclosed, even though it doesn't directly stipulate that. So, if I were to repeat this one last command, extract a single surface from the top, get rid of it, and try that command one more time, show the Volume, you get the error message, "objects are not closed." And so, it will try to do an approximation, but this is your warning that there is some part, possibly even invisible or around the backside, that is not closed, and therefore you need to go address that.
So, the use of Solid commands with surfaces greatly expands their usefulness. However, you need to be aware of the inside versus outside situation, which can cause unexpected results, especially on these highly edited objects where the normals can be flipped. When those problems do crop up, start your investigation using the Analyze Direction command, and verify objects are both closed, if they are supposed to be, and that the normals are pointing outward, or the direction you want them to be.
- Understanding 3D terminology
- Viewing a 3D model in Rhino 4.0
- Manipulating objects with commands
- Creating curves, surfaces, and solids
- Applying transformations to 3D objects
- Creating unique shapes with Boolean operators
- Snapping to objects and planes
- Defining curve and surface degree
- Prototyping a 3D model