Solid difference fails on closed solid polysurfaces

Hello,

I have to calculate the volumetric difference between two closed solid polysurfaces, but the boolean difference operation always fails. I included example data, but I had this problem with many differnt objects so far. It only works reliable on very basic shapes for me. Are there any operations / repairs I can do to make the boolean operations work for my solids?

I want to clip the object in Picture 1 from the large cone in Picture 2.

1 2

A solid union of the objects also fails.

BooleanDifferenceProblemExample.3dm (4.4 MB)

The polysurfaces were created from meshes using Pufferfish’s Mesh To Polysurface functionality. Unfortunately I have to work with mesh data, because my workflow has to handle stl input eventually.

I tried to apply the tips provieded by Fixing Boolean Problems [McNeel Wiki], but could’t get it to work yet.

I’m looking forward to your tips and insights!

Additional Info: If I export the Breps as .STEP and then do the boolean difference in Fusion 360 it works as expected.

Hello - in this case the simplest would be to make a ‘proper’ cone by Revolving a line from tip to base, Cap the result and difference. MergeAllCoplanarFaces on the boxy part first as well.

image

-Pascal

Hi, thanks for your reply. The problem is, that I’m trying to create an automated process, that has to deal with two arbitrary input objects (meshes), add “connection-structures” to one object (the cylinders with cones at the top in the example data) and substract them from the other object, without any manual intervention if possible. Are there maybe any plugins that handle boolean operations differently from Rhinos own implementation?

I experimented a little more and maybe coplanar sides on the two objects are causing the boolean operations to fail. I moved one of the objects 0.01 mm to the side and suddenly everything worked as expected (using breps and meshes as well). I’m not sure if this will be a possible fix all the time, but for now it seems to work.