Offset mesh at various distances along the normal vertices

Hello Guys

I know that a similar topic was discussed at the old forum and there is a plug-in for various mesh offsets at different vertices

I decided to make a similar plugin myself, but unfortunately the method does not accept a dynamic array? but only 1 value is integer or double. Please tell me how can this be fixed?

I enclose my code

Tell me, please, maybe there are other methods and ways to do a mesh offset by a different amount?

OffsetMeshVariableError.cs (2.7 KB)

What is your question exactly? You’ve already pointed out that Mesh.Offset only accepts a single value and doesn’t have an overload which accepts a value for each vertex. This cannot be “fixed”, if you want this functionality you have to write it yourself?

maybe there is another way and method to offset the mesh?

You should use a list of input distances equal to the amount of mesh verts. Translate each vert by its corresponding distance in the direction of each verts normal, then reconstruct the mesh. You should use welded meshes here to ensure your “connected” verts don’t offset apart. Another tricky thing to consider is how to try and point the vert movement directions so that they won’t self intersect the mesh with other parts of the offset in concave offset conditions.


Hey, AlexWer! I’m trying to achieve this double value in a offset mesh. Can you please tell me the name of the Plug-in that makes this?

Is it possible to make this in Rhino or do I need Grasshoper ??

1 Like

Thank you very much for the answer and the link. I’ll try to write such an option :slightly_smiling_face:

Yes, the offset function of the mesh at different distances is in the plugin PhylloMachine
its code can even be looked at VB.NET


Thanks a lot! I’ll check it out! :slight_smile: