Boolean difference failed again

I have seen a lot of failures in boolean operations in rhino. Some of them ended to be user mistakes but can anyone explain to me why the difference in the attached file fails?

https://1drv.ms/u/s!AlStGpm79Fvpkf4zJIy-VHBDaA4geA?e=pC2OFS

Thank you

The surface in there is a SubD and it has more than 53K faces. Also you have a tolerance set to 0.00001 which is unreasonably small…

First I reset the file tolerance to 0.001. Then to reduce the size, I used QuadRemesh on the SubD with a target of 10K surfaces and the convert to SubD option. Then I ran ToNurbs on the new SubD and used BooleanSplit to split the block with the resulting NURBS polysurface. Unfortunately including the original SubD and the converted NURBS object separately made the file size too large, so here is just the result:

substract fail-small-msh.zip (4.2 MB)

I tried different tollerance values. Why this tollerance make the operation to fail? I know that my subd has over 53k faces. Why this is a problem? Is there a max amount of faces boolean operations can handle? Even if my subd has a lot of faces, these faces are very large.

Practical experience…

https://wiki.mcneel.com/rhino/faqtolerances

I don’t think there is necessarily an absolute max, but again practical experience has taught me that when there is a large number of surfaces involved this can cause problems. That is why the first thing I tried was to reduce the number. Note you cannot Boolean split a NURBS box with a SubD, the SubD must be converted to NURBS first. When you try to convert your original SubD via ToNurbs, it throws up a warning about the number of faces. It might work anyway, you can certainly try it.