Generate random string:
fn generateRandString length symb:false = (
local chars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", result = "", symbol = "[email protected]#$%^&*()_+:<>?"
chars = if symb then append chars symbol else chars; charsC = chars.count
for i=1 to length do (result += substring chars (random 1 charsC) 1)
result
)
/* -- example:
generateRandString 64
-- "mrnn0flR2Vx4KWoM77qxKqEATn131PGVDnL4ukmEXArcPcyV72KjgjLAgpTdbRxY"
generateRandString 64 symb:true
-- "ITiZK~Nk1SVHr#[email protected]$))8a%:)+6Gm(KlV$*[email protected]>+RlifoK3q^9"
*/
<integer>length: generated string length
<boolean>symb: Use symbol. Default is false
Collect materials with realworld UV’s. Link
function collectRealWorldMats savetoFile:False = (
rwMats = materialLibrary()
for mat in sceneMaterials do (
local maps = getproperty mat "Maps"
for m in maps where superclassof m == textureMap do (
try ( if getproperty m.coords "realWorldScale" != undefined do ( if m.coords.realWorldScale do (appendifunique rwMats mat) ) ) catch()
)
)
if rwMats.count > 0 do (
if savetoFile then (
-- save these materials to C:\Users\User\AppData\Local\Autodesk\3dsMax\2013 - 64bit\ENU\temp\realWorldMats.mat
local rwMatsFile = getdir #temp + "\\realWorldMats.mat"
saveTempMaterialLibrary rwMats rwMatsFile
) else (for m in rwMats do print m.name) -- or simply output to listener
-- select objects with these mats
objs = #(); for m in rwMats do (for o in objects where o.material == m do append objs o)
select objs
)
rwMats
)
collectRealWorldMats()
-- or if you want to save to realWorldMats.mat
-- collectRealWorldMats savetoFile:true
<boolean>savetoFile: Save collected materials to file. Default:false