This will give you some more info.
Used to select two entity viewports.
;;; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;;; + Viewport Select +
;;; + Created by C. Alan Butler +
;;; + Copyright 2005 +
;;; + by Precision Drafting & Design All Rights Reserved. +
;;; + Contact at ab2draft@TampaBay.rr.com +
;;; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;;; Returns the viewport entity name, ignoring second entities used when
;;; a non-standard viewport is created, circle, ellipse, LWpolyline
(defun vp_sel (/ vpflag sel-vport entvport vptest)
(if (= (getvar "TileMode") 1) ; in model space
;;------------------------------------------------
(progn
(alert "**** You must be in Paper Space to run this routine. ****")
)
;;------------------------------------------------
(progn ;else in a layout
(if (/= (getvar "cvport") 1)
(command "_.pspace") ; close the view port
)
(setq vpflag (getvar "cvport")) ; get viewport #
(while (= vpflag 1) ; No active viewport, Loop until one is picked
(setq sel-vport (car (entsel "\nSelect view port: ")))
(if (= sel-vport nil)
(alert
"You must select a viewport\r\n --=< Try again! >=--"
)
(progn
(setq entvport (entget sel-vport))
(if (and ;; not all vp objects are LWPolylines
;;(= (cdr (assoc 0 entvport)) "LWPOLYLINE")
(setq vptest (member '(102 . "{ACAD_REACTORS") entvport))
(setq vptest (member '(102 . "}") (reverse vptest)))
(assoc 330 vptest)
)
(setq entvport (entget (cdr (assoc 330 vptest))))
)
;; Make VP active
(if (= (cdr (assoc 0 entvport)) "VIEWPORT")
(progn
(setq vpflag (cdr (assoc 69 entvport)))
(command "mspace") ; activate the last vp active
(setvar "cvport" vpflag) ; switch to this vp
) ; endif viewport
)
)
) ; endif cond sel-vport
) ;endwhile (= vpFlag 1)
(command "_.pspace") ; close the view port
)
)
;; return the ename of vp or nil
(cond (entvport (cdr (assoc -1 entvport))))
)