# Equidistant curves on a mesh

I am trying to create a contour of equidistant curves on top of a mesh with double curvature. On a planar mesh this is easy to achieve with the Contour component. However on a mesh with double curvature the resulting curves are not at equal distance from each other. Is there any trick to achieve such a geometric result.

Equidistant curves on a mesh.gh (10.7 KB)

You could try the compass method which was once introduced by Frei Otto. There were some Plug-Ins, when I searched some months ago, but I ended up scripting a very buggy one myself.

1 Like

I think David is asking about sets of curves going all the way across the surface in each direction at equal distance from the adjacent curves, not a grid of equal length segments(aka Chebyshev net) like you might use the compass method for.

I think that for a general mesh, finding these equidistant curves is an unavoidably iterative problem, so will require looping in some fashion, either with scripting or plugins (or just chaining repeated components together if you donâ€™t need a huge number).

A simple approach can be to pipe the starting curve, find the intersections, pipe the intersection curves etc

1 Like

The simple approach makes sense and I believe will work wonders. I thought that it will be iterative too.

https://discourse.mcneel.com/t/heat-method/105135/53

1 Like

Yes, I think that should work too. The source would need to be all the vertices of the starting curve.

1 Like

It ought to be something like this. I just donâ€™t know how to loop it.
Equidistant curves on a mesh_v2.gh (17.0 KB)

Geodesic distance is what you are after

Old script that is exact on triangle mesh but not fast if mesh is too big or distance too long.

1 Like

Can you upload it? I think that you are correct on the geodesic part.

Here it is
I wanted to test it with a subdivision at level 2 and it didnâ€™t finish !!
Heat distance method with Heat component

My tool using Geodesci WaveFront coding

Equidistant curves on a mesh_v2_LD.gh (34.7 KB)
if you see that with my tool, it means the number of iteration is not enough.

2 Likes

Arenâ€™t you trying to do this only from the edge of the surface not a point on it?

Kind of but with a linear distribution (with a guide vector as a direction) not radial as this example.

Like for my tool this implementation of Heat Method takes points, so like said by @DanielPiker

it is what I have done, it works quite well with 200 points, not good with 50 points.

1 Like

I hit a roadblock. The Nautilus is for Rhino 7. I am still stuck at 6. Will upgrade straight to 8.

There must be some mesh iso splitting somewhere

Youâ€™ll have to extract the edges and then find the good ones !!

1 Like

That heat method discussion does go into vectors later on.

1 Like

There is a â€śMesh Contour in Fieldâ€ť Millepede

1 Like

I have managed to create a working loop and the results are close to perfect.
I get small deviations when it comes to the length of the individual quad edges.
What I notice is that the quads that result from this method progressively lose their orthogonality.
Do you know of a method to keep the quads as square as possible? They donÂ´t need to be planar.
Or maybe it is impossible to achieve this as well?
Equidistant Mesh.3dm (151.3 KB)

Do you mean the quads formed by the green curves here?

I wouldnâ€™t expect these to stay orthogonal as you get further out.

Can I ask whatâ€™s the end result youâ€™re aiming for with this?
Iâ€™m guessing itâ€™s maybe something to do with cutting patterns for a fabric structure?

If so, depending on whether youâ€™re aiming to minimise twist within each strip in the assembled form, or to keep the flat pieces as straight as possible, or with least width variation, or some trade-off between these,
you might want different curves, eg the 2 principal curvatures (which will intersect orthogonally), geodesics, or contours of geodesic distance.