# Array along Curve

![](https://1430428134-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Ld8QK19sjP1I9rhLouo%2F-Lg-5tnil1guWrvY4uFk%2F-Lg-5zVpx6k5Zus4m9JN%2FarrayAlongCurve.png?alt=media\&token=447ba91a-c50a-462a-8f15-9a357c6b92bc)

```d
n = 61;

p = Point.ByCoordinates({-1000, -750, -200, -150}, 0, {0, 250, 400, 450});
ns = Surface.ByRevolve(NurbsCurve.ByControlPoints(p, 2),
Point.Origin(), Vector.ZAxis(), 0, 360);
il = ns.GetIsoline(1, {0, 0.075, 0.15, 0.2, 0.35, 0.5, 0.65, 0.8, 1});

il1 = List.DropItems(il,3);
pn1 = il1<1>.PointAtParameter((0..1..#n)<2>);
il2 = List.TakeItems(il,3);
pn2 = il2<1>.PointAtParameter((0..1..#(n*2)-1)<2>);

ln1 = Line.ByStartPointEndPoint(pn1[4],pn1[5]);
pn3 = pn1[0..4];
pn4 = List.ShiftIndices(pn1[1..4]<1>,1);
pn5 = List.ShiftIndices(pn1[1..4]<1>,-1);
ln2 = List.DropItems(Line.ByStartPointEndPoint(pn3,pn4)<1>,1);
ln3 = List.DropItems(Line.ByStartPointEndPoint(pn3,pn5)<1>,-1);
pn6 = List.DropItems(List.Sublists(pn1[0],0..3,3),-1);
pn7 = List.TakeEveryNthItem(List.ShiftIndices(pn2[2],-3),6,1);
ln4 = Line.ByStartPointEndPoint(pn6,pn7);
pn8 = List.TakeEveryNthItem(pn2[1],6,1);
pn9 = List.ShiftIndices(pn8,-1);
ln5 = List.DropItems(Line.ByStartPointEndPoint(pn7,pn8),-1);
ln6 = List.DropItems(Line.ByStartPointEndPoint(pn7,pn9),-1);
p10 = List.TakeEveryNthItem(pn2[0],6,1);
ln7 = Line.ByStartPointEndPoint(pn8,p10);

{il1,ln1,ln2,ln3,ln4,ln5,ln6,ln7};
```

![](https://1430428134-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Ld8QK19sjP1I9rhLouo%2F-Lg-5FDjEsrOJAlA3Kbd%2F-Lg-5inNfvkPw_SyUbOn%2FCurvePointsGrouping.png?alt=media\&token=ba27424a-bca9-439f-886f-fa0d3e100910)

{% file src="<https://1430428134-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Ld8QK19sjP1I9rhLouo%2F-Lg-5FDjEsrOJAlA3Kbd%2F-Lg-5V1p6xi6y3icST8_%2FCurvePointsGrouping.dyn?alt=media&token=24470b9c-a62d-4edd-bf34-355b1c924e63>" %}
