Array by total Length (Distribute Objects within a total length)

Now I have to do two steps to distribute objects of an array within a certain length. The Array command would work as I would define the distance between each item by default.

The second step to solve this now is to use the 1D-Scale command with “rigid” on in options.

I assume or remember there was a script which did arrays exactly with this option in one step - so array by defining a respective length between to distribute all newly created objects.

Maybe somebody could help. Thank you

Use Flow command.

@andrew.nowicki how do you mean? Flow asks me for a base and target curve. What I am looking for is a script or command (and I feel I have already used it in the past) where you have one object and you would run the command to evenly spread instances by distance or number at best with autorefreshing while the command running.

Hi Hannes - saee ArrayCrv or ArrayLinear.

-Pascal

@pascal as you see both options won’t allow a simple array where you specify the base length just by clicking a base point and an end point for the length of the array and then adjusting the settings for number or distance length between the objects.

With “ArrayCrv” you have to draw a base curve and distance would be the absolute distance whereas items overlapping. Would make more sense as described with distance as a means of space between objects. Like the “Divide Command”

I wonder where I have found the script, I am almost sure that I was operating such a script in the past.

It is basically the Linear Array with the option of distribution/divide by length or number of items.

Hi Hannes - if the array is linear, you can place the first and last correctly, the intermediate ones any spacing then use Distribute. Does thart do it? (Also, I think I made a script that maybe does what you want, let me see if I can find it)

@hannesgrebinwork - this is some fooling-around code, playing with ArrayLinear ideas - I do not know if it will do what you need - I think with Mode set to Number and a distance constraint typed it may come close - actually, like ArrayLinear in that case - but I think you may want to define the total length occupied by the resulting objects - this does not do that.

ArrayLinear_dev.py (10.3 KB)

To use the Python script use RunPythonScript, or a macro:

_-RunPythonScript "Full path to py file inside double-quotes"

-Pascal

If you combine History with Flow or ArrayCrv, the array will automatically update as soon as you change the input.

Hey @pascal Thank you so much for stepping into this. I love your script and replaced the Alias with your version. What would be very cool if you could add one option functionality:

As you see I would place a span/the overall distance between all instances are placed. So I would like to set the 2nd reference point to the outside of the item.

This would be a game changer :slight_smile:

Thank you!

@andrew.nowicki does not work on my end. Pascal’s script is almost perfect.

Also when working with increments and shifting the base point to the other side of the initial object, it would not increase the span width, it will still operate as I would have selected the left corner point.