ScriptSpot

Forum topic · General Scripting

Select object and link it to another object with maxscript

By ryoreal · 2015-03-25

Description

Hi everyone, I'm new to maxscript(also new to 3dsmax) and has been wondering whether the following can be done.
Here's the scenario
I am creating tank treads with "spline IK solver" according to a tutorial on youtube.
After creating the bones and tank treads, I have to connect an individual tread to a certain bone.
i.e
tread001 linked to bone001
tread002 linked to bone002
tread003 linked to bone003
the rest goes on repeatedly.

I first think of using a for loop to complete this task according to my previous matlab coding experiences.
However after a night of google search, I still can't find the syntax to assign my loop variable to the object name.
Can it be done in max or it should be done with a different logic?

Thank you!!

Comments (3)

barigazy · 2015-03-26

Use this function

fn linker childName: parentName: =
(
local childrens = #(), parents = #()
for o in objects do
(
if matchpattern o.name pattern:(childName+"*") ignoreCase:on do append childrens o.name
if matchpattern o.name pattern:(parentName+"*") ignoreCase:on do append parents o.name
)

sort childrens ; sort parents
--format "parents = % \nchildrens = %\n" parents childrens
for c in childrens where (i = findItem parents (parentName+(trimleft c childName))) != 0 do
(
(getnodebyname c).parent = (getnodebyname parents[i])
)
)
-- add base name of parent and child name in "shildName" and "parentName" arguments
linker childName:"tread" parentName:"bone"

Problem solved!! Thank you so much!!

ryoreal · 2015-03-27

Thank you so much for the help!!
I've been stuck at this point for 2 weeks.
I haven't got a complete understanding to this script yet but I'm already amazed.
I'm gonna dig in and study this script.

Thanks again for the help!!

barigazy · 2015-03-27

Use maxscrpt help document. It will help a lot to understand any code