12
$\begingroup$

I'm trying to model a M16 but I have a preoblem with cutting the holes on top of the handguard of the weapon.

As you can see on the picture above, I try to cut holes in the handguard (The marked mesh in edit mode) with the object above it (The multiple cylinder one). But I simply can't. I have tried the Boolean modifier but the handguard just disappears and doesnt make any holes. Same with the Knife Project thing. Nothing works, it wont make a hole in it. I also installed the BoolTool 0.2 but that didn't work either...The multiple cylinder object goes invisible and doesn't make any cuts.

enter image description here

In the picture above you can see how I want the cuts to be made. I want the holes of the multiple cylinder object to be there on the handguard when I take it away. Noting works. The 3 methods I tried with worked on other parts of this model but not on th handguard. It should be the handguards mesh's fault but I can do nothing about it. Is there any solution?

$\endgroup$
  • 2
    $\begingroup$ Booleans in blender are notoriously unreliable (in my experience). I would have recommended manually modelling one hole on a short section of the barrel and then using an array (as long as the cylinders are equally spaced). However, because the barrel gets smaller towards the end, I'm not sure this would work. It might be a starting point though. $\endgroup$ – Todd McIntosh Jul 24 '15 at 1:14
  • $\begingroup$ I can't understand why a boolean difference modifier wouldn't work with such simple geometry. Please upload your file so we can inspect it and give a meaningful answer. i.stack.imgur.com/P8eA7.gif $\endgroup$ – cegaton Jul 24 '15 at 6:36
  • $\begingroup$ related: blender.stackexchange.com/questions/16002/… $\endgroup$ – cegaton Jul 24 '15 at 6:42
  • $\begingroup$ @cegaton I have now added the file at the bottom of the post. $\endgroup$ – Zemah Jul 24 '15 at 12:02
  • $\begingroup$ @ToddMcIntosh I will test that. But first I want to be sure that there's no way of fixing this dumb problem. $\endgroup$ – Zemah Jul 24 '15 at 12:03
22
$\begingroup$

How to do a subtractive boolean

  1. Make sure you've selected the object to be carved from, and add a Boolean Modifier.
  2. For the modifier's Operation choose "Difference".
  3. For the Object field choose the object that will do the carving.
  4. Apply the Boolean Modifier and delete your carving object.

Tip: For step 4, as an alternative non-destructive approach you could also leave the modifier on without applying it, and hide the carving object from rendering. If you want to see the carving object's shape and its effect at the same time, instead of totally hiding it in the viewport you could go to the Object Tab and set the Maximum Draw Type to "Wire".

Using "Wire" view to see the geometry of the object causing the boolean

Tip: Low-poly meshes may not boolean so well, while high-poly meshes can be slow to calculate or in extreme cases even crash Blender. So consider your mesh density before using a boolean.

Tip: If either mesh's normals are facing the wrong direction you will have problems when doing a boolean. Recalculating normals can sometimes be a solution if you find a boolean is not working as expected.

Tip: Remove doubles. If your normals are just fine, the next thing to try is removing doubled-up vertices. This can be done from within Edit Mode by pressing W and choosing "Remove Doubles". At the top of the interface near the tiny Blender logo a message will momentarily appear saying "Removed __ vertices". If this number is not 0 then you'll know that some doubles were removed and that the problem has probably been fixed.

Tip: Large n-gons can cause booleans to fail. The solution is to convert to triangles. Here is a post addressing this problem in more detail.

Tip: Avoid booleans if you plan to SubSurf. Modeling with booleans may be fine for simple hard-surface geometry, but if you then put a Subdivision Surface Modifier on that object you can expect unsightly results. This is because for things like subdivision and mesh deformation topology is important. An all-quad mesh is ideal, but still requires some good old-fashioned manual modeling to create. It's worth learning the concepts of edge-flow and poles if you intend to create a low or med-poly mesh with "holes" cut into it that still looks good when SubSurfed.

Tip: Sometimes using "Smooth" shading doesn't go so smoothly after modeling with a boolean. This has a lot to do with the topology issues I mentioned above, but there is a quick fix that is suitable for many cases. Navigate to the Mesh context tab and check the Auto Smooth option. Adjust the slider until the shading looks desirable in the viewport. Here is a before/after example:

enter image description here

Note that regardless of the angle specified for Auto Smooth, any edges that have been Marked Sharp (CtrlE) will be sharp as long as the Auto Smooth feature is enabled.

The solution for your case

enter image description here

It was caused by conflicting normals, as I mentioned in one of the tips above. In fact, you can even see from the darkly shaded geometry in your screen shots that some of the normals are inverted. After recalculating normals on both objects I was able to boolean just fine. Here's the solved file:

$\endgroup$
  • $\begingroup$ It just says "Cannot execute boolean operation". And when I tested to use a newly created cylinder mesh, the handguard just goes invisible. And when I afterwards apply it, the cylinder becomes my handguard and the real handguard deletes. $\endgroup$ – Zemah Jul 24 '15 at 11:50
  • $\begingroup$ Please see the new section I added in my answer: "The solution for your case". $\endgroup$ – Mentalist Jul 24 '15 at 12:47
  • 1
    $\begingroup$ @Zemah why are you removing the blend files ? $\endgroup$ – Chebhou Jul 26 '15 at 12:02
  • $\begingroup$ Mesh context tab/Auto Smooth is a life saver!! $\endgroup$ – Michael Goldshteyn Aug 12 '17 at 14:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.