String array in multilist box to object selection
Hi guys,
need a little help.
What i have going on in the script is as following.
1: select all the objects in the max file by select $*
2: i filter that selection by type il.e class of obj == pf source
3: store the same in a variable e.g A
4: copy the A.name to another variable B so i can use the same in multilistbox
5: create rollout and button to run other scripts.
6: Lists the selection properly
uptil here every thing is fine
7: now here's the problem the script from here onwards which was copied from
http://www.scriptspot.com/forums/3ds-max/general-scripting/multilistbox-...
heres the problem i am trying to solve multilistbox has capability to select multiple listed items using ctrl unlike listbox
what i would like to do is select multiple items in there and run scripts on them ex modifying common properties etc....
I have attached both the script file and a demo max scene to test this out :)
more details in the script below.
Thanks in advance...
/* to test please create 2-3 pf sources (rename them optional will work either ways) in the scene along with some random geo e.g sphere, torus, teapot etc. the script will automatically filter out pfsource objects from the scenefile What i am stuck with is in the comments below under rollout after on_Process pressed do The Idea behind the script is when doing sims on large scale scene files with lots of PF source objects it would be nice to select a bunch from the lest and rund scripted commands as selecting from selectbyname menu or viewport would be cumbersome and subject to mistakes one example would be desable render or maybe recalculate caches on selected pf sources etc. Also this is especially helpful when your pf sources or other objects are are named inconsistantly I plan to retro fit this script to various object types and run scripted procidures on the selection */ -- Define Variables PartiGrp = #() PartiList = #() --slect and list pfsource select $* if $!= $selection then ( PartiGrp[1] = $ PartiList = PartiGrp[1].name ) else ( for obj in ($ as array) do ( if classof obj == PF_Source do ( append PartiGrp obj for i = 1 to PartiGrp.count do ( PartiList[i] = (PartiGrp[i].name) ) ) ) ) --UI setup try(destroyDialog _PartiSub )catch() rollout _PartiSub "PF source global CTRL" ( Multilistbox _Multilistbox "Particle souce" items: PartiList button _Process "Process" on _Process pressed do ( /* question is what if i want multiple partilce system selected so i can run scripted functions of Code below enables me to slelect one node at a time by pressing sumbit button if i select more then one it does not work. Beauty of multilistbox is you can ctrl + select more items from the list */ _selIndex = (_Multilistbox.selection as array)[1] -- "select fume grids" select PartiGrp[_selIndex] ) ) createdialog _PartiSub [code/]
Attachment | Size |
---|---|
4scriptspot.ms | 1.93 KB |
pfsouce_eg.max | 320 KB |
Comments
select (for index in
select (for index in _Multilistbox.selection collect PartiGrp[index])
Some of my scripts and MCGs :: 3ds Max SDK Intro for Scripters
thanks you swordslayer,
thanks you swordslayer,
will try this it seems i was not subscribed to the thread so didnt get notifaciton....
Thanks a ton in advance....
Regards
Sajeel