Flowing Fabrication

Fabrication

pnts01 = Point.ByCoordinates(
[-0.98,-4.99,-11.28,-12,-15,-15,-15,-15,-15,-15,-14.5,-13,-11,-9,-6.5,-4]*304.8,
[-7.47,-9.86,-6.26,-6.26,-6.26,-9,-12,-16,-18,-19.5,-20,-20,-20,-20,-20,-19]*304.8,
[15.3,15.3,15.3,15.3,12.3,8,7,6.25,6,5.75,5.5,5,4.75,4.5,4.25,4]*304.8);

pnts02 = Point.ByCoordinates(
[-0.98,-4.99,-11.28,-12,-15,-15,-15,-15,-15,-15,-14.5,-13,-11,-9,-6.5,-4]*304.8,
[-7.47,-9.86,-6.26,-6.26,0.26,-4,-7,-11,-18,-19.5,-20,-20,-20,-20,-20,-19]*304.8,
[22.3,21.3,20.3,19.3,13.3,4,4,4,4,4,4,3,2,1,0.75,0.5]*304.8);

crv001 = NurbsCurve.ByPoints(pnts01);
crv002 = NurbsCurve.ByPoints(pnts02);

hrDvCt = 40;
vrDvCt = 3;
pnts03 = [crv001,crv002].PointsAtEqualChordLength((hrDvCt*2)-1);
pnts04 = [crv001,crv002].StartPoint;
pnts05 = [crv001,crv002].EndPoint;
pnts5A = List.AddItemToFront(pnts04<1>,pnts03<1>);
pnts06 = List.AddItemToEnd(pnts05<1>,pnts5A<1>);
lins01 = Line.ByStartPointEndPoint(pnts06[0],pnts06[1]);

srf001 = Surface.ByLoft(lins01);

pnts07 = lins01<1>.PointAtParameter(0..1..#(vrDvCt*4));

pnt111 = List.TakeEveryNthItem(pnts07,2,1);
pnt112 = List.Transpose(List.TakeEveryNthItem(pnt111<1>,4,[2,3])<1>);

pnt211 = List.TakeEveryNthItem(pnts07,2,0);
pnt212 = List.Transpose(List.TakeEveryNthItem(pnt211<1>,4,[1,0])<1>);

pnt311 = List.Flatten(List.Insert(pnt212<1><2>,pnt112<1><2>,1)<1>,-1);
pln311 = Plane.ByBestFitThroughPoints(pnt311);
pln312 = pln311.Translate(Vector.ByTwoPoints(pln311.Origin,List.FirstItem(pnt311<1>)));
cds312 = CoordinateSystem.ByPlane(pln312);
pnt312 = pnt311.Transform(cds312,CoordinateSystem.Identity());
pnt313 = Point.ByCoordinates(Math.Round(pnt312.X,2),Math.Round(pnt312.Y,2));
pnt314 = pnt313.Transform(CoordinateSystem.Identity(),cds312);

Last updated