Advertisements
Software:
3ds max 2020
The following Python for 3ds max snippet replaces all selected objects with an object merged from an external 3ds max file.
Notes:
- The ‘model_path’ string variable should be set to the path of the 3ds max file containing the replacement model.
- This example takes into account that the merged file contains only a single object, otherwise the first of the merged objects will be used.
- The script actually replaces the Object node of the selected objects with the Object node of the merged model (creating instances), assigning them the merged material giving them the merged object’s name appended with numbers.
from MaxPlus import FileManager from MaxPlus import SelectionManager model_path = r"D:\Models\Bar_Stool_A.max" place_holders = [] for o in SelectionManager.Nodes: place_holders.append(o) FileManager.Merge(model_path,True,True) model = SelectionManager.GetNode(0) for i in range(len(place_holders)): place_holders[i].SetObject(model.GetObject()) place_holders[i].SetMaterial(model.GetMaterial()) place_holders[i].SetName(model.Name + "_" + str(i)) model.Delete()
* note that when copying and pasting a script from this example, the indentation may not be pasted correctly.