Calcolare lunghezza di un arco

Questo programma serve per calcolare la distanza su un arco.


;;; LISP routine per trovare la lunghezza di un arco
(princ "\nTrova lunghezza arco ")
(princ "\nScrivi Arcdist per iniziare...... ")
(defun c:arcdist ( )
 (setq chord (getdist "\nScegli 2 punti sull'arco: "))
 (setq et (nentsel "\nSeleziona arc: "))
 (setq radius (cdr (assoc 40(entget (car et)))))
(setq x1 (* 2 pi radius))
 (setq hc (* 0.5 chord))
(setq x2 (- (* radius radius)(* hc hc)))
 (setq x3 (expt x2 0.5))
(setq theta (/ hc x3))
(setq ang (atan theta))
(setq a1 ( * 2 ang))
 (setq a2 (rtd a1))
(setq a3 (/ a2 360))
 (setq ans (* a3 x1))
 (prompt "\nLA lunghezza dell'arco è: ")
 (princ ans) (princ)
)
(defun rtd (a) (* 180 ( / a pi)) )
Compago