Array and Scale around Helix

Hi friends,

I might be climing up the wrong tree here. The figure on the left in red was hand made, the cyan on the right was a grasshopper script using a graph. I just want a little more control over the scale but I’m not getting the kind of rotation I’d like. I’m using a scrapped togeather script from digging through the old grasshopper forums. Is there a better approch or a grasshopper plugin that gives you a lot more control over curve arrays? I was looking at Armadillo but it’d prefer a grasshopper solution.

I’m essentially just trying to rotate and scale rectangles around a curve.

Array Curve.gh (15.1 KB)


Array_Curve_2020May01a.gh (12.8 KB)

1 Like


Array Curve_re.gh (25.7 KB)

3 Likes

Thanks, Jospeh and Kim!

I wish I could say this was the right solution but I think I did get started on the wrong path and your expert advice lead me more expertly astray.

I think maybe Orient Direction is a better tool. This is a garbage example, just using internalized points and not actually referencing the curve but I like how changing the vector length changes the scale proportionally. What I’m primarily after is the proportional scaling (I didn’t make that clear) equal spacing and propper orientation along the curve.


garabe array example.gh (5.4 KB)

In a straight line example, I think this applied to the helix with some level of variation over the percentage of scale increase, and spacing, would be rad.

image

I’m not sure how to get there with the limited functionallity of Point On Curve. I’ve always wondered how to get move a point along a wavy curve at specific lengths.

Your code has no connection between the curve and the points and surfaces “attached” to it. Your goal isn’t clear to me.

garabe array

Right, that’s what I mean by “a garbage example just using internalized points and not actually referencing the curve”. I was just trying to visualize the solution I don’t quite not how to code. Imagine if instead of manually placed points, if that was a list of points along a curve. In the second image I shared (the straight line) there was a pattern in the spacing and vector lengths.

By distributing points in sets of equally spaced pairs and altering the length (aka the vector length) between the pairs, that gives me a distributed, proportionally scaled array, following the orientation of a curve.

What I don’t know is how to put a series of points on a curve like that. Point on Curve feels pretty useless for communicating that.

image

Again with the straight line example, that is easy to do by just using a starting Point, Move and a positive X. How do I move a point ALONG a curve a specific distance though.

EDIT:

Sorry if I’m still being obtuse. Maybe this example for Armadillo explains it better. I want to do this on a Helix, with a vertical surface. Right now I’m using a 3x1 ratio rectangle but it could be a rubber ducky. I just want to be able to control the equal spacing and the rate of the scale of a object following a road like array along a curve.

The helix curve complicates things… Not sure I’ve got the right orientation?


Array_Curve_2020May03a.gh (13.7 KB)

1 Like

Totally, that’s a clever solution.

I put a rotation on it to deal with any weirdness.

image

How are you controlling the rate of the scale? Like if I wanted to slow that so the scale is a little more subtle, allowing them to cluster like my manual example.

image

It’s all in the code. Look again at the image and GH file I re-uploaded a few minutes after posting it. The Series determines the widths (‘X’ input to PlaneSrf), the “12” determines the gaps and the “3” is multiplied by the widths to get the lengths (‘Y’ input to PlaneSrf).

1 Like

You didn’t post your rotation code. I won’t rebuild it from an image. Oh well.

Sorry! Still mentally processing and tweaking settings. I appreciate all your help so far.

Helix Array mock3.gh (26.2 KB)


Array_Curve_2020May04a.gh (16.9 KB)

2 Likes

cool :grin:

2 Likes