I am trying to array a family along some curves that are chained. I was able to join the curves into a polycurve and place family at set points using “curve.pointsatchordlength”. After this I was going to use the line.bytangency to do the vector transformation of the family to align with the curves. Unfortunately this is the part I cant get to work. Paver Path Array.dyn (48.2 KB)

Ok, I was able to get it to work by looking at a few examples from other posts on the forum. However, I’d like to understand a bit how these nodes work…if someone could be so kind to take a second to explain what is happening here I’d be forever grateful…

I can make sense up to Vector.Cross. After that I’m not sure what is happening to get the tangent/normal at each point.

The cross vector is used to confirm the direction of the vector with its Z component being equal to 1. If it’s not, it’s likely -1, and therefore pointing in the wrong direction, so the Reverse of that vector is used. That’s all the If statement is doing. Once all the vectors are pointing in the same direction, they’re used to draw a 4 unit line and then converted back into a vector based on the line’s start and end points.

Thanks @Nick_Boyts I’m a bit of a visual learner but I think I understand. I’m going to write back what you wrote in my own words so I can process it. So we are confirming the sum of our normal and tangent at each point so they total 1. If true, we are pointing moving forward. Is the output of <cross.vector> a list of each vector (x,y, and z)? Thank you so much!

If you turn on the node previews (by hovering over the node body and clicking the little pin icon) you can see exactly what the outputs are. This is one of the best ways to understand what a node and a larger graph are doing.