Ok, creo que sería algo fácil si se hiciera de esta forma: Por ejemplo:esta un archivo a (c:\a.max) con una cantidad de objetos con un material y un modificador uvwmap cada uno (ojo si es Unwrap no funciona), y un archivo b (c:\b.max) con objetos equivalentes a los del archivo a, con los mismos nombres, pero con modificaciones. Entonces para obtener el material y el modificador UVW map de los objetos viejos y ponérselos a los nuevos puedes hacer que el script primero abriera el archivo viejo, copiara los materiales y los modificadores uvwmap de cada uno de los objetos, luego abriera el archivo nuevo y asignara los materiales y los modificadores a sus respectivos objetos:
Código:
archivoa=c:\a.max.
Archivob=c:\b.max.
Listamodmat=#().
Loadmaxfile archivoa quiet:true.
For obj in geometry do.
Append listamodmat #(obj, name, (*.obj), material, (*.obj), modifiers[#uvw_mapping])).
Loadmaxfile archivob quiet:true.
For in listamodmat do.
Obj=getnodebyname m[1].
If obj.=undefined then.
Obj, material=m[2].
If m[3].=undefined then add modifier obj m[3]).
).
Savemaxfile (maxfilepath + maxfilename)
En el archivo a el script recorre todos los objetos con geometría en la escena y por cada objeto almacena el nombre, el material y el modificador en una lista: #(obj, name, (*.obj), material, (*.obj), modifiers[#uvw_mapping]), esta a su vez es almacenda en otra lista llamada listamodmat que contendría todas las listas de cada objeto.
Luego abre el archivo b, recorre cada item de la listamodmat, obtiene el objeto a partir del nombre, si este objeto existe le asigna el material y si el modificador existe le asigna el modificador.
Si no quieres que guarde el archivo al final tienes que quitarle la última línea.
Espero que te pueda ser de utilidad.