Arrggg..... that is one of my many pitfalls. Since working in anything other than WCS is taboo in my industry I tend to forget about it the UCS's.
Stig, as always, nice code. And to prove your are right........
;;; i think this is the correct method, please test.
(defun c:pang (/ utilobj v2l ent vlobj p1 p2)
(vl-load-com)
(setq utilobj (vla-get-Utility
(vla-get-ActiveDocument (vlax-get-acad-object))
)
)
(defun v2l (v)
(vlax-safearray->list (vlax-variant-value v))
)
(if (setq ent (car (entsel "\nSelect a line: ")))
(setq vlobj (vlax-ename->vla-object ent))
)
(if (and vlobj
(= (vlax-get-property vlobj 'ObjectName) "AcDbLine")
)
(progn (setq p1 (vla-TranslateCoordinates
utilobj
(vlax-get-property vlobj 'StartPoint)
acWorld
acUCS
:vlax-false
)
p2 (vla-TranslateCoordinates
utilobj
(vlax-get-property vlobj 'EndPoint)
acWorld
acUCS
:vlax-false
)
)
(setvar 'snapang (angle (v2l p1) (v2l p2)))
) ; else
(command "_.snapang")
) ;if
(princ)
)