Get In Line! (May 9,2011)

35 votes
Version: 
5.0
Date Updated: 
04/09/2011
Author Name: 
JokerMartini

This script evenly distributes the selected objects based on the start and end target objects.

Anyone is more than welcome to add to this.
Things you could potentially add are qsorting, transform, scale, and rotation sorting as well.

Right now it just does position.

Features

- V1.0 | Distribute selected objects evenly between two targeted objects

- V2.0 | Random position offset for each object on X,Y,Z

- V3.0 | Functionality code rewrite

- V4.0 | Offset position adjustments and bug fixes

- V5.0 | New UI design and random positioning along vector
- V5.0 | Custom Axis selecting for position aligning individually for X,Y,Z.

WishList

- Distribute Option for each axis individually X,Y,Z
- Distribute Rotation
- QSort selected objects (will allow for animating ex:spring)

Comments

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
dub73's picture

not working with groups

nice script, but it is not working with groups, it opens groups and distribute all objects. It should keep groups closed and distribute only the group node/container. That would be awesome :)

cheers

dub

asymptote's picture

Very useful, the only things

Very useful, the only things I could suggest to improve are realtime preview and ability to remember which objects are selected (selection sets?)

thx for the script.

crystal3d's picture

very good and

and it shuffles the order of the objects... maybe it could consider the objects' name on distribution order like 12345 and not like 154362.

thanks you

JokerMartini's picture

You could space out the

You could space out the objects based on their bounding box and then space them accordingly.
It is definitely something worth integrating into the next release of this script.

John Martini
Digital Artist
http://www.JokerMartini.com (new site)

su37's picture

Yes

Yes

wobi's picture

Thanks

Nice one man, thank you for this.

JokerMartini's picture

What exactly are you trying

What exactly are you trying to do?
Are you trying to space the objects, taking into account the objects dimensions?

John Martini
Digital Artist
http://www.JokerMartini.com (new site)

su37's picture

Can you help me the script

Can you help me the script where is wrong ?

obj = for i in selection collect i
total = [0,0,0]
for i=2 to (obj.count-1) do (total += obj[i].max - obj[i].min)
format "Total X-size: %\n" total[1]
format "Total Y-size: %\n" total[2]
format "Total Z-size: %\n" total[3]
posMax = obj[obj.count].min
posMin = obj[1].max
sp = (posMax-posMin-total)/(obj.count-1)
sp.x
obj[2].pos.x = posMin.x + sp.x + (obj[2].max.x-obj[2].min.x )/2
for i=3 to (obj.count-1) do -- (obj.count-2)
(
totalzong = [0,0,0]
totalzong += obj[i-1].max - obj[i-1].min -- (obj.count-3)
format "Total X-size: %\n" total[1]
format "Total Y-size: %\n" total[2]
format "Total Z-size: %\n" total[3]

obj[i].pos.x = posMin.x + sp.x * (i-1) + totalzong.x + (obj[i].max.x-obj[i].min.x )/2

)

JokerMartini's picture

su37

im not quite sure i understand what you are talking about.
If you could try and explain in more detail or possible and image example I would love to help out.

Right now the script spaces objects based on an equal distance between object's pivots. Not taking into account the objects dimensions.

John Martini
Digital Artist
http://www.JokerMartini.com (new site)

JokerMartini's picture

su37

im not quite sure i understand what you are talking about.
If you could try and explain in more detail or possible and image example I would love to help out.

Right now the script spaces objects based on an equal distance between object's pivots. Not taking into account the objects dimensions.

John Martini
Digital Artist
http://www.JokerMartini.com (new site)

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.