I've been using this for a while now. When you have new layers that you want to freeze, run this routine, select a vport with the "bad" layers,then pick the objects on that layer....bingo! frozen in all vports. Not *totally* automatic, but close.......
;Will freeze selected layers in ALL vports, you pick 'em, they're chilled!
;Thanks to the "gurus" at CADalog forums for this routine...3/7/03
;Keith, Trev, Hendie & Paul
;
;
(defun c:vplfrz ()
(setvar "TileMode" 0) ; Force PaperSpace
(setq vpFlag (getvar "cvport"))
(if (= vpFlag 1)
(progn
(setq sel-vpt 1)
(setq sel-vport (car (entsel "\nSelect view port: ")))
(if (= sel-vport nil)
(progn
(alert "You must select a viewport\nTry again!")
(c:vplfrz)
)
(progn
(setq entvport (entget sel-vport))
(if (= (cdr (assoc 0 entvport)) "VIEWPORT")
(frz-vplayer)
(progn
(alert "You must select a viewport\nTry again!")
(c:vplfrz)
)
)
)
)
); else Viewport is already selected
(frz-vplayer)
) ;endif (= vpFlag 1)
)
(defun frz-vplayer ()
(setq e2 (entget sel-vport)
viewport (cdr (assoc 69 e2))
)
(command "mspace")
(setvar "cvport" viewport)
(setq loop "")
(while loop
(setq
pik (nentsel "\nSelect an item on XREF to Freeze: ESC to Exit:")
)
(cond
((/= pik nil)
(setq lay (assoc 8 (entget (car pik))))
(setq str (cdr lay))
(command "vplayer" "f" str "All" "") ; Freeze in ALL viewports
)
((= pik nil)
(alert "Nothing Selected!\nTry Again!")
(frz-vplayer)
)
)
) ; End while
(command "pspace")
(princ)
)
(prompt "\nType VPLFRZ to run")
(prin1)
Don't know how helpful it'll be, but maybe it can be "tweaked" to do what it doesn't, if it doesn't do what you want/need.......