Page MenuHome

Difference Boolean Modifier does not work in most simple cases with Array Modifier
Closed, ResolvedPublic

Description

System Information
Win7-x64
nVidia GeForce - 1060

Blender Version
Broken: 2.79.RC (Hash: 5e9132b)

Short description of error
The Difference Boolean Modifier does not correctly 'cut' the main object when the second object (the one which will cut the main one) is an array of objects.

Exact steps for others to reproduce the error

With an empty scene do:

  1. Add a cube, scale it to x,y,z = 5,5,0.3 in order to make a plaque. Let's name it "Cube"
  2. Add a cube, scale it to x,y,z= 0.5,0.5,1 in order to make a small pillar. Let's name it "Cube 001"
  3. On "Cube 001" add an Array modifier with Count: 8 and Relative Offset x,y,z=1.2,0,0.
  4. On "Cube 001" add another Array modifier with Count: 7 and Relative Offset x,y,z=0,1.4,0. Our target is to have a square of pillars with some spaces between them.
  5. Place this array in order to intersect the plaque created at step 1. (see the attached file for an example)
  6. On "Cube" (our plaque) add a Boolean Modifier, choose Difference (Bmesh) and select the "Cube 001" as the other boolean operator.
  7. Press "Apply" on the modifier added at step 6
  8. Delete the "Cube 001"

Expected: "Cube" should appear as a normal grid of square holes.

Actual: "Cube" has some holes filled up and some holes filled only by half by some faces left by. The result varies upon on relative placement between the array and the plaque and upon of other factors (distance between the pillars, number of them etc.). Rotate, zoom, pan and look in each hole to see. I attached also a JPG here

to show the phenomenon.

Just execute the steps 7 and 8 on the attached blend file and examine it.


Based on a (as simple as possible) attached .blend file with minimum amount of steps

edited: A more comprehensive example for reference (animated at multiple scales) ~ ideasman42

Event Timeline

John Thomas (m.Th) updated the task description. (Show Details)
Sergey Sharybin (sergey) lowered the priority of this task from 90 to 50.

@Campbell Barton (campbellbarton), this is one of the cases when BMesh boolean is failing. Mind having a look? :)

John Thomas (m.Th) changed the task status from Resolved to Unknown Status.Aug 15 2017, 11:47 AM

Thanks a lot! Something is indeed improved. However the bug is still present in 2.79 - 66c1b23 (Date: 2017-08-14 23:22)

The original attached blend file works ok now.

...but the newly attached one does not. (I moved a little the plaque). Take a closer look at "holes". Some of them are half-filed with residue faces.

Campbell Barton (campbellbarton) changed the task status from Unknown Status to Resolved.Sep 12 2017, 8:33 AM

@John Thomas (m.Th) I didn't see you re-opened this report - and now its too late, 2.79 is already released.

Can you open a new report since the original one is fixed (including a test at multiple scales and animated rotations).

@John Thomas (m.Th) - this is in fact not an error in booleans, its an error in face-filling.

Good find, we didn't have reports in this part of the code in years :)