Attached is an example in which difference modifier behaves like union.

Is this is a bug (I think so)? See this .blender example in which I tried to use boolean modifier difference (Child is subtracted from Parent so modifier is on Parent)


In both, the expected behavior is difference, but actual behavior is union

Failed attempts

Before posting here I:

  1. Checked that my objects were manifolds
  2. Checked that normals are pointing outwards (Edit Mode -> Select All -> Ctrl N)
  3. No shared faces between any two objects
  4. Removing doubles (double vertices)
  5. Converting to triangles

I have read extensively on StackExchange and other forums, and watched guides, including this very relevant guide.

Any advice would be much appreciated.

  • $\begingroup$ Blender Developer forum (See this bug), $\endgroup$ – Ben Jun 24 '15 at 16:27
  • $\begingroup$ I usually try to avoid the boolean modifier because it has bugs, I'll try and take a look a your .blend file later, if I don't see anything wrong with how you're setting up the boolean, I'll show you some (better imo) alternatives to the boolean modifier. $\endgroup$ – TARDIS Maker Jun 24 '15 at 18:03
  • $\begingroup$ Tips on removing doubles in BlenderArtist $\endgroup$ – Ben Jun 24 '15 at 19:19
  • $\begingroup$ Related: blender.stackexchange.com/q/5140/599, blender.stackexchange.com/q/14085/599, and blender.stackexchange.com/q/7910/599. Also see this bug report. $\endgroup$ – gandalf3 Jun 24 '15 at 20:14
  • $\begingroup$ I appended the child to a new .blend (so I just have the child by itself) and when I try to move it, it won't move. Is the object complex and it's not responding right away (lag), or is there another problem. I looked at the child to see if it's manifold, and CTRL-ALT-SHIFT-M shows it as manifold; however, I have another tool (3D Printing), which tries to fix non-manifold, and does nothing when an object is manifold (or so I've discovered so far on other projects), and that tool butchers it up, which means the 3D printing Non-manifold tool is treating the child like it's non-manifold. $\endgroup$ – Cyberchipz Aug 6 '15 at 15:27

You are trying to use a simple plane as boolean operand here - which is by definition not manifold (a manifold surface must be closed, since all its edges have to have two and only two faces). Behavior of booleans in this case is never really ensured…

Also, your 3DView only shows objects enabled for rendering, and your 'ObjA' object is disabled for rendering, so it's completely hidden from 3DView.

Other than that, I see no issue with this .blend, if there are please be more specific.

| improve this answer | |
  • $\begingroup$ Thank you. I have revised the file such that all objects are selectable, renderable and visible in 3d View. I have also made solidified the plane such that now it is a manifold. The Problem remains: Boolean operator Difference is behaving like union $\endgroup$ – Ben Jun 24 '15 at 19:08

I could confirm the odd behaviour and found a way to work around it.

The coil shaped object has two edge loops that exists in the same space, the one on top and the one in the bottom.

So I selected the bottom one (Alt + right click) and moved it up a tiny tiny amount. G z 0.001

Now the boolean modifier works.

bottom edge loop nudged up

bottom loop in coil

| improve this answer | |
  • $\begingroup$ You beat me to it ;) $\endgroup$ – gandalf3 Jun 24 '15 at 20:28
  • $\begingroup$ Thank you for confirming the behavior (so that I can post a bug). How did you find which is the problematic loop? Did you have to change just one vertex or the whole coil? Thanks again. $\endgroup$ – Ben Jun 24 '15 at 20:46
  • $\begingroup$ I changed the bottom loop of the whole coil. See new screenshot. $\endgroup$ – Gunslinger Jun 25 '15 at 9:48
  • 1
    $\begingroup$ @Ben, manifold also means no self-intersection. It can also help to reduce the amount of geometry and use e.g. array after boolean. $\endgroup$ – user2859 Jun 25 '15 at 12:38
  • $\begingroup$ Same problem with simper geometries: In this example I am unable to substract ObjA from ObjB. See how Difference, Union, and Intersect - all perform unexpectedly. I still don't have a method of solving these. $\endgroup$ – Ben Jun 25 '15 at 15:33

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.