Boolean Difference failed: bug or limit?

Are volumes extreme, I know, but why the Boolean difference (A-B) fails?
Difference boolean failed.3dm (327.9 KB)

Hi Davide,

The singularities on the onion shaped object are really difficult to handle. You did well to trim them off, but the intersector first has to work on the base, untrimmed, surfaces, which still have the singularities. If you call ShrinkTrimmedSrf, the base surface no longer contains the singularities and the boolean difference works (at least in V6. I don’t have v5 handy).

During boolean operations, some base surfaces are shrunk automatically in the process and then restored to their original size after intersection, but not all since it is not always the best thing to do. I’ve adjusted the code so that this surface does now get automatically shrunk then restored. Your boolean difference will work, once I commit the changes to the build, in V6 without any additional surface shrinking by you. Thanks for the report.