Little Ming
The Invisible Man
Join date: 31 Mar 2005
Posts: 84
|
11-30-2009 22:05
So sometimes I'm working with clients that have or picture boards already made, but they aren't uniform and so when setting up picture boards and displays, it's really obnoxious having to go through and manually resize each one. Especially when I got a display thats 40+ panels and each one is a different side and they all need to be uniform. Is there an easy way to like mass resize prims to all the same size? I've heard of scripts that can do this, but that still requires me to go through each one and make sure the script is in it. Which would still be faster in the long run, but are there any other methods that you guys know of? Maybe a viewer made for builders? Something that would let me drag select a group of boxes, align them all to an axis, set a custom spacing param like say 1 meter apart, and set them all at the same height and get a nice little row... then resize them all to be uniform would be superb. IE, I drag select 5 boxes, enter in whether I want them lined up on X or Y, how far apart i want them, and what size I want them to be, and click a button... and voila I get a row of 5 boxes set to the size I want all evenly spaced out and zero'd out to the grid. Any tips would be appreciated, thanks 
|
Rolig Loon
Not as dumb as I look
Join date: 22 Mar 2007
Posts: 2,482
|
11-30-2009 22:38
I don't know of a tool offhand, but I can imagine a couple of ways to write a script that would do the job. One way would be to link all the picture boards that you want to have end up in a single row. Then put a script in the root prim that resizes each of the child prims to the same scale as the root, gives them the same rotation, sets them in the same plane at the height of the root prim, and then adjusts their centers to be evenly spaced. Once the boards are all aligned in a row, you could move the whole linkset manually to put it where you want it, and then unlink it if you wish. It would only take that one script in the root prim to do the job, and ideally the script would remove itself when the job is done.
Another way would be to put all of the boards in the contents of a temporary prim containing a script that rezzes the boards one at a time, setting their sizes as they are rezzed and spacing them evenly along a predetermined axis.
Writing either script would take some fiddly time, but it wouldn't be inherently difficult. The second approach, in fact, could be fairly straightforward. I'd be surprised if someone hasn't done it already. You might try doing a deep search through the archives of the Scripting Tips forum or posting a version of your question over there.
_____________________
It's hard to tell gender from names around here but if you care, Rolig = she. And I exist only in SL, so don't ask....  Look for my work in XStreetSL at 
|
Little Ming
The Invisible Man
Join date: 31 Mar 2005
Posts: 84
|
11-30-2009 22:57
The first option actually sounds like a better route for the things I'm trying to do. I will look into that. I never knew that was even a possibility with scripts. Thank you for that info, it was very helpful. Now that I know it can be done, the hunt begins! ^^
|
Void Singer
Int vSelf = Sing(void);
Join date: 24 Sep 2005
Posts: 6,973
|
11-30-2009 23:51
quick prim resize script (resizes all linked prims to it's size) uMakeSameSize(){ vector vSizRoot = llGetScale(); integer vIntCnt = llGetNumberOfPrims(); while( vIntCnt ){ llSetLinkPrimitiveParams( --vIntCnt, [PRIM_SIZE, vSizRoot ); } }
default{ state_entry(){ uMakeSameSize(); }
changed( integer vBitChanges ){ if (vBitChanges & CHANGED_SCALE){ uMakeSameSize(); } } }
I think that'll work (no testing, I can't get in)
_____________________
| | . "Cat-Like Typing Detected" | . This post may contain errors in logic, spelling, and | . grammar known to the SL populace to cause confusion | | - Please Use PHP tags when posting scripts/code, Thanks. | - Can't See PHP or URL Tags Correctly? Check Out This Link... | - 
|