@Sylar46 See if this helps
ninebridges.dyn (6.3 KB)
wdt1 = 10;
//Points Grid
pnt1 = Point.ByCoordinates((-wdt1..wdt1)<1>,(-wdt1..wdt1)<2>);
dis1 = wdt1/((Math.Pow(pnt1.DistanceTo(Point.Origin()),0.75))+0.2);
pnt2 = pnt1.Translate(Vector.ZAxis(),-dis1+(wdt1*2));
//Nurbs Surface
srf1 = NurbsSurface.ByControlPoints(pnt2,3,3);
srf2 = srf1.Trim(Plane.XY(),Point.ByCoordinates(0,0,-1))[0];
srf3 = srf2.Translate((0..#3..wdt1*2)<1>,(0..#3..wdt1*2)<2>,0);
Alternately check this …