Arcs or arches from curve points

Hello. I am trying to divide an input curve evenly and then use the points to create a series of contiguous arcs or archways. I was able to figure out a crude version, using cull Pattern, list item, and interpolate, but I know there’s a better way to do this. Extra points if we can use actual arcs, but not necessary. Any guidance would be very much appreciated. Thanks!

arcsFromCrv.gh (22.2 KB)

I played a bit with your file and came to interesting question:

  • an arc is always in 1 plane. Using arcs for your curve will end up in a series of planes along a polyline
  • if you want it curved together with the curve you started with, you have to create a surface (in Z direction and project your arcs on that.
  • or in a series of interpolates curves somewhere in between (as you already did).

So what direction should we follow?

I’m open to either, but for simplicity’s sake, I’m thinking the interpolate is easier. I’m mostly looking for help on how to parse the list of points, so that I don’t have to do an endless amount of list item and shift list, which would break as soon as i change the division count. Is there a way to automatically use indices 0&1 from the start/end point list and combine that with index 0 from the list of points moved in the z direction, and they need to be in order, and then the next arc is indices 1&2 from the first list and index 1 from the 2nd, and so on? Or maybe a better way to approach all together? Working with lists has always been the hard part for me with grasshopper.

forgive my use of the word ‘arc’. i know they aren’t arcs, but arches or whatever we want to call that shape.

arcsFromCrv_jvs01.gh (16.9 KB)

Thanks for that. It’s going to take me some time to wrap my head around it, but I appreciate your help.

Two versions:
One using Sift to sort the list and Move the middle one up.
Interpolate creates a nice waving line.

Second version:
You can approach this as a division in 24 where you use groups of 3 overlapping,
I choose to divide in 12 pieces. Subcurve to get 12 Curves (Cull Index is used to NOT get 13 curves (from end to begin point of your curve).
Every curve gets a Curve Middle, Move it up. and Interpolate
NB: Graft on Subcurve is used to NOT flatten the groups of 3 into one big group.


arcsFromCrvEW.gh (16.4 KB)

Brilliant and exactly what I was going for. Thank you!