That's one of those cases : you copied objects and later realise that you should have instanced them. There's no way (that I know of) to do that afterward in Max interface, but there's a simple command that does just this : instanceReplace
So I did a very simple macro script that brings up a window where you choose the objects to instance, then pick the object which will be instantiated and voilà! Piece of cake.
The code is not too long, so I'll put it here:
-------------------------------------------------
--Make Instances---------------------------------
--Vincent Schneider 2015-------------------------
-------------------------------------------------
macroScript makeInstances
ButtonText:"Make Instances"
category:"Vin"
internalcategory:"Vin"
Icon:#("SubObjectIcons",31)
(
local destNodes
local nodeNames
fn getSel =
(
destNodes = selection as array
nodeNames = for i in destNodes collect i.name
)
getSel()
rollout instRoll "Make Instances"
(
listBox lBox "Destination Nodes" items:nodeNames
button btnGet "Get Dest. Nodes"
pickButton pbtnNode "Pick Source Node"
on btnGet pressed do
(
getSel()
lBox.items = nodeNames
)
on pbtnNode picked obj do with undo label:"Make Instance" on
(
if obj != undefined do
(
pbtnNode.text = obj.name
instanceReplace destNodes obj
)
)
)
createDialog instRoll
)
You can find the script here, instructions on how to use macro scripts can be found here.
No comments:
Post a Comment