I’m really really new to dynamo so I only have a rough Idea of how to do this.
I’m trying to create a diagrid similar to this picture (https://i.ytimg.com/vi/WjrrNCoB7yM/maxresdefault.jpg) in Dynamo.
It’s a simple diagrid that goes along a cylinder of uniform radius throughout its height.
This is the only workflow I can think of.
-Create circle
-Extract points, use slider to change number of points
-copy the circle a certain distance, rotate the points by 45 degrees
-create lists out of the coordinates of the points
-finally, use Adaptive component byPoints
I’ve been browsing through the nodes but I can’t find one that can extract points from a circle.
Thanks for the replies. I’ve managed to create the lines for the diagrid however, I’m having problems with the creation of the adaptive components. (It probably has to do with the creation of my lists).
I’m having some minor problems. I’m not really used to the way Dynamo works (I’m more comfortable with GH).
How do I copy the diagrid at specified heights? I was able to do it for the circles but for the lines, it gets messed up. I guess this could be done in Grasshopper using geometric primitives but Dynamo doesn’t have those yet right?
I tried that. It messed up the lines (copied each line at a different level). I think it has to do with the way the lines were created. (best fit). Home.dyn (32.9 KB)
//Center Point: c
//Radius: r
//Number of Divisions: d
//Level Height: h
//Number of Levels: n
cir1=Circle.ByCenterPointRadius(c,r);
pnt1=cir1.PointsAtEqualSegmentLength(d);
pnt2=pnt1.Translate(Vector.ZAxis(),h);
pnt3=List.ShiftIndices(pnt2,{1,-1});
pnt4=Transpose({pnt1,pnt3[0]});
pnt5=Transpose({pnt1,pnt3[1]});
pnt6=List.Join({pnt4,pnt5});
lin1=Line.ByBestFitThroughPoints(pnt6);
cyl1=cir1.Extrude(Vector.ZAxis(),h);
dir1=Vector.ByTwoPoints(c,lin1.PointAtParameter(0.5));
lin2=RemoveIfNot(lin1.Project(cyl1,dir1)<1>,"Ellipse");
lin3=Flatten(lin2)<1>.Translate(Vector.ZAxis(),h..n*h..h);