I think it was MHUPP who put me onto the following 2 snippets, save the current zoom with ZoomCurrent, and return to it with ZoomSaved can be used to show all the outline and return the screen to how the user had it at the start of the LISP:
Example 3 lines at the end to show it working
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun ZoomCurrent ( / vc sz ) ;; record the current zoom
(setq vc (getvar 'viewctr))
(setq sz (getvar 'viewsize))
(list vc sz)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun ZoomSaved ( vcsz / ) ;; zoom to zoom. car: centre coordinate, cadr scale factor
(command "Zoom" "c" (car vcsz) (cadr vcsz))
(princ)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;Zoom operation
(setq vcsz (ZoomCurrent))
(command "zoom" "object" pause)
(ZoomSaved vcsz)