Is there a way to analyse a [dens] mesh for 3D printing compatibility?

Thank you
I’m regularly using the rhino check mesh to verify integrity.
The issue is with finding hidden areas where the mesh is too thin, in order to work on these areas.
there are too many details, not something I can reliably sort with the [available here] printing shop .

  • I don’t yet know grasshopper [only some interface basics] but from reading here on discourse, I was hoping there is a suitable way to do this kind of analysis…?

thanks a lot

I’ve never actually implemented, but did notice there is new RhinoCommon mesh method for Rhino 6 called Mesh.ComputeThickness. This might be what you’re looking for:

that looks like I tool I would love to try
but I think it is only for PC though…? and I’m on a Mac here.
in addition :hot_face: I have no idea how to use Rhino Common API.
best regards

I’m pretty sure RhinoCommon is the same for both.

Here’s a quick go at implementing the method (I think it’s correct): (16.8 KB)

1 Like

Hi Anders thanks a lot.
yes I can open your definition in the Mac, [there was a note there in the rhino common page that said required rhino for Windows 6.17 ].

Sorry for the Grasshopper newbe question,

  1. how do I reference my mesh ?
  2. what’s the max polygons that it can manage? the mesh is 3.5 mil at the moment . how far down [decimation ] do I need to go for the analyses to be workable…?

Sorry I remembered how to reference the mesh

but 3.5 mil is a spinning beach ball

looks like it compute each point on the mesh…?

You right-click the mesh parameter and select Set One Mesh

For that kind of performance, you’re probably looking at an entirely different solution (read: highly optimised C/C++ standalone application). You might be able to speed things up in Grasshopper by implementing the method in a compiled C# component. But since we’re essentially only making one call (i.e. there’s no expensive large IronPython looping going on), I doubt that’ll help much. Here’s a quick test with ramping up the face count:

Note that there’s also cost associated with outputting large amounts of data. But in this case (i.e. floats and lines), that is likely negligible.

I think a larger question might be: why is your mesh so huge in the first place, and are there measures you might take to have this not be the case?

thanks a lot

  1. do you know if there’s a way to stop it , short of force quit rhino.

  2. I’ll try with your 2nd definition later this evening.

  3. The mesh is dense because it is needed for sculpting small details [in Zbrush]. but I can decimate it quite a lot, so the question will be: what do you think is a workable range: 500k, 250k, 100k, less than that will deform the mesh too much.
    with best regards

Hitting/holding the ESC button should force Grasshopper to stop computing. But this doesn’t always help when one is forcing Rhino to it’s knees :wink:

It’s hard to say, the error of approximation is always a case-by-case basis. That said, there’s only one way to find out. I’d try to shoot out meshes of different resolution and see what works.

Edit: Note that the method also has two additional overloads that might be useful.

Thank you very much
I’ll sit to study your suggestions in the evening.

best regards

Hi Anders
thank you.
Actually I don’t really know how to input the other 2 method into your definition…?
The one you shared worked with a 500k decimation on a this part of a ring

the sculpted part looks surreal.
But now I have no idea how to use all these thousands of red lines to find the problem spots on the mesh? [ this part is only about 15 x 15 mm. ]
many thanks

It looks like your mesh normals are facing the wrong way, such that the rays (I assume is the underlying method used) are being shot outwards. Try flipping your mesh vertex and face normals and see what that does.

here it is flipped

The lines go in the other direction as you said.
Unfortunately I still have no idea how to use these red lines to analyse the thickness… or to say it differently, I do not understand what the definition does? and how to work with it?

with best regards

Each line represents a vertex where the mesh thickness is less or equal to the MaxThickness parameter. Where mesh thickness is defined as the ray distance along the reversed vertex normal till you hit the inside of the mesh (if I’ve understood the method accurately).

Edit: It looks like your normals are still flipped, or that your mesh normals are fucked somehow. It generally is a good idea to provide files when asking questions/debugging.

Thank you.
I know the need to share files, unfortunately I can not share this file publicly.

And yes you are correct, It does have some normals directions and other issues, nothing that will impact printing though, which is what it is made for. The sculpted parts were not created in Rhino.

Perhaps for the sake of understanding the usability of the method, a simpler mesh will be more appropriate.
Then I’ll try to sharpen the question. let say I get the mesh to be fully Rhino good. Then I still have 500k red lines of data! as the method creates a ray for every vertex, how can this be used in practice?

many thanks for your patients.

  • I’ve been a goldsmith of many years, I know how to make this kind of tiny microscopical sculpted thing directly in gold just with hand tools, but coding and grasshopper is very challenging.
    and I’m trying to learn.

all the best

Hi everyone
After not finding a workable solution for analysing thickness here in Rhino, I quite blindly sent that piece [that i used as an example here], for 3D printing and had it cast in gold.
It came out with lots of too thin and border line areas.

Then just last week the analyses tool I was looking for came out [albeit not in Rhino] with the Zbrush2020. There you can set min thickness [and max]. and it gives a colour gradient analyses. similar method to what Rhino use in some of it’s analyses tools.

I strongly feel Rhino very much need to have its own version of Thickness analyses. it so important for 3D printed part, more so now with the development of the SubD suite, when more organic [difficult to measure] things, become an integral part of Vanilla Rhino.

thanks a lot



in Rhino? It’s by no means perfect, but might be worth a try.

I didn’t realise it was there…
Only I can’t get it to actually work. [on the WIP]
first try on a very simple object, it crushed rhino.
second try on the same mesh as pictured above in this thread, it simply gave up after a little while.

  • also the control window was unresponsive, could not enter the values.

Does it works on your end? [it could be a Mac issue on my side]

with best regards

It’s not usually been very amazing for me in the past. It’ll probably be thrown off by not being watertight or polygon count I’m guessing. Or yeah, maybe it’s a Mac thing.

I’ll post a bug report in the Serengeti Mac. Hopefully it will get look at.