ScriptSpot

Forum topic · General Scripting

add an instanted modifier

By titane357 · 2010-07-03

Description

hello

I would like to add a edit poly modifier as first modifier of selected base objects as instance.

for i in $* do
(
modPanel.setCurrentObject i
modPanel.addModToSelection (Edit_Poly ()) ui:off
)

this add a modifier but not as instance....
Can anybody help ?

Thanks

Comments (6)

Graph · 2010-07-04

weird it should handle collections like and array tho, are you in a version earlier than 2010?
also if you wanna use the shortcut you can use $ only no * needed. but you shouldnt use that as it is just a ref target when only 1 object is selected afair
also: to make it faster put the selection array into a local var then it doesnt have to convert it to an array every itteration ;)
to make it another notch faster you should use the addModifier function it doesnt require max command panels to be in modify mode (waaay faster) also the object does not have to be selected.
if you wanna work inside the mod after assigning i suggest 2 loops 1 for assigning them the fastest way and another to modify the selected object in max modify mode (that overall should be faster)
reason create mode is faster than modify mode is "that it doesnt have to fully eval the modifier stack when switching objects in create mode"

titane357 · 2010-07-07

Thanks for answer Insanto,
I don't think I can use addModifier fonction as I want to add my modifier not in top but in botton of the stack.
Not very fast, but now it worKs... (maxdesign2011) I will try to make it better...
My problem is now :
- I can I select all objects which share same instanced modifier (here editpoly)
- How can I "collapse to" this instanced modifier (which is on bottom stack) on all objects which don't have same number of modifier in their stack ?
Cheers

titane357 · 2010-07-04

Now it works :
(
local polyMod = Edit_Poly()
for obj in (selection as array) do
(
modPanel.setCurrentObject obj
modPanel.addModToSelection polyMod ui:off
)
)

titane357 · 2010-07-04

In fact, I can't manage to make it work on selected objects... just on all :-((

titane357 · 2010-07-04

Thanks for answer it helps me a lot :-)
so, I have now what I was looking for :
(
local polyMod = Edit_Poly()
for obj in $* do
(
modPanel.setCurrentObject obj
modPanel.addModToSelection polyMod ui:off
)
)

I don't know why "in selection" don't work and I need to write "in $*" ?!?
cheers

Graph · 2010-07-03

(
  local polyMod = Edit_Poly()

  for obj in selection do
  (
    addmodifier obj polyMod
  )
)

or

(
  local polyMod = Edit_Poly()

  addmodifier selection polyMod
)

or

(
  addmodifier selection (Edit_Poly())
)

if you loop through the objects you gotta save the mod in a var but not if you add the mod with a mapped function as you only supply the one