(defun C:ISOANG (/) (setvar "CMDECHO" 0) (setq a1 (/ pi 180.0)) (setq a2 (/ 180.0 pi)) (setq flg 0 bd nil) (setq bp (getpoint "\nPick start of angle: ")) (setq ison (getvar "snapisopair")) (while (and (= ison 0)(/= flg 1)) (setq bd (getangle bp "\nDirection of angle: ")) (setq bd (/ (* bd 180.0) pi)) (cond ((equal bd 90.0 0.001) (setq flg 1 bd1 330)) ((equal bd 150.0 0.001)(setq flg 1 bd1 90)) ((equal bd 270.0 0.001)(setq flg 1 bd1 150)) ((equal bd 330.0 0.001)(setq flg 1 bd1 270)) ) (if (= flg 0) (princ "\n**** Must be 90, 150, 270, or 330 ****\n")) ) (while (and (= ison 1)(/= flg 1)) (setq bd (getangle bp "\nDirection of angle: ")) (setq bd (/ (* bd 180.0) pi)) (cond ((equal bd 30.0 0.001) (setq flg 1 bd1 330)) ((equal bd 150.0 0.001)(setq flg 1 bd1 30)) ((equal bd 210.0 0.001)(setq flg 1 bd1 150)) ((equal bd 330.0 0.001)(setq flg 1 bd1 210)) ) (if (= flg 0) (princ "\n**** Must be 30, 150, 210, or 330 ****\n")) ) (while (and (= ison 2)(/= flg 1)) (setq bd (getangle bp "\nDirection of angle: ")) (setq bd (/ (* bd 180.0) pi)) (cond ((equal bd 90.0 0.001) (setq flg 1 bd1 30)) ((equal bd 210.0 0.001)(setq flg 1 bd1 90)) ((equal bd 270.0 0.001)(setq flg 1 bd1 210)) ((equal bd 30.0 0.001)(setq flg 1 bd1 270)) ) (if (= flg 0) (princ "\n**** Must be 30, 90, 210, or 270 ****\n")) ) (setq da (getdist bp "\nLength on angle line: ")) (princ "\n\n---- Positive angle: right of direction angle.") (princ "\n---- Negative angle: left of direction angle.\n\n") (setq ga (getreal "\nEnter angle to make: ")) (setq tb (* da (sin (* a1 ga))) ta (* da (cos (* a1 ga)))) (setq pt1 (polar bp (* a1 bd) ta) pt2 (polar pt1 (* a1 bd1) tb)) (setq bp1 (polar bp (angle bp pt2) da)) (setq blp (getvar "blipmode")) (setvar "blipmode" 0) (command "line" bp bp1 "") (setvar "blipmode" blp) (princ) )