Trouble with Boolean Difference on 2 Meshes

Hi! I’m struggling to make a simple drilling on a goose’s beak. I found the model on thingiverse and all I want to do is to make space for a 10mm x 2mm neodym magnet.

The goose model is a closed mesh. I tried making a solid cylinder and then converting it to a mesh, so I could then use Mesh Boolean Difference. However, when applying the tool, the cylinder mesh disappears without “drilling” the beak.

Any advice is greatly appreciated (:

.3dm file

Hello - is the goal to get one round cavity in the underside of the otherwise ‘smooth’ object? 'Cause there is a lot of stuff going on under there with different details that seem to be colliding… is there a cleaner version of the goose model?



Hey, Pascal

This is the original .STL file
The OG author made some sort of “pointy ellipse” drilling in the goose’s beak, but that shape wasn’t a good fit for my neodym magnet. Also, I scaled the goose to make it bigger in my file, otherwise, the 10mm cylinder would cut the whole beak.

The goal is to make a round cavity, yeah. I figured I’d just put a cylinder on top of the pre-existing cavity and try to make the BDifference.

Hi Cyan - see if this is anything like what you are after.
single_piece_modify_Maybe.3dm (2.1 MB)


Yes, that’s it! Thank you, Pascal (:
Do you mind telling me what you did? I’d really like to have the knowledge under my belt

Hey - I’m having a bit of trouble with mesh boolean operations in general. Could anyone point me in the right direction?

Hi - the code involved in mesh boolean operations has been rewritten for Rhino 7. You might want to try your models in the current WIP.

Hi Cyan - sorry, I’ll get you a blow by blow for what I did - basically the obvious, except that the underside was already messed up with previous attempts, so most of the work is in repairing that - with a clean part it would just work.

So the part was already cut up in doubtful ways - the cross sections through the area to work on
show the problems:

So Explode the part and delete all the junky parts:

leaving you with just the goose with a bit missing:

The trick is to fill that hole, then BooleanDifference out the little cylinder. One way to do that is to select control points near the edge of the hole and build a patch surface:

then trim the patch with the border curve of the hole:


Convert the patch surface to a mesh (to match your part, which is a mesh, not a surface)

Join the new mesh to the larger mesh:

annd then matchMeshEdge with ‘DistanceToAdjust’ set to maybe .1 This will get the mesh vertices matched up there along that edge. the new cross sections are cleaner:

Now you can try a MeshBooleanDifference with the small cylinder.


1 Like