//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);