fails difference boolean

 From:  Michael Gibson
777.6 In reply to 777.1 
Hi Juan, yes as Jonah mentioned this is one of those overlapping edge cases that was discussed a little bit ago. But MoI isn't able to figure out this one.

Here is the problem - if you look at your torus, you can see the "seam" edge of it runs along the side - this is where the start and end of the torus surface come together to touch each other:



Now when you show the other piece:



you can see that there are a many spots where the torus seam and pieces from the other object overlap on top of each other. This type of overlap tends to be a difficult area of calculation.


So one method to proceed is as Jonah said, to slightly scale one of the objects to avoid those overlapping edges. Another way to do it is to reconstruct your torus so that its seam edge is in another location. To do this, go to your circle and rotate it by 90 degrees in the Right-side view around its own center point. Yes, I know it is strange to rotate a circle but this has the effect of moving the closing "seam" point of the circle which will also change the seam point of the surface created from the circle. Now if you create a revolved surface from that new circle, the seam for it will be in a different location, like this:



With this new torus with the different seam, the boolean will now work properly:



Of course it would be great if the original one would work properly, I'll save off this example so I can send it in and maybe get the booleans improved later on. It will be a while before that happens, like I mentioned this tends to be a pretty difficult area, and it can be hard to make fixes in it without causing additional problems for other cases. MoI is usually pretty good at handling these type of overlap situations, but it's not perfect at it....

- Michael