There is a cube and a ring intersecting. If I select the ring and add a Boolean-difference modifier to it with the Cube, the boolean fails with the message “Can’t execute the boolean operation”. See the attached blend file.
I tried 263.5 as it is and the result was not so pretty as in your example -it required manual cleaning by deleting the cube’s faces and then manually fill the end faces of the ring. Actually I could make 262 produce the same result just by rotating the ring a bit at Z axis (11 deg ) -thanks though!
But I finally found the process to guarantee a perfect boolean in this case:
Update to the official 263a (from 262)
Select the ring, switch to edit mode, select all faces.
Mesh / Faces / Triangulate faces
Remove doubles
Did the same with the cube (although the cube in this case didn’t need the last step).
The real issue is the doubles in the ring, if you remove those first all should be well. And yes, the ring should have cleaner topology for a better result.
You can start with a circle curve with some extrude, then use the solidify modifier to give it depth. The result when converted to a mesh will be clean.
@ pappy Thanks, so the solidify modifier should be preferred over curve extrude to have a clean mesh output.
I wonder though, why the solidify modifier works in preview with a curve object directly and when I click “apply” only then it warns “cannot apply constructive modifiers on curve” -it shouldn’t work at all to prevent confusion.