Get rid of interlocking geometries

Hello there!

This is going to be a very specific question and I don’t know if I’m going to get an answer to this…

I made a simple example:

I have a cone with a dent in it. Over this original cone, I created a cap for said cone with the offset command. The goal now is to keep the overall structure and that the dent should be visible on the outer cone as much as possible, but it should still be possible to move the outer cone upwards and therefore completely seperate the two parts.

The problem now is, if I moved the outer cone upwards, the part with the dent will hit on the inner cone (they intersect) and therefore in the real physical world, I couldn’t remove the outer cone from the inner cone.

Now my question is: Is there a way to somehow simulate soft body physics in rhino, such that when I move the outer cone is moved upwards, the dent in it gets flattened?
Another approach would be to use boolean difference over and over: Is there a function that let’s me continually use boolean difference?
Or do you have another approach/application that could do the job?

Any lead would be much appreciated!

Hi Bbenzo -

No. Not in plain Rhino. I am not aware of any plug-in, myself, that might do this.


It may be that you’re wording the question in such a way that it makes the problem you’re solving sound harder than it is.

If you rephrase your question with a complete list of geometrical parameters describing it and what single parameter you consider variable, you’ll have a static geometry question rather than a simulation problem.

It seems like you need to find the deepest dent you can make in the outer cone such that the outer cone’s maximum interior dimension at some height is larger than the max dimension of the inner cone at any point above.

You’re leaving out a lot of key information, though, such as how the notch is shaped and whether the material has appreciable thickness.

If this is a simplified example of a general case, then you might be able to rephrase the question and solve it by cutting sections from each and making sure that all of the lower sections of the outer cone have no 2D intersection with any of the sections of the outer cone above them when they’re put into the same plane. (my phrasing there assumes that there’s some thickness… if it’s essentially zero thickness than you can just make sure the 2D curves don’t intersect)

This image shows how much you have to modify the outer cone’s dent so that it will clear the inner dent.

The red arrow shows the direction the outer cone needs to move to be drawn from the inner cone.
The blue area is how much of the outer cone’s dent needs to be filled to clear the inner cone.

To model that blue area, do a silhouette (when viewed in the pull direction) of the lip on the inner cone that the outer cone needs to clear and then extrude that curve and then trim and join that surface to the outer cone.

You can translate the second object vertically in increments of let’s say 1 millimeter and if at least one of the ten objects intersects with the original shape, it’s an intersection.

Perhaps it will be easier to understand if the cones are rotated so that the direction the outer cone is pulled off the inner cone is vertical.

1 Like

Hey Jom, Thank you so much for looking into it. It seems like your approach is pretty intuitive and I would like to pursue this approach.
Do you think that could also work with more complex meshes?
It’s supposed to be for grillz and I work with scan files which are pretty complex and when I use the silhouette command, the curves to extrude are not clean at all.

Grillz Test.stl (7.7 MB)

If you want to and have time here’s my file, maybe you can make it work in a clean way.

First of all, I don’t really know much about mesh modeling.
and second I’m not quite sure how your previous problem applies to this new version of the problem.

Are you just trying fill the areas that have undercuts so that it will draw when molded? If so, in general it should work, but I don’t know if silhouette will work with a mesh or how you would extrude a mesh.

Maybe the drape command would give you a usable result.

First of all, thank you a lot for the time you invest, I appreciate it a lot!

The problem applies here too because with the offset command i have parts of my teeth, which have the same “interlocking” feature, especially where I have my retainers.

The drape command might be a nice approach, however, when I use it, the draped surface doesn’t lay nicely on my original mesh and goes into it.

Is there some further options to tweak the drape command to make it more accurate? The chosen distance in this example is already the smallest…
Or is there a plug in that does more accurate drapes?