Fair Mesh edge



(Firstly, sorry for bombarding the forum with questions, I normally calm down after a few weeks of using a new plugin!)

Is it possible to ‘fair’ a mesh edge?

In this example, I wish to take this square mesh edge and make it a circle, but maintain the number and connectivity of the vertices.

Thanks in advance.

(Alexander Schiftner) #2

Hi, we appreciate your feedback and questions!
It does not become completely clear to me what you are doing in this example. Which criteria are you optimizing the mesh for? Are you using a reference geometry? In case you do, the fairing of the boundary polygon might fight against the closeness to the boundary of your polygonal reference geometry boundary. You could try to give up closeness to the reference geometry boundary for most of your boundary vertices, and constrain the remaining ones to a plane using etSetVerticesCoplanar and optimization importance value Coplanarity.



sorry, I should have given more details.

I simply want to make that set of vertices into a circle on the same plane, rather than a square.

The reason is that I created the conic form using the polygon mesh, then weld method as described in your demo video for tensile form finding https://www.youtube.com/watch?v=-Wxzb7MhdVw

This leaves the open top of the mesh as a straight edged mesh with corners, however, I would like this mesh to go from a square base to a circular top - then optimise for springs.

So, I want to keep the mesh connectivity as it is, just use some sort of curve fairness to make the top a circle.

I’m sure it’s a simple task with the correct tool, but I am pretty new to Rhino etc. Sorry for a pretty dumb question!


@solosails, you can do that using _Flow command. Create a rectangle and a circle in the same plane of your mesh vertices. Then use _CrvSeam and make shure that the rectangle and circle seams match (in position and direction).

Turn points on for your mesh, start _Flow command, select the row of mesh vertices as in your image, for base curve select the rectangle, target curve is your circle. Use these settings for the Flow command:

_Copy=No _Rigid=No _Local=No _Stretch=Yes _PreserveStructure=No



Hi @clement,

Thanks for helping. I tried to follow and can see it’s doing something, but I must be getting a stage wrong as I just get some strange result …


Hi @solosails,

try it with the example file attached below. The rectangle (red) should be as close as possible to your mesh vertices of course. It serves as a base curve for the _Flow command. The circle (green) can be anywhere, as long as it is parallel to the rectangle. Make shure that the startpoints of both curves are as close to eachother as possible. Use _Dir or _CrvSeam to control where the curve start points are before flowing.

FlowMeshVertices.3dm (47.8 KB)

btw. do the _Flow before the subdivision (the state of your first picture).




Hmm, nearly there, but result is twisted …

(Alexander Schiftner) #8

did you try to change the curve direction?


I’ll give it a go. Thanks!


@solosails, below is what i get with the example file. Before:

After Flow:

If it is twisted like in your picture, it may be that one curve has opposite direction as the other. You can set the seam wherever you like, even in the middle of one of the linear sides of the rectangle. Make sure that the circle seam is matching close to that point and it matches the cure direction.



@clement That’s perfect, really appreciate your help here!

Best regards, Andrew