среда, 31 августа 2016 г.

Аттачит сплайны по именам.

Если в сцене много сплайнов с одинаковыми именами и появилась необходимость их объединить в один, то этот скрипт как раз для этого:

-------------------------------------------------------
(
arrShape = for o in objects where superclassOf o == shape collect o
arrShapeC = arrShape.count

arByName = #()
for i = 1 to arrShapeC do if findItem arbyName arrShape[i].name ==  0 do append arByName arrShape[i].name
   
arSplineByName = #()
for n in arByName do(
    arNT = #()
    for j in arrShape do if j.name == n do append arNT j
    append arSplineByName arNT
    )
   
for s in arSplineByName do(
        convertToSplineShape s[1]
        for i=2 to s.count do(
            convertToSplineShape s[i]
            addAndWeld s[1] s[i] -1
            )
        updateShape s[1]
    )
)
-------------------------------------------------------

вторник, 30 августа 2016 г.

Один из способов найти неинстансные короновские прокси и сделать их инстансными.


 ----------------------------------------------
arCP = for i in objects where classOf i == CProxy collect i
arCPc = arCP.count
for i = 1 to arCPc do(
    for j = 1 to arCPc do(
        if i != j do (
            n1 = getFilenameFile (arCP[i].filename)
            n2 = getFilenameFile (arCP[j].filename)
            if arCP[i].filename != arCP[j].filename and n1 == n2 do instanceReplace arCP[i] arCP[j]
            )
        )
    )
 ----------------------------------------------

По идее, если  "CProxy " заменить на "VrayProxy", то должно сработать и для vray прокси.

вторник, 16 августа 2016 г.

Если необходимо переименовать сгруппированные объекты по названию группы.

Есть сгруппированные объекты с именем группы "Group_01". Необходимо каждому объекту присвоить следующее имя - "Group_01_######", где ###### - произвольное шестизначное число.
Скрипт работает только с выделенными группами.
------------------------------------------------------------------
 (
fn randName num = (
local arS = #("123456", "123456", "123456"), rN = ""
for i = 1 to num do rN+= arS[r = random 1 arS.count][random 1 arS[r].count]
rN
)
  
for i in selection do(
    if not (isgrouphead i) do(
        if i.parent != undefined do i.name = (i.parent).name + "_" + (randName 6)
        )
    )  
)
------------------------------------------------------------------