How to control Custom Attributes?

Hello everybody!

I wanna add a custom attributes to a spline to control the animation. I added a listbox and a pickbutton to it, and gonna achieve this: picked an object then the object's name display in the listbox item.

Here's my script:
testCA = attributes listBoxTest
(
parameters main rollout:params
(
-------------------------------------------------------
)

rollout params "Test"
(
fn shapesOnly obj = isKindOf obj shape

listBox objLb ""
pickbutton objPb "Pick an Object" filter:shapesOnly

on objPb picked obj do
objLb.items = #(obj.name)
)
)

custAttributes.add $.modifiers[1] testCA

But when I selected another object then select the object again, the data was gone.
So how to save the data? I know that I should set some parameters but how to do it?

Thank you.

Comments

Comment viewing options

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

I’ve read the MAXScript

I’ve read the MAXScript Help file again and rewrite it:

rollout paramsRoll "Parameters"
(
fn shapesOnly obj = isKindOf obj shape

listBox objLb ""
pickbutton objPb "Pick an Object" filter:shapesOnly

on objPb picked obj do
(
append $Point01.modifiers[1].listBoxTest.nodes obj
append $Point01.modifiers[1].listBoxTest.nodesNames obj.name
objLb.items = $Point01.modifiers[1].listBoxTest.nodesNames as array
)

on paramsRoll open do
(
objLb.items = $Point01.modifiers[1].listBoxTest.nodesNames as array
)

on paramsRoll close do
(
local lastDialogPos = getDialogPos paramsRoll
$Point01.modifiers[1].listBoxTest.dialogPos[1] = lastDialogPos.x
$Point01.modifiers[1].listBoxTest.dialogPos[2] = lastDialogPos.y
)
)

testCA = attributes listBoxTest
(
parameters main rollout:ctrlRoll
(
nodes type:#nodeTab tabSizeVariable:true
nodesNames type:#stringTab tabSizeVariable:true
dialogPos type:#intTab tabSize:2
)

rollout ctrlRoll "Control"
(
button floatBt "Float..."

on floatBt pressed do
createDialog paramsRoll 168 215 dialogPos[1] dialogPos[2]
)
)

addModifier $ (emptyModifier())
custAttributes.add $.modifiers[1] testCA

This time it worked very well.

Comment viewing options

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