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.
Serjio444's picture

sorry I do not understand how

sorry
I do not understand how this script works
You can make video?

JokerMartini's picture

Sorry about the bug. I'll

Sorry about the bug. I'll look into fixing that and implement it into the update.

I never test on groups as they, to me, are bad practice to use inside of 3ds Max. I only say that because man handles them incorrectly. That is no fault of you or I, but just wanted to make mention of it.

As far as fixing that though, I'll be sure to do so. Thank you for the report.

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

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

)

Comment viewing options

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