R6 and R5 bd fail


(Jakob Normand) #1

Hi McNeel and Rhino-ists

Why is this - fairly simple - boolean difference failing? I can see that it’s an intersection error, yes… But why? Simple cylinders, simple tube-ish shape. What gives?

TIA, Jakob

R6 bd fail.3dm (4.4 MB)


#2

Yeah, this looks buggish to me… Your file tolerances are low for this size of object at 0.01, but even upping them to 0.001 or 0.0001, still doesn’t work - some of the intersections are not complete. Looks like always the same ones, too. Exploding/rebuilding the edges/rejoining on the large ring part didn’t help.

I remade the ring part using a section through the original and a revolve (using .001 file tolerances) and then the boolean succeeded with your original cylinders - only partially though, some of the parts did not get subtracted.

Then I remade the small cylinder and arrayed it, then tried again - no success at all…

Go figure. (@pascal - one for the bug heap?)

–Mitch


#3

Hello Normand
Switch on all the isocurves. This worked when I tested just one of the small rods.


#4

Best in this case is to go the manual route, intersect 2 that do work and use this intersection to trim the small cilinder, then array curve and cilinder-part, select the curves and group them, the split the large ring with the curve group, and join the split result with the small parts.R6 bd fail_sg.3dm (2.7 MB)


#5

Nope, that didn’t work here… would have surprised me if it did… You probably just stumbled on one of them that worked already.


#6

Yeah, but this should just work


#7

I mean in case a boolean doesn’t work as expected. I agree in this case it should work but quite often Rhino will fail with boolean operations where one can ‘see’ an unambiguous solution.


(Pascal Golay) #8

Hi Jakob, all - thanks, I’ll get this one the pile - it works if you make the ring outer surface much denser in the around direction (InsertKnot > Automatic a few times). I also made the tolerance .001 but I don’t know that that matters in this case.
https://mcneel.myjetbrains.com/youtrack/issue/RH-46384
-Pascal


(Jakob Normand) #9

Hi @pascal, @Helvetosaur, @Gijs etc.

Thanks for the feedback. I know the work-arounds, but as Mitch points out: this is SO simple and should just work. I know you detest the automated boolen tools, @Gijs, and I agree for complicated operations, but this… it should just work. The outer ring is two circles extruded with a cylinder boolean’ed on it. The smaller rods are a piped curve that has been arrayed. I too tried to re-do both outer ring and rods to no avail. And sorry about the file tolerance - it was 0.001 originally. I was messing with it and must have forgotten to undo. I’ll so a complete re-draw tomorrow to see if I can find out what went wrong!
Again, thanks for the input!
-Jakob


#10

I don’t detest booleans at all, I use them all the time in fact… until they fail :wink: