//Number of Divisionsct =15;//Thickness of Shellth =0.15;//Base, Mid and Top Profilesp1 =Point.ByCoordinates(0,0,[0,10,20]);c1 =Circle.ByCenterPointRadius(p1,[5,7,2]);//Split Profile Curvesc2 = c1<1>.SplitByParameter((0..1..#ct));//Rotate and Extend Curvesa1 =Math.Atan((th*1.5)/(c1.Length/ct));c3 =c2.Rotate(c2.StartPoint,Vector.ZAxis(),a1);c4 =List.Transpose(c3.ExtendEnd(th));//Loft and Solidc5 =NurbsCurve.ByPoints(c4.StartPoint);s1 =Surface.ByLoft(c4,c5).Thicken(th);