(defun c:vg ( / ) (defun vguide_main ( / ) (save_state) (set_state) (command "pspace") (command "_.undo" "mark") (setq VPortEnt (entget (car (entsel "Select viewport for guide: ")))) (command "mspace" "cvport" (cdr (assoc 69 VPortEnt))) (setq VPScale (/ (getvar "viewsize") (cdr (assoc 41 VPortEnt))) HalfWdth (* (/ (cdr (assoc 40 VPortEnt)) 2) VPScale) HalfHgt (* (/ (cdr (assoc 41 VPortEnt)) 2) VPScale)) (if (> (getvar "viewtwist") pi) (progn (setq Ang0 (- (* pi 2.0) (getvar "viewtwist")) Ang90 (+ Ang0 (/ pi 2.0)) Ang180 (+ Ang0 pi) Ang270 (+ Ang0 (* pi 1.5)) RightPt (polar (getvar "viewctr") Ang0 HalfWdth) LeftPt (polar (getvar "viewctr") Ang180 HalfWdth))) (progn (setq Ang0 (getvar "viewtwist") Ang90 (+ Ang0 (/ pi 2.0)) Ang180 (+ Ang0 pi) Ang270 (+ Ang0 (* pi 1.5)) RightPt (polar (getvar "viewctr") Ang0 HalfWdth) LeftPt (polar (getvar "viewctr") Ang180 HalfWdth)))) (setq Pt1 (polar LeftPt Ang90 HalfHgt) Pt2 (polar RightPt Ang90 HalfHgt) Pt3 (polar RightPt Ang270 HalfHgt) Pt4 (polar LeftPt Ang270 HalfHgt)) (command "MSPACE" "LAYER" "M" "VP" "C" "YELLOW" "VP" "" "PLINE" Pt1 "W" 0 0 Pt2 Pt3 Pt4 "C" "pspace") (reset_state) ) (defun save_state ( / ) (setq SnapSave (getvar "OSMODE") BlipSave (getvar "BLIPMODE") LayrSave (getvar "CLAYER") LTypSave (getvar "CELTYPE") ComdEcho (getvar "CMDECHO") ColrSave (getvar "CECOLOR") OldErr *error*) ) (defun set_state ( / ) (setvar "OSMODE" 0) (setvar "CMDECHO" 0) (setvar "BLIPMODE" 0) (command "LINETYPE" "S" "BYLAYER" "") (command "COLOR" "BYLAYER") ) (defun reset_state ( / ) (setvar "OSMODE" SnapSave) (setvar "BLIPMODE" BlipSave) (command "LAYER" "S" LayrSave "") (command "LINETYPE" "S" LTypSave "") (command "COLOR" ColrSave) (setvar "CMDECHO" ComdEcho) (setq *error* OldErr) ) (defun *ERROR* (ErrStr) (print ErrStr) (command "_.undo" "back") (command "pspace") (reset_state) ) (vguide_main) (princ) )