I couldn't find here on site topic where it's posted, so I pulled it from my library... It may be useful to you - it's something similar to navcube...
(defun C:VV ( / *error* vs? adoc cmde per vs d vc box osm 3dosm p x y z pp ); = ViewsNoZoom: Main function - global command function by Marko Ribar, d.i.a.
(vl-load-com)
(defun *error* ( m )
(vla-sendcommand adoc "_.vscurrent\n!vscurrent\n(setq vscurrent nil)\nunisolateobjects\n")
(if cmde
(setvar 'cmdecho cmde)
)
(if per
(setvar 'perspective per)
)
(if 3dosm
(setvar '3dosmode 3dosm)
)
(if osm
(setvar 'osmode osm)
)
(if (and box (not (vlax-erased-p box)))
(entdel box)
)
(if (tblsearch "BLOCK" "DVIEWBLOCK")
(if command-s
(command-s "_.-PURGE" "_B" "DVIEWBLOCK" "_N")
(vl-cmdf "_.-PURGE" "_B" "DVIEWBLOCK" "_N")
)
)
(vla-endundomark adoc)
(vla-regen adoc acactiveviewport)
(if m
(prompt m)
)
(princ)
)
(defun vs? ( / VpEnt VsLst vsname )
(vl-load-com)
(if (> (atoi (substr (getvar "ACADVER") 1 2)) 16)
(progn
(if (= (getvar "TILEMODE") 1)
(setq VpEnt (vlax-vla-object->ename (vla-get-activeviewport (vla-get-activedocument (vlax-get-acad-object)))))
(setq VpEnt (vlax-vla-object->ename (vla-get-activepviewport (vla-get-activedocument (vlax-get-acad-object)))))
)
(setq vsname (cdr (assoc 2 (entget (cdr (assoc 348 (entget VpEnt)))))))
)
(setq vsname "*")
)
(if (= vsname "*")
(progn
(setq VsLst '("2D wireframe" "3D wireframe" "Hidden" "Flat" "Gouraud" "fLat+edges" "gOuraud+edges"))
(setq vsname (nth (cdr (assoc 281 (entget VpEnt))) VsLst))
)
)
vsname
)
(vla-startundomark (setq adoc (vla-get-activedocument (vlax-get-acad-object))))
(vl-cmdf "_.REGEN")
(setq cmde (getvar 'cmdecho))
(setvar 'cmdecho 0)
(setq per (getvar 'perspective))
(setq vscurrent (strcase (vs?) t))
(setq osm (getvar 'osmode))
(setvar 'osmode 515)
(setq pp (getpoint "\nPick or specify point to use it for center of view change : "))
(setvar 'osmode 0)
(setq vs (getvar 'viewsize))
(setq d (* vs 0.1))
(vl-cmdf "_.box" "_c" (osnap (setq vc (if pp pp (getvar 'viewctr))) "none") "_c" (mapcar '+ vc (list d 0 0)))
(setq box (entlast))
(alert "Pick vertex or edge on cube to change view - to pick point on face of cube use \"m2p\" osnap")
(if (getvar '3dosmode)
(progn
(setq 3dosm (getvar '3dosmode))
(setvar '3dosmode 14)
)
(setvar 'osmode 3)
)
(vl-cmdf "_.isolateobjects" box "")
(vl-cmdf "_.vscurrent" "_x")
(setvar 'perspective 1)
(setq p (getpoint "\nPick view point on CUBE..."))
(cond
( (and (< (setq x (car (mapcar '- p vc))) 0) (< (setq y (cadr (mapcar '- p vc))) 0) (> (setq z (caddr (mapcar '- p vc))) 0) (not (equal x 0 1e-6)) (not (equal y 0 1e-6)) (not (equal z 0 1e-6)))
(C:VISWO)
)
( (and (< (setq x (car (mapcar '- p vc))) 0) (> (setq y (cadr (mapcar '- p vc))) 0) (> (setq z (caddr (mapcar '- p vc))) 0) (not (equal x 0 1e-6)) (not (equal y 0 1e-6)) (not (equal z 0 1e-6)))
(C:VINWO)
)
( (and (> (setq x (car (mapcar '- p vc))) 0) (> (setq y (cadr (mapcar '- p vc))) 0) (> (setq z (caddr (mapcar '- p vc))) 0) (not (equal x 0 1e-6)) (not (equal y 0 1e-6)) (not (equal z 0 1e-6)))
(C:VINEO)
)
( (and (> (setq x (car (mapcar '- p vc))) 0) (< (setq y (cadr (mapcar '- p vc))) 0) (> (setq z (caddr (mapcar '- p vc))) 0) (not (equal x 0 1e-6)) (not (equal y 0 1e-6)) (not (equal z 0 1e-6)))
(C:VISEO)
)
( (and (< (setq x (car (mapcar '- p vc))) 0) (< (setq y (cadr (mapcar '- p vc))) 0) (equal (setq z (caddr (mapcar '- p vc))) 0 1e-6) (not (equal x 0 1e-6)) (not (equal y 0 1e-6)))
(C:VISWZ)
)
( (and (< (setq x (car (mapcar '- p vc))) 0) (> (setq y (cadr (mapcar '- p vc))) 0) (equal (setq z (caddr (mapcar '- p vc))) 0 1e-6) (not (equal x 0 1e-6)) (not (equal y 0 1e-6)))
(C:VINWZ)
)
( (and (> (setq x (car (mapcar '- p vc))) 0) (> (setq y (cadr (mapcar '- p vc))) 0) (equal (setq z (caddr (mapcar '- p vc))) 0 1e-6) (not (equal x 0 1e-6)) (not (equal y 0 1e-6)))
(C:VINEZ)
)
( (and (> (setq x (car (mapcar '- p vc))) 0) (< (setq y (cadr (mapcar '- p vc))) 0) (equal (setq z (caddr (mapcar '- p vc))) 0 1e-6) (not (equal x 0 1e-6)) (not (equal y 0 1e-6)))
(C:VISEZ)
)
( (and (< (setq x (car (mapcar '- p vc))) 0) (< (setq y (cadr (mapcar '- p vc))) 0) (< (setq z (caddr (mapcar '- p vc))) 0) (not (equal x 0 1e-6)) (not (equal y 0 1e-6)) (not (equal z 0 1e-6)))
(C:VISWU)
)
( (and (< (setq x (car (mapcar '- p vc))) 0) (> (setq y (cadr (mapcar '- p vc))) 0) (< (setq z (caddr (mapcar '- p vc))) 0) (not (equal x 0 1e-6)) (not (equal y 0 1e-6)) (not (equal z 0 1e-6)))
(C:VINWU)
)
( (and (> (setq x (car (mapcar '- p vc))) 0) (> (setq y (cadr (mapcar '- p vc))) 0) (< (setq z (caddr (mapcar '- p vc))) 0) (not (equal x 0 1e-6)) (not (equal y 0 1e-6)) (not (equal z 0 1e-6)))
(C:VINEU)
)
( (and (> (setq x (car (mapcar '- p vc))) 0) (< (setq y (cadr (mapcar '- p vc))) 0) (< (setq z (caddr (mapcar '- p vc))) 0) (not (equal x 0 1e-6)) (not (equal y 0 1e-6)) (not (equal z 0 1e-6)))
(C:VISEU)
)
( (and (equal (setq x (car (mapcar '- p vc))) 0 1e-6) (< (setq y (cadr (mapcar '- p vc))) 0) (> (setq z (caddr (mapcar '- p vc))) 0) (not (equal y 0 1e-6)) (not (equal z 0 1e-6)))
(C:VISO)
)
( (and (equal (setq x (car (mapcar '- p vc))) 0 1e-6) (< (setq y (cadr (mapcar '- p vc))) 0) (< (setq z (caddr (mapcar '- p vc))) 0) (not (equal y 0 1e-6)) (not (equal z 0 1e-6)))
(C:VISU)
)
( (and (< (setq x (car (mapcar '- p vc))) 0) (equal (setq y (cadr (mapcar '- p vc))) 0 1e-6) (> (setq z (caddr (mapcar '- p vc))) 0) (not (equal x 0 1e-6)) (not (equal z 0 1e-6)))
(C:VIWO)
)
( (and (< (setq x (car (mapcar '- p vc))) 0) (equal (setq y (cadr (mapcar '- p vc))) 0 1e-6) (< (setq z (caddr (mapcar '- p vc))) 0) (not (equal x 0 1e-6)) (not (equal z 0 1e-6)))
(C:VIWU)
)
( (and (equal (setq x (car (mapcar '- p vc))) 0 1e-6) (> (setq y (cadr (mapcar '- p vc))) 0) (> (setq z (caddr (mapcar '- p vc))) 0) (not (equal y 0 1e-6)) (not (equal z 0 1e-6)))
(C:VINO)
)
( (and (equal (setq x (car (mapcar '- p vc))) 0 1e-6) (> (setq y (cadr (mapcar '- p vc))) 0) (< (setq z (caddr (mapcar '- p vc))) 0) (not (equal y 0 1e-6)) (not (equal z 0 1e-6)))
(C:VINU)
)
( (and (> (setq x (car (mapcar '- p vc))) 0) (equal (setq y (cadr (mapcar '- p vc))) 0 1e-6) (> (setq z (caddr (mapcar '- p vc))) 0) (not (equal x 0 1e-6)) (not (equal z 0 1e-6)))
(C:VIEO)
)
( (and (> (setq x (car (mapcar '- p vc))) 0) (equal (setq y (cadr (mapcar '- p vc))) 0 1e-6) (< (setq z (caddr (mapcar '- p vc))) 0) (not (equal x 0 1e-6)) (not (equal z 0 1e-6)))
(C:VIEU)
)
( (and (equal (setq x (car (mapcar '- p vc))) 0 1e-6) (equal (setq y (cadr (mapcar '- p vc))) 0 1e-6) (> (setq z (caddr (mapcar '- p vc))) 0) (not (equal z 0 1e-6)))
(C:VOO)
)
( (and (equal (setq x (car (mapcar '- p vc))) 0 1e-6) (equal (setq y (cadr (mapcar '- p vc))) 0 1e-6) (< (setq z (caddr (mapcar '- p vc))) 0) (not (equal z 0 1e-6)))
(C:VOU)
)
( (and (> (setq x (car (mapcar '- p vc))) 0) (equal (setq y (cadr (mapcar '- p vc))) 0 1e-6) (equal (setq z (caddr (mapcar '- p vc))) 0 1e-6) (not (equal x 0 1e-6)))
(C:VOE)
)
( (and (equal (setq x (car (mapcar '- p vc))) 0 1e-6) (> (setq y (cadr (mapcar '- p vc))) 0) (equal (setq z (caddr (mapcar '- p vc))) 0 1e-6) (not (equal y 0 1e-6)))
(C:VON)
)
( (and (< (setq x (car (mapcar '- p vc))) 0) (equal (setq y (cadr (mapcar '- p vc))) 0 1e-6) (equal (setq z (caddr (mapcar '- p vc))) 0 1e-6) (not (equal x 0 1e-6)))
(C:VOW)
)
( (and (equal (setq x (car (mapcar '- p vc))) 0 1e-6) (< (setq y (cadr (mapcar '- p vc))) 0) (equal (setq z (caddr (mapcar '- p vc))) 0 1e-6) (not (equal y 0 1e-6)))
(C:VOS)
)
)
(*error* nil)
)
;; ViewsNoZoom.lsp
;; For changing to Predefined View directions (in World Coordinates), such as those in
;; AutoCAD's "Views" Toolbar, BUT with the center of the view and the magnification
;; remaining as they are, WITHOUT Zooming out to the drawing extents as AutoCAD's
;; icons do. Uses DVIEW and its Points option, not the AutoCAD icons' VIEW approach,
;; or VPOINT. Also includes Isometric Views from the BELOW-the-equator points of
;; view (not available among AutoCAD's pre-defined icons).
;; Uses abbreviations for compass directions for Orthogonal as well as Isometric views,
;; and "Overhead" & "Underneath" in place of "Top" & "Bottom" or "Above" & "Below",
;; to make it easier to remember for typing in, avoiding potential uncertainty for some
;; directions, e.g. R could be for Right or Rear, B could be for Back, Below or Bottom.
;;
;; Kent Cooper, June 2009
(defun ViewPredef ( dir pp / cmde vc )
(setq cmde (getvar 'cmdecho))
(setvar 'cmdecho 0)
(if pp
(setq pp (trans pp 1 0))
(setq vc (trans (getvar 'viewctr) 1 0))
)
(vl-cmdf "_.ucs" "_w")
(if pp
(vl-cmdf "_.dview" "" "_points" "_none" pp "_none" dir "")
(vl-cmdf "_.dview" "" "_points" "_none" vc "_none" dir "")
)
(vl-cmdf "_.ucs" "_p")
(setvar 'cmdecho cmde)
(princ)
); end defun
(defun C:VOO ( / dir ); = View: Orthogonal from Overhead
(setq dir (trans (list 0 0 1) 1 0 t))
(ViewPredef (strcat "@" (rtos (car dir) 2 50) "," (rtos (cadr dir) 2 50) "," (rtos (caddr dir) 2 50)) pp)
); end defun
(defun C:VOU ( / dir ); = View: Orthogonal from Underneath
(setq dir (trans (list 0 0 -1) 1 0 t))
(ViewPredef (strcat "@" (rtos (car dir) 2 50) "," (rtos (cadr dir) 2 50) "," (rtos (caddr dir) 2 50)) pp)
); end defun
(defun C:VOE ( / dir ); = View: Orthogonal from East
(setq dir (trans (list 1 0 0) 1 0 t))
(ViewPredef (strcat "@" (rtos (car dir) 2 50) "," (rtos (cadr dir) 2 50) "," (rtos (caddr dir) 2 50)) pp)
); end defun
(defun C:VON ( / dir ); = View: Orthogonal from North
(setq dir (trans (list 0 1 0) 1 0 t))
(ViewPredef (strcat "@" (rtos (car dir) 2 50) "," (rtos (cadr dir) 2 50) "," (rtos (caddr dir) 2 50)) pp)
); end defun
(defun C:VOW ( / dir ); = View: Orthogonal from West
(setq dir (trans (list -1 0 0) 1 0 t))
(ViewPredef (strcat "@" (rtos (car dir) 2 50) "," (rtos (cadr dir) 2 50) "," (rtos (caddr dir) 2 50)) pp)
); end defun
(defun C:VOS ( / dir ); = View: Orthogonal from South
(setq dir (trans (list 0 -1 0) 1 0 t))
(ViewPredef (strcat "@" (rtos (car dir) 2 50) "," (rtos (cadr dir) 2 50) "," (rtos (caddr dir) 2 50)) pp)
); end defun
(defun C:VINEO ( / dir ); = View: Isometric from NorthEast, Overhead
(setq dir (trans (list 1 1 1) 1 0 t))
(ViewPredef (strcat "@" (rtos (car dir) 2 50) "," (rtos (cadr dir) 2 50) "," (rtos (caddr dir) 2 50)) pp)
); end defun
(defun C:VINEZ ( / dir ); = View: Isometric from NorthEast, Zero elevation
(setq dir (trans (list 1 1 0) 1 0 t))
(ViewPredef (strcat "@" (rtos (car dir) 2 50) "," (rtos (cadr dir) 2 50) "," (rtos (caddr dir) 2 50)) pp)
); end defun
(defun C:VINEU ( / dir ); = View: Isometric from NorthEast, Underneath
(setq dir (trans (list 1 1 -1) 1 0 t))
(ViewPredef (strcat "@" (rtos (car dir) 2 50) "," (rtos (cadr dir) 2 50) "," (rtos (caddr dir) 2 50)) pp)
); end defun
(defun C:VINWO ( / dir ); = View: Isometric from NorthWest, Overhead
(setq dir (trans (list -1 1 1) 1 0 t))
(ViewPredef (strcat "@" (rtos (car dir) 2 50) "," (rtos (cadr dir) 2 50) "," (rtos (caddr dir) 2 50)) pp)
); end defun
(defun C:VINWZ ( / dir ); = View: Isometric from NorthWest, Zero elevation
(setq dir (trans (list -1 1 0) 1 0 t))
(ViewPredef (strcat "@" (rtos (car dir) 2 50) "," (rtos (cadr dir) 2 50) "," (rtos (caddr dir) 2 50)) pp)
); end defun
(defun C:VINWU ( / dir ); = View: Isometric from NorthWest, Underneath
(setq dir (trans (list -1 1 -1) 1 0 t))
(ViewPredef (strcat "@" (rtos (car dir) 2 50) "," (rtos (cadr dir) 2 50) "," (rtos (caddr dir) 2 50)) pp)
); end defun
(defun C:VISWO ( / dir ); = View: Isometric from SouthWest, Overhead
(setq dir (trans (list -1 -1 1) 1 0 t))
(ViewPredef (strcat "@" (rtos (car dir) 2 50) "," (rtos (cadr dir) 2 50) "," (rtos (caddr dir) 2 50)) pp)
); end defun
(defun C:VISWZ ( / dir ); = View: Isometric from SouthWest, Zero elevation
(setq dir (trans (list -1 -1 0) 1 0 t))
(ViewPredef (strcat "@" (rtos (car dir) 2 50) "," (rtos (cadr dir) 2 50) "," (rtos (caddr dir) 2 50)) pp)
); end defun
(defun C:VISWU ( / dir ); = View: Isometric from SouthWest, Underneath
(setq dir (trans (list -1 -1 -1) 1 0 t))
(ViewPredef (strcat "@" (rtos (car dir) 2 50) "," (rtos (cadr dir) 2 50) "," (rtos (caddr dir) 2 50)) pp)
); end defun
(defun C:VISEO ( / dir ); = View: Isometric from SouthEast, Overhead
(setq dir (trans (list 1 -1 1) 1 0 t))
(ViewPredef (strcat "@" (rtos (car dir) 2 50) "," (rtos (cadr dir) 2 50) "," (rtos (caddr dir) 2 50)) pp)
); end defun
(defun C:VISEZ ( / dir ); = View: Isometric from SouthEast, Zero elevation
(setq dir (trans (list 1 -1 0) 1 0 t))
(ViewPredef (strcat "@" (rtos (car dir) 2 50) "," (rtos (cadr dir) 2 50) "," (rtos (caddr dir) 2 50)) pp)
); end defun
(defun C:VISEU ( / dir ); = View: Isometric from SouthEast, Underneath
(setq dir (trans (list 1 -1 -1) 1 0 t))
(ViewPredef (strcat "@" (rtos (car dir) 2 50) "," (rtos (cadr dir) 2 50) "," (rtos (caddr dir) 2 50)) pp)
); end defun
(defun C:VISO ( / dir ); = View: Isometric from South, Overhead
(setq dir (trans (list 0 -1 1) 1 0 t))
(ViewPredef (strcat "@" (rtos (car dir) 2 50) "," (rtos (cadr dir) 2 50) "," (rtos (caddr dir) 2 50)) pp)
); end defun
(defun C:VISU ( / dir ); = View: Isometric from South, Underneath
(setq dir (trans (list 0 -1 -1) 1 0 t))
(ViewPredef (strcat "@" (rtos (car dir) 2 50) "," (rtos (cadr dir) 2 50) "," (rtos (caddr dir) 2 50)) pp)
); end defun
(defun C:VIWO ( / dir ); = View: Isometric from West, Overhead
(setq dir (trans (list -1 0 1) 1 0 t))
(ViewPredef (strcat "@" (rtos (car dir) 2 50) "," (rtos (cadr dir) 2 50) "," (rtos (caddr dir) 2 50)) pp)
); end defun
(defun C:VIWU ( / dir ); = View: Isometric from West, Underneath
(setq dir (trans (list -1 0 -1) 1 0 t))
(ViewPredef (strcat "@" (rtos (car dir) 2 50) "," (rtos (cadr dir) 2 50) "," (rtos (caddr dir) 2 50)) pp)
); end defun
(defun C:VINO ( / dir ); = View: Isometric from North, Overhead
(setq dir (trans (list 0 1 1) 1 0 t))
(ViewPredef (strcat "@" (rtos (car dir) 2 50) "," (rtos (cadr dir) 2 50) "," (rtos (caddr dir) 2 50)) pp)
); end defun
(defun C:VINU ( / dir ); = View: Isometric from North, Underneath
(setq dir (trans (list 0 1 -1) 1 0 t))
(ViewPredef (strcat "@" (rtos (car dir) 2 50) "," (rtos (cadr dir) 2 50) "," (rtos (caddr dir) 2 50)) pp)
); end defun
(defun C:VIEO ( / dir ); = View: Isometric from East, Overhead
(setq dir (trans (list 1 0 1) 1 0 t))
(ViewPredef (strcat "@" (rtos (car dir) 2 50) "," (rtos (cadr dir) 2 50) "," (rtos (caddr dir) 2 50)) pp)
); end defun
(defun C:VIEU ( / dir ); = View: Isometric from East, Underneath
(setq dir (trans (list 1 0 -1) 1 0 t))
(ViewPredef (strcat "@" (rtos (car dir) 2 50) "," (rtos (cadr dir) 2 50) "," (rtos (caddr dir) 2 50)) pp)
); end defun
(princ)
Marko Ribar, d.i.a. (graduated engineer of architecture)