A command to set viewport scale for one or more viewports, even if they're locked. Suitable for keyboard or pull-down menu. It works in Briscad v9.
(defun c:SVP (/ NotPS NoSS SF SFI ss1 N vpN ObjN)
(defun NotPS () (prompt "\nOnly works in Paperspace. ") (exit) )
(if (> (getvar "CVPORT") 1) (NotPS) ) ;; CVport: Pspace=1; Mspace=2; Vport=2+
(initget 7) ; prevents Negative, Zero, or Null input
(setq SF (getreal "Scale Factor: "))
(setq SFI (/ 1.0 SF))
(defun NoSS () (princ "\nNo viewport selected. ") (exit) )
(setq ss1 (ssget '((0 . "VIEWPORT")) ) ) ; selection filtered - viewports only
(if (not ss1) (NoSS))
(setq N 0)
(while (< N (sslength ss1) )
(setq vpN (ssname ss1 N) )
(setq ObjN (vlax-ename->vla-object vpN))
(Vla-Put-CustomScale ObjN SFI)
(setq N (+ N 1))
)
(sssetfirst nil ss1)
) ;; defun