Curve through points

Beginner here in Grasshopper. My projects is to make a “cave” hall. My idea was to make a bunch of randomized curves to loft. I would like to create curves through points. In the real world these would be CNC-ed out of sheet goods, so the green lines represent the extents of the 4x8s. I’d like a nurbs curve that runs through the other points. I’ve no idea what operation to use for Curve through points.

I used XYZ sliders and construct pts to create what you see in the pic. I expect there’s is a better way to do this? In fact, looking at the polyline operation I don’t see how to make the construction points the points data for the line.

I think you want the Interpolate component.

Other options are the Nurbs Curve

Or Polyline

All are located on the Spline panel of the Curve tab.

Curves are drawn following the order of the points in your list. Point order can be displayed with the Point List component. (I have randomized the point order here).

These points can be sorted back into order by placing a a circle in the middle of them and using the Sort Along Curve component. The Average component creates a point in the middle of the points we want to sort. A circle is created by using a plane with it’s x-axis pointing in the -y direction and y-axis pointing in the +x direction. The points are sorted in a counter clockwise direction from the start/end point of the circle (this is the reason for creating the plane, its x-axis determines the start/end point of the circle).

The sort order can be reversed by reversing the direction of the plane y-axis (note the change to the Y input of the Create Plane component).


1 Like

Thanks so much for taking the time to reply and the examples. I think interpolate is what I want. This is what I’m trying to achieve. The 4 corner points would only adjust on the X, all other points adjust on the x,z. As you can see, I made an xyz for each point. I couldn’t figure out how to get the resulting points to be the data for the curve. i.e. How to make the resulting points the point list.

You can make them into a list by feeding them into a Merge component.