Tutorial – Cutting holes in meshes using Boolean Modifier

Can’t cut the holes in the meshes ? Use Boolean Modifier.

Boolean Modifier is at your rescue. Modelling in blender can be a long and tedious work, but there are places where the process can be simplified. If you have ever attempted to model a gun, furniture or any other object you must have spent some time figuring, how to cut holes through your mesh.

There are of course many ways to deal with this, but I find the Boolean modifier an easy and effective way of achieving results. However, the Boolean modifier is by no means the one click solution, and there are some niggles left to be sorted out.

In this brief tutorial we will explain how to use the Boolean modifier to cut holes in our mesh. We will also deal with the correction of the mesh flow in the second part.

To keep the tutorial simple we will attempt to cut a hole through a simple cube.

So lets get started.

Requirements:

Time : 10-15 minutes

Software : Blender 2.79 or higher.

Part 1: The Cutout

  • Select the default ‘Cube’ and move it to the left(hitG’ after selection, then ‘Y’ and then ‘-4’).

Note : This will move the cube to the left.

  • Now press ‘Shift+A’ and then selectCylinder’ from the mesh menu.

Note : You can experiment with other shapes, but in this tutorial we will be using the cylinder to cut a hole in the object.

Boolean 1

  • In the mesh settings of the cylinder, change the vertices count from 32 to 8.

Note : It is advisable to keep the vertices count to a minimum while using Boolean operations because smaller the count of vertices lesser time it takes once the modifier is applied.

Boolean 2

Change the display type of the Cylinder to wire frame because it is easier to see how the cylinder effects our cube.

  • So go to the Object settings in the Properties panel
  • Under Display change the ‘Maximum draw type’ from ‘Textured’ to ‘Wire’.

Boolean 3

  • This is what the Cylinder should look like.

Boolean 4

  • Scale the cylinder on the ‘X’ and ‘Y’ axis by pressingS’ and then ‘Shift+Z’.
  • Then scale it only on the ‘Z’ axis so that the cylinder is longer than the cube( Note : it has to go right through the cube to cut out the hole).

Boolean 5

  • Grab the cylinder using ‘G’ and then move it to the center of the cube.
  • Now the select the cube(always select the object you want the cut through).
  • Go to the Modifier menu and select ‘Boolean‘.
  • Use the Picker icon and select the cylinder.
  • And finally set the type to ‘Difference’.

Boolean 6

Now we can see the active cut out of the cylinder through the cube.

Boolean 7

  • Once you have the position of the cut out you need, go ahead and apply the ‘Boolean’ modifier.

Boolean 8

Part 2 : Observing the mesh structure

  • In edit mode we now have the cube with the cut out, but as the result of the modifier our mesh surface is divided into N-gons(n-gons are faces joined with five or more vertices).

Note : Ideally a meshes should be made of Quads (faces made of 4 vertices).

Below is an image of the cube right now with the SubSurf modifier.

Boolean 9

It is easy to see that there something is definitely wrong with our mesh, check image below to see understand the correct form of the object.

Boolean 10

Part 3 : Correcting the mesh

Objective : Make both surfaces of the cube with the cut out, to be divided into quads.

We will be using the knife tool to cut through the surface and join the vertices.

  • Select the knife tool, then select the vertices which are on the center of the inner circle.

Note : When you drag the cursor away from the selected vertices a red line will appear from that point.

  • Drag this point to the edge of the cubes surface and press ‘Enter’ at your desired point(You will immediately see a new edge being created).
  • Repeat this until you have an edge joining every vertices on the circle to the edge of the cube.

Knife tool tip: When dragging the edge, pressC’ to constraint the knife tool to the corresponding axis.

This should be our final result : A mesh with cutout and proper mesh flow.

Boolean 11

After rendering my model looks like this.

Boolean final