Circular array / _ArrayCrv - how to distribute objects

…at perfect scale to match curve lenght

Hey guys, is there a way to do exactly that as you see in the left circle the to be arrayed object (little circle) has a radius of 4mm but won’t work with _ArrayCrv if I type in Distance=4mm and even 8mm you see the result with a little gap in the end.

Bend does not work either, it also distorts the base pattern.

Is there an option to manage this:

take a curve - array objects so that they are placed at the perfect scale without distance one next ot the other (which should work that it would autoscale to the right scale if I type in 4 objects or 25 scaling item number to fit with the overall curve (would be handy to have it running on organic curves - distribute the objects even with distance and autocalculating the perfect size of the objects.

Hope you understand

thanks

1 Like

But is there a way to not distort the circles, thanks

Hi Hannes -
Something like this?
image

-wim

1 Like

Hi Hannes - set the Rigid command line option in Flow

image

-Pascal

Thanks @wim have to wrap my head around grasshopper eventually :slight_smile:

@pascal this did it. But not precise as you see the gap between elements in the second screenshot.

Is there even an option to fix this. Thanks!

I’d use the sine function to scale the circle and then array it…

Or just skip drawing the first two circles and create the circle with the radius for the number of times it needs to be arrayed directly:

In the commands below, 100 is the radius of the large circle. The radius of the small circle is calculated by multiplying the radius of the large circle with the sine of half of the step angle which is 360° divided by number of arrayed circles.

Command: _Circle
Center of circle ( Deformable Vertical 2Point 3Point Tangent AroundCurve FitPoints ): 100,0
Radius <480.973> ( Diameter Orientation Circumference Area ProjectOsnap=Yes ): 100*sin((360/2/15)°)
1 closed curve added to selection.
Command: ArrayPolar
Center of polar array. Press Enter to use the CPlane origin ( Axis ): 0
Number of items <3>: 15
Angle to fill or first reference point <360> ( Preview=Yes StepAngle Rotate=Yes ZOffset=0 )
Press Enter to accept. FillAngle = 360 ( Items=15 FillAngle Rotate=Yes ZOffset=0 )

3 Likes

@martinsiegrist this video performance looks fluent but the text sounds very complicated to me. Had a 3 in math abtitur and like it more intuitive and dynamic — peace of mind :slight_smile:

But thank you a lot for explaining this!

Trigonometry :speak_no_evil:

1 Like

Exactly :crazy_face:

Wim - what’s happening with the expression in the last circle component?

When I started with Grasshopper I mainly used circles, lines and intersections to “construct” angles and distances but at some point I switched to a more math based approach with vectors and trigonometry. I’m a trained survey draftsman…

1 Like

The straight distance between the points is twice the radius so it should be x/2.

2 Likes

Makes so much sense now

1 Like

Aha! Thank you, Martin!