Does anybody has an explanation on why any boolean operation fail to work in this couple of simple objects?
I solved the issue with long workaround (objectintersection + trim + join)
It is worth mentioning that this fail operation is something that happend to one student, And my long workaroung didn’t help to demonstrate that Rhino is very friendly
for the upper rounded cylinder _DivideAlongCreases
(split at Tangents = yes,
split at kinks = yes)
then _booleanDifference works here (mac, Version 8 (8.14.24317.14002, 2024-11-12))
thank you… for that workaround too… but the question actually is why is the reason of the failure of the boolean… I think there are no problems of tangency or edges… (being able to actually make without any problem a _Intersect or even that workaround… but not being able to make a boolean, is something I would like to understand the reason)
The short answer is that is a bug. The boolean operation is supposed to do exactly what you did manually.
A)That is not a very long workaround. Takes only a few seconds
B) You should be teaching your students to use trim and join before you teach them to do booleans. That way the student can understand what the boolean operation is doing (or in this case supposed to be doing). There are many situations where booleans will fail and there are many situations where users spend lots of wasted time setting things up for a boolean needlessly because they have no clue how booleans work.
You’re right that this boolean should work. I opened an issue here. If you run Intersect on the two parts you get one open curve as a result. There’s a real small gap between the start/end about 5x document tolerance. Booleans are pretty sensitive to problems like that but I think in this case it’s something we can work around.
I just now opened your file and moved the lower cylinder 0.01 down. And the boolean union works.
I also think the union should work in the original position but the lower cylinder surface is coincident / tangent to the cylindrical part of the vertical cylinder. This often causes problems.