In the attached model, if you select the solid on layer CL4 and apply the Boolean difference operation using the half-ellipsoid on layer CL7, the unwanted part of the first object is seemingly correctly removed, but the half-ellipsoid is also unioned to the result. (DeleteInput=Yes/No makes no difference.)
In general when a Boolean operation does not give you the result you want, it is because one or more of the objects you think are closed, are in fact open. As Rhino decides what to trim away and what to keep from the surface normals, open objects can be unpredictable. In this case the object on layer CL4 has its normals facing inwards. On top of that it is a bad (invalid) object.
If you explode that object, and run _SelBadObjects, you will find the bad surface. You can untrim it, saving the border, and then re-trim it to fix. But, there are a bunch of other surfaces that once exploded and with their edges rebuilt do not match their neighbors.
You will also need to fix or re-make those in order to get a good, closed object to subtract from the ellipsoid.
Hi, thanks for the advice. This happened during an exercise emphasising precision so I guess I’ll have to go back through the incremental saves of the full model and try to figure out where the errors crept in…