I am using the bool tool really a lot and have been struggeling with that tools in 2.7 for quite some time...

My first impressions of 2.8 showed no real difference in the boolean modifier - the results depend very much on the complexity of the objects and on the fact if objects share geometry (2 vertices / edges / faces at the same place on two different objects) or not...

Most of the time I use the really helpful bool tools addon which is a rather superfast way of merging / cutting objects.

I found out that the modifier "by hand" (using "Add Modifier" and select the 2nd object) works not exactly identical to the bool tools: If I set the overlap threshold to 0 the boolean modifier works quite perfect - even on shared vertices/edges/faces...

Left: the two single objects, middle: result of bool tool, right: result of boolean modifier with threshold of 0 bool tool things

BUT I have not been able to use the bool tool in the same way: the bool tool does not know an overlap threshold to set.

As I am a programmer I took a look into the python source of the bool tool addon ("object_boolean_tools.py") and compared the modifier thing with the python reference for the boolean modifier (https://docs.blender.org/api/current/bpy.types.BooleanModifier.html)

The python ref points out, that the overlap threshold defaults to 0.0 - which cannot be true because the bool tool script does not set this value (around line 579). The bool tool acts like the default modifier threshold of "0.000001" in the gui and NOT like "0" as in the reference.

So I added a line (@line number 579) in the bool tool python explicitly setting the threshold to 0: "md.double_threshold = 0"...

After replacing the bool tool python script everything works now as expected...

BUT I think this is not really a very nice / practical way for everyone out there - and I believe a lot of people have their issues with the boolean things...

Is it a bug in blender that the default is NOT 0 but 0.000001? Or is it a bug in the bool tools? Or does everything work like expected and I am the problem?

Any advices welcome ;-)

  • 1
    $\begingroup$ Can that be a problem of precision in the documentation? If obj.modifiers.new( name = "test", type = 'BOOLEAN' ) then we have 0.000001m by default. $\endgroup$ – lemon Sep 6 at 12:04
  • $\begingroup$ It is not 0 for sure. The last time I used is setting as 1e-13 for more accurate result. Document should not write 0.0 on it. $\endgroup$ – Hikariztw Sep 6 at 12:28

Your Answer

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

Browse other questions tagged or ask your own question.