Smoothing Specific Mesh Vertices (Rhinocommon)

When working in Rhino, I’m able to turn on a mesh’s vertices, select a patch of them, run the ‘smooth’ command, and that part of the mesh smooths out nicely.

I’m trying to figure out how to do this programetically. I was hoping the V6 mesh.smooth function would do this but looks like it doesn’t accept specific vertices of a mesh. Or am I missing something there?

So it looks like I will have to try to script it. I can turn on a mesh’s vertices but I’m not sure how to select the vertices by their index (I’m going to be picking vertices that touch unusually long edge lengths). Any suggestions?

Thanks,
Sam

Hi @samlochner,

I don’t see anything exposed in RhinoCommon that would help. But I dont’ think it’s difficult to put a override together that takes a list of vertices to process. I’ve added this to the pile.

https://mcneel.myjetbrains.com/youtrack/issue/RH-47443

– Dale

Was searching for the same thing also in cpp the only option to fix are naked edges.

Thanks Dale!

RH-47443 is fixed in the latest Service Release

1 Like

Awesome!

Mesh smooth has issues when mesh vertices are coincident. For instance I would like to smooth a mesh that is joined of several meshes. Is the only way to weld a mesh or it is possible fix this to work with coincident vertices?

Hi @Petras_Vestartas are you saying that when you smooth a mesh with non-welded coincident vertices that those vertices separate? This is by design; you’ll need to make sure the mesh is welded before calling Smooth.

If this is by design, why this happens, I have simple case of 4 surfaces with equal division.
Some of coincident faces are treated as in one location others in separate.

I do get that there might occur zero tolerance thing when vertices differ by 0.00001.

But is there any possibility to smooth mesh so that I can have coincident vertices (I want to keep indexing)?

And in 2nd option when I properly weld I see that mesh vertex indices are merged (no coincident vertices)
instead of 400 vertices there are 361

So the question I have is it possible to weld a mesh in that manner, that I will have the same number of vertices and mesh smooth would work nicely as 2nd picture?

@Petras_Vestartas can you please attach your 3dm and GH definitions?

Here it is simplified and without any plugins
Issue2.gh (12.0 KB)