转载 多层影藏 和显示


global LI_Isolate
global LI_Back
 btnpress=0
 AllArray=#()
curselArray=#()
 firstArray
pview
 activecam
 theNodeName
       
 store1stPos=true


fn LI_Isolate=
(
                       
                if store1stPos==true and btnpress==0 then activecam=getActiveCamera() --store the camera
--                 viewport.setType #view_persp_user
       
                if btnpress==0 then pview=getViewTM() --store the perspective viewTM
                               
                if selection.count==1 and $.name!=theNodeName then
                (
                        firstArray=$
               
                        btnpress+=1

                        AllArray[btnpress]=(for i in objects where i.ishiddeninvpt!=true  collect i) as array
                        max hide inv
--                          max zoomext sel all
                        theNodeName=$.name
                       
                curselArray.count=(random 1 1000000)
                )
               
                else if selection.count>1 and selection.count!=curselArray.count then 
                (
                        if btnpress==0 then firstArray=$ as array
                               
                        btnpress+=1
                       

                        AllArray[btnpress]=(for i in objects where i.ishiddeninvpt!=true  collect i) as array
                        max hide inv
--                          max zoomext sel all
                       
                        curselArray=$ as array
                )
               
               
               
--         print btnpress
)


fn LI_Back=
(
try
(
curselArray=#()

        if btnpress>0 do try
                        (
                        prevsel=for i in objects where i.ishiddeninvpt!=true collect i
                        unhide allarray[btnpress]
                        btnpress-=1

--                         max tool zoomextents all
                        select prevsel
                        )catch(max unhide all)
               
               
                               
        if store1stPos==true and btnpress==0  do
        (
                theNodeName=("LI_"+objects[(random 1 objects.count)].name)
               
                if activecam==undefined then
                        (       
                        viewport.setTM pview
                        )               
                        else
                        (
                        viewport.setCamera activecam
                        )
                try (select firstArray)catch()
        )
       
--         print btnpress
       
)catch()
)


LI_Isolate()


LI_Back()

原文地址:https://www.cnblogs.com/gaitian00/p/2258764.html