THIS IS NOT MINE BUT BEEN USING IT FOR YEARS ...
LET ME KNOW IF IT WORKS ... ALCode:;Output the bearing of a line. (defun c:bearing () (setvar "cmdecho" 0) (setq p1 (getpoint "Select line: ")) (setq p2 (osnap p1 "midp")) (setq p3 (osnap p1 "endp")) (setq string (angtos (angle p2 p3))) (command "text" "c" (polar p2 (+ (angle p2 p3) (/ pi 2)) (/ (getvar "textsize") 2.0)) "" (* (/ 180.0 pi) (angle p2 p3)) string) (princ) )