Fixing large gaps and holes in STL

Hi all,

I have this STL with massive gaps and holes. QuadRemesh helps but not much. Any advice on how to create a smooth surface over these big cliffs and divots?

link to file

1 Like

I think part of the issue is that they aren’t actual simple surface holes in the mesh. Somehow the mesh was processed with a lot of the cliffs making up the surface (i.e. the mesh surface runs along the cliff walls)

Here’s a go at shrink wrapping your surface.
Some of the holes are very deep, so it’s a bit tricky getting a setting that captures the shape well and also avoids going into these holes, but this does produce a valid closed mesh.
last_shrinkwrap.3dm (290.5 KB)
last_shrinkwrap.gh (3.8 KB)

1 Like

Hi @krishnab,

If the initial mesh is junk, QuadRemesh isn’t going to help.

This was made with Dendro and QuadRemesh.

202011161128r.3dm (5.4 MB)

– Dale

2 Likes

Hi Daniel,

Thank you so much! Is this something I can do on my own or just a wonderful favor? “Shrinkwrap” sound like exactly what I’m looking for. Something that would get the general shape while running over the holes.

Wow Dale, thanks a bunch. That mesh looks extremely good. I will look into Dendro. Do I need to download Grasshopper or can that work with Rhino7?

Grasshopper is included with both Rhino 6 and 7.

1 Like

Dale,

If you wouldn’t mind, could you show me the component layout in Grasshopper you used to create this mesh with Dendro, as well as the Dendro feature you used? I have never used Grasshopper nor Dendro, but it seems I need to drag and drop some process modules and option cards and join them together.

This is what I have so far. I have converted to a volume. Not sure if adaptivity makes a big difference here. Also played with smoothing which may or may not be necessary. Did you use some type of volume blending or intersection tool to fill all the big gaps?

Hi @krishnab,

This is all I did.

Krishna.gh (7.2 KB)

– Dale

1 Like

Thanks again Dale!

A couple of questions.

  1. It seems like the C# script is doing most of the work here rather than Dendro, correct? Are those just Rhino commands implemented through Grasshopper?

  2. I think I gave you the easy mesh on accident, I have worse meshes with big gaps. Do you have advice on how to fill large holes like in the mesh below?

FILE LINK

No. The C# script just cleans up any degenerate faces to the resulting mesh is valid.

Personally I don’t. I don’t know of Dendro can make up for the missing data.

Certainly you should try to obtain higher quality meshes.

– Dale

Hi Dale,

Thanks for the advice. So just for information purposes what is going on here then? Is the process of just converting the mesh to a volume and back to a mesh cleaning things up?

Yes. Like I mentioned earlier, if your mesh isn’t any good, QuadRemesh isn’t going to work.

– Dale

Krishna,

Are you using the mesh for reverse engineering or something else?

One of the handy things about Dendro is that it can create a solid volume from open/non-manifold mesh data like you would get out of a 3D scanner (as long as your voxel size is larger than any holes in the mesh at least).

Problem with rough scan data like this is that by the time you get a smooth output object, you will have significantly deviated from the original scan and/or lost a bunch of detail in your features.

Your only options are to be ok with this level of loss, re-scan the object or rebuild the scan manually in Rhino. In this case, the shape you are scanning is simple enough that a manual rebuild is probably your best bet.

1 Like

@CharlieP

Dude that looks like exactly what I need. Did you basically draw in some volumes and then use Dendro to merge them?

If you could send me the .gh that would be great.

Honestly the image you have looks very good. My priority with this activity is for accuracy in dimensions of curves and girths along the surface. On first appearance it looks like the green volume is approximating the missing parts of the volume quite well.

Something like that, yes. I’d like to scale them up along certain axes to match a larger scan I have.