Mesh Boolean operations are infuriating

So many times boolean operations on Meshed don’t work or don’t result in the expected results. Without any explanation or feedback.

Could someone have a look at my most recent example? I’m trying to have a cutout of the round shape in the prism. At first the round shape indicated it was a bad mesh, I ran mesh repair so now it’s a good mesh, but still no improvement…

TERRASELEMENT UITSPARING.3dm (1.0 MB)

Which specific command are you trying to use? Are you using a Boolean… command or a MeshBoolean….command? The Boolean… commands do not work on meshes.

Hi David,

Thanks for the feedback, I am using the MeshBoolean operations

Goeiemorgen Simon,
There are a few other objects in that file - so just to make sure, is it the pink mesh that you want to subtract from the blue mesh in the following picture?
image

On my system, this appears to work but the result is probably not as what you are expecting. Is that what you are seeing?

Hi Wim,

Sorry for the late reply.

There is a big polysurface prism in the 3dm file as well, this is the one I’m trying to substract from.

In fact all I really want is a negative of the shape in your post. Because we’re trying to make a mold for this part.

Regards,
Simon.

Thanks for that additional information, Simon!
I’ve created item RH-48337 for the developer to look at.

Hi Wim,

Thanks for creating a bug report. You are discussing the fact that the new operations will be in V7. But I forgot to mention I’m still running V5 of Rhino. Does this mean this will never be fixed in Rhino V5?

I’m running in this type of bug often. Most of the time there’s a work around, but this time nothing seems to work. Do you have any idea for a workaround?

Thanks.

Hoi Simon,

That is correct, yes. Service Release 14 was the last update to RH5.

I take it that the mesh objects were not created in Rhino?
Generally, this isn’t a recommended workflow, but in this case, you could convert the mesh to NURBS and trim and split those surfaces. The other alternative is to recreate the mesh object from scratch with NURBS surfaces.

Yes, the mesh was created by our client, in Sketchup. I converted the model from .skp to .stl so i could use it in Rhino.

Maybe I would have more luck if I convert from .skp to .dxf instead? (But then the resulting model has weird layers and “block instances”, i’m not sure how to handle those)

I’ll try your method also and conver to NURBS before trying to trim.

If all else fails, can you recommend a different program which isn’t so picky in doing Mesh operations right? Is there any hope that v7 of Rhino will have working commands?

Regards,
Simon.

We constantly have issues with perfectly good meshes that do not boolean. This part of the tools needs a lot of love IMO.

The craziest thing here is that these are 2 perfectly good meshes, they fail to boolean union and Rhino doesn’t’ even own up to it. It should at least tell us in the command line that the boolean failed. Just like Nurbs boolean do.

We have two developers working on mesh tools for V7.

1 Like

@John_Brock,

I have developed a complex Rhinoscript written in fully documented Python for trimming or making a hole in a triangular-based mesh that works in cases where Rhino 6 trim mesh command fails. In cases where both work it seems to be 10x faster. The trim area can be defined by a closed polyline or curve of any shape. It includes mesh cleanup after the trim to eliminate duplicate vertices, degenerate faces, disjoint mesh pieces and highlights any overlapping mesh faces that may have been created on the naked edges (I have only seen these for extremely complex meshes created by photogrammetry for tall trees). For the best chance of success, the mesh to be trimmed must be cleaned up first with a short Rhinoscript that is included.

I could simplify the Python code and make it available here if that would be of help. Just let me know.

I tried using the Rhino 6 trim mesh command for some time but found it almost always failed on the interesting but very large meshes (>4M faces) created by photogrammetry from drone photos. My replacement trim command works 99.9% of the time on these large, complex meshes.

Regards,
Terry.

2 Likes

I added a link to this post to the bug item the developers see.
Thanks

giphy

would be awesome if you could post the script! I have a similar problem right now…

Cheers

There is the ‘pairs of faces that intersect each other’ caveat which, in defence of Rhino, it does own up topossibly causing problems with boolean operations. I have 3D Sprint for my 3D Systems printers which claims to repair this. There was the testmsx command which sort of highlighted intersecting faces with a curve.

Indefensible situation. The whole point of good geometry solvers (programmers and software) is to exactly solve for these issues.

I know programmers would like users to make objects clearly, cleanly and decisively intersect with each other. Those situations are irrelevant in many real world scenarios.

All Booleans in Rhino needs to get a lot better, they are way worse than in many other programs in both Nurbs and Meshes.

G

1 Like

Yeah for sure. I mean my defense of ‘pairs of faces that intersect each other’ is thinly veiled as an attack really - I’m not a fan of that warning and diagnosis, since you’re basically being told something is wrong with no ‘shipped’ tool to diagnose and fix it. Unless I’m missing something/something’s changed.

Rudi,

Do you still need a better way to trim your meshes? Right now my mesh trimming code is torn up due to other items that I am adding. But I could put together something by tomorrow. Would that be useful?

My mesh trimming code works by prompting you to draw a closed polyline over a single mesh which is then projected down onto the mesh and the mesh is trimmed along this boundary. Do you need to make holes in your mesh or just trim off the mesh beyond a polyline? Do you want straight line segments between the points of the polyline you enter or a curve? Does your mesh have texture that is applied to it (material in Rhinospeak)? Your answers to these question will affect how long it takes me to fix up my code so it will work for your case.

Regards,
Terry.

Terry, Really interested in this. Would it be possible to post it? Many Thanks.

K