UV lines on double curved surface


Hallo all,

I need to create U(or V) lines between two curves (or double curved surface) so that they go the way is shown below with red. The points on the tighter side supposed to be denser…
Thanks in advance!

test tight curve.dwg (823.7 KB)
test tight curve.dyn (5.0 KB)

  1. Create a rectangular surface
  2. Draw the desired isolines (this could even be done by arraying points using UVs along two parallel edges and drawing lines between the points)
  3. Map curves to your curved surface

There may still be issues that arise from the mapping depending on the weighting/ UVs that comprise the surface, but you can try rebuilding the surface to fix that. I’m not aware of any surface rebuilding tools in Dynamo however (it’s a pretty crap computational design tool IMO) so you may need to perform this step in autocad.


Firstly thanks for the fast respond! Secondly I feel really dumb because i don’t really follow steps you described…


There are examples here which you can follow (this link incidentally is a great resource for any computational designer)



Thank you Thomas. It looks like really interesting site but i understand even less on what it’s about…
I probably should have said that i’m not that experienced with this stuff :frowning:

I did this, and though results look really cool it’s not what i’m aiming for…


Take small steps:

Step 1: create a simple rectangular surface
Step 2: create your desired isolines
Step 3: map isolines to your target surface

It’s better to undertake these steps yourself and discover/learn as you go, then ask questions if you get stuck. Always start simple then work into your problem, especially if your are new to this.


Did you meant like this? When i connect surface of rectangle to surface get iso the map doesn’t work.


I do manage to get something like I need but this doesn’t work exactly as needed.


@alex.berg Made little alterations to the construction of the curves and surfaces in your definition
Would this works for you?

crvs = elmt.Geometry();
pnts = Flatten(Transpose({crvs.Explode().StartPoint,crvs.EndPoint})<1>);
nrcs = NurbsCurve.ByControlPoints(pnts,2);


Thanks Vikram! But as you can see below the lines are not completely radial from smaller curve…

I’ve tried to do it like this and it’s as close as i can get to required result but its still not exactly what i need… :roll_eyes:


@alex.berg Not isocurves and doesn’t seem to work well on the straighter stretch
Maybe you can project them on to the surface, if this works for you

crvs1 = elmt.Geometry();
par = (0..1..#25);
pnts1 = crvs1<1>.PointAtParameter(par<2>);
crvs2 = NurbsCurve.ByControlPoints(pnts1,2);
pnts2 = crvs1[1].ClosestPointTo(pnts1[0]);
lins1 = Line.ByStartPointEndPoint(pnts1[0],pnts2);


Your problem is caused by the curves from the DWG - small lines. These lines when used to create the surface defines its weighting irregularly (as the lines are of differing lengths) which will prevent any even distribution of curves over the surface.

Instead you need to start from cleaner geometry: Firstly, single continuous curves rather than a series of smaller lines. Use these to create the surface, then rebuild the surface with uniform knots. I use Microstation to do this as Dynamo lacks the ability to do even basic geometry rebuilding. The result:


@Thomas_Mahon @Vikram_Subbaiah
Thomas, you are correct. The 3D polylines just weren’t good. This introduces a different kind of issue but not Dynamo related. So this topic can be closed.

Thanks a lot for the help! :slight_smile: