Array/Distribute/Stretch/Align

Any suggestions of a particularly efficient way of distributing this beam evenly between these different length curves (image below), stretching the beam where necessary but not changing its cross section or vertical orientation. (Grasshopper would be great I ams sure, but haven’t learned enough yet about how use it.)

Hello - I think, mark off the points for start and end, and Orient > Scale=1D Copy=Yes.

-Pascal

Tried it but it doesn’t keep the beam vertical (world Z), it pivots (but I’m not sure what is governing that.)

Hello- I guess it’s best to post a file with all the inputs.

-Pascal

Thanks. Here it is.

ArrayDistributeStretchAlign.3dm (1.2 MB)

I succeeded by Projecting one of the curves to the cplane and using Orient 3pt with the third point aligned with the first point and snapped to the projected point. But I was thinking there might be a “perpendicular” command, and didn’t need all the repeated orientations.

Yeah, it looks like a two step thing no matter how you go - I tried Rotate3d + Ortho on the oriented beams and that got them vertical as well. Another way would be Orient3pt, scale =No, Project on the target point3, followed by Scale1D

-Pascal

Those are the ways to go. My solution above scales the beams in 3 dimensions, which I don’t want.

“Divide copy” each curve in the same amount of segments in top view, place your joists, slightly oversized in length then in perspective join the dots of one line to the other, “project copy” these lines to Cplane measure angle between the 2 lines ( projected and original) and finally axis rotate each joist to the corresponding angle, if desired extrude vertical the “divide copy” curves to cut your joist et voila!, or grasshopper. both way it’s work. sorry for the rhino lingo.

Thanks. That’s an interesting suggestion at this point because it’s how I would have done it before I asked about the other automated (faster?) methods and learned about them above.