You guys are great! The only thing is, when I ran it' the Layer command displays everything it's doing. So I've been trying to modify by using Subst. Something like this. I'm still trying to figure it out, but what do you think?
(setq ssvp (subst (cons 8 lyr)(assoc 8 ssvp) ssvp))
._Layer
Current layer: "A-ANNO-REFR"
Enter an option
[?/Make/Set/New/ON/OFF/Color/Ltype/LWeight/Plot/Freeze/Thaw/LOck/Unlock/stAte]:
_Make
Enter name for new layer (becomes the current layer) <A-ANNO-REFR>: A-ANNO-VPRT
Enter an option
[?/Make/Set/New/ON/OFF/Color/Ltype/LWeight/Plot/Freeze/Thaw/LOck/Unlock/stAte]:
Plot
Enter a plotting preference [Plot/No plot] <Plot>: N
Enter layer name(s) for this plot preference <A-ANNO-VPRT>: A-ANNO-VPRT Enter
an option
[?/Make/Set/New/ON/OFF/Color/Ltype/LWeight/Plot/Freeze/Thaw/LOck/Unlock/stAte]:
_Color
New color [Truecolor/COlorbook] <7 (white)>: _White
Enter name list of layer(s) for color 7 (white) <A-ANNO-VPRT>: A-ANNO-VPRT
Enter an option
[?/Make/Set/New/ON/OFF/Color/Ltype/LWeight/Plot/Freeze/Thaw/LOck/Unlock/stAte]:
"All viewports are now display locked and moved to layer A-ANNO-VPRT."
Good job CAB! I would've put it before work too.
Here's yours modified to add the lock portion.
(defun c:vp2layer( / lyr ssvp idx)
(vl-load-com)
(setq lyr "0" ; enter your layer here
clr "")
(if (not(setq tbl (tblsearch "LAYER" lyr)))
(command "._Layer" "_Make" lyr "_Color" (if (= Clr "") "_White" Clr) lyr "")
)
(and (setq ssvp (ssget "X" '((0 . "VIEWPORT"))))
(repeat (setq idx (sslength ssvp))
(setq vp (vlax-ename->vla-object (ssname ssvp (setq idx (1- idx)))))
(vla-put-layer vp lyr)
(vla-put-displaylocked vp :vlax-true)
)
)
(print (strcat "All viewports are now locked and on layer " lyr "."))
(princ)
)
(prompt "\nViewport to layer loaded, Enter vp2layer to run.")
(princ)