How to generate an offset curve in Grasshopper using only C#, either in the C# component or with Visual Studio:
NurbsCurve crv = new NurbsCurve(inputCurve.ToNurbsCurve()); //input curve to use as offset base Point3d origin = new Point3d(0, 0, 0); Vector3d vectxy = new Vector3d(0, 0, 1); Plane xy = new Plane(origin, vectxy); Curve[] crv4 = crv.Offset(xy, 1, 0.01, 0); //Get the offset curve array NurbsCurve[] crv3 = new NurbsCurve[crv4.Count()]; //Make a new array with the size of crv4.count for (int x = 0; x < crv4.Count(); x++) { //Loop through the Curve[] crv3[x] = new NurbsCurve(crv4[x].ToNurbsCurve()); //Convert each Curve into a NurbyCurvey }
Note that the offset function returns as a Curve[], and that the ToNurbsCurve() method can’t be used directly with arrays. The above code attempts to get around these limitations.