Solid diffrerence problem

I have three breps. Two small and one large. I want to make solid diffrence of the large and the two small.
In theory if I union the two first and then make a soild difference should be identicanal to the one of I make a solid diference of the large and the two small ones on by one. Actually this is not the case. If I union the two small first the solid differnce does not work. Why?


solid diff problem.3dm (120.0 KB)
sdiff prolem.gh (8.4 KB)

Looks like another common rhino tolerance problem.
Try to change your rhino unit absolute tolerance from 0.001 to 0.01.


solid diff problem_re.3dm (163.0 KB)
sdiff prolem_re.gh (7.4 KB)

Hi Kim, Thanks for the reply. Where can I access this settting? Acaully I work in Rhino 5.

Actually chnaging the tolrence from 0.001 to 0.01 did not help for me.

F5–>Recompute
F5

I am doing it on Rhino 5. maybe that is why did not help. Your definition is identical to mine isnt it?

No problem with R5 on my machine.


solid diff problem_reR5.3dm (148.0 KB)
sdiff prolem_reR5.gh (8.1 KB)

Actually this a small part of a large difintion. I have just dicovered if I lower the tolerence it is causing problems on other part of my definition. I am using solid intersections in other parts of definition. If I lower the value those part which worked OK until now they fail. Any other solution?

You could use it in the script component with a different tolerance setting : https://developer.rhino3d.com/api/RhinoCommon/html/M_Rhino_Geometry_Brep_CreateBooleanDifference.htm

That sounds promising however unfortuntally I am just an architect using widgets only. Programing is not not option for me.

the solution could be that I make the solid differnce one by one, but I dint know how my small parts will occur. To solve this a recusrsive approach is needed sint it?

Rhino is still vulnerable to Boolean operations between geometries whose faces or edges match.
If you still have difficulties working with a change in the tolerance setting, you can change the size of your geometries slightly and eliminate the matching part to make the Boolean operation easier.

not sure if it helps:sdiff prolem_reR5_tol.gh (10.4 KB)