Hi all,
Im trying to divide face by specific distance (1500x1500) and and create separate surface as shown in the picture below, but not sure how to connect those points
![image|671x500](uploDivide Face_1500x1500.dyn (37.4 KB) ad://c1iQW2I94afcqtapwx9AytPmWJB.png)
Thanks @_Vijay but doesn’t work for me
panels.dyn (9.1 KB)
Note that this works only if all the UVs lie on the surface (build the surface using Surface.ByLoft(curves,guidelines))
//Sample Surface
p = Point.ByCoordinates([-5000,-5000,5000,5000],[-7500,7500,7500,-7500],[3000,500,-5000,3000]);
l1 = Line.ByStartPointEndPoint(p[0..1],[p[3],p[2]]);
l2 = Line.ByStartPointEndPoint(p[1..2],[p[0],p[3]]);
s = Surface.ByLoft(l1,l2);
//Points on surface at 1500 spacing
sp = 1500;
d1 = s.PointAtParameter(0,0).DistanceTo(s.PointAtParameter(0,1));
d2 = s.PointAtParameter(0,0).DistanceTo(s.PointAtParameter(1,0));
uv = UV.ByCoordinates((0..1..#(d2/sp))<1>,(0..1..#(d1/sp))<2>);
//Panels on Surface
c1 = List.Transpose(List.DropItems(List.Sublists(List.Transpose(Curve.ByParameterLineOnSurface(s,List.DropItems(uv<1>,-1),List.DropItems(uv<1>,1)))<1>,0..1,1)<1>,-1));
c2 = List.DropItems(List.Sublists(List.Transpose(Curve.ByParameterLineOnSurface(s,List.DropItems(List.Transpose(uv)<1>,-1),List.DropItems(List.Transpose(uv)<1>,1)))<1>,0..1,1)<1>,-1);
s1 = Surface.ByLoft(c1,c2);
1 Like
thanks @Vikram_Subbaiah i also manage to find solution
1 Like