Cómo dividir 2 ángulos a la mitad en autolisp

Hola amigos latinos, miren esta imagen.

-ej-1.jpg

Aquí yo intento que la rutina me haga círculos en cada vértice y también los numere, la única idea que tuve para centrar cada texto con respecto a los vértices anterior y posterior fue por medio de angle y dividirlo en 2, el problema surge porque yo requiero que cada texto quede dentro de la polilinea y si se fijan bien hay textos que quedan fuera, les adjunto la rutina que es bien corta para que me aconsejen que debo añadir para tener lodos los textos dentro de la polilinea y siempre centrados, muchas gracias.

Código:

(defun c:a ()
(setque lwpol (entsel \nSeleccione polilínea:))
(setque lst-vert-der ()) (num-vert)
(setque z num-lst-vert-der) (setque n 0 n-resp 0) (setque punt 1).
(Repeat num-lst-vert-der.
(setque para (nth n lst-vert-der))
(command circle para 1)
(command text MC (Polar para (/(+(angle para (nth (+ n 1) lst-vert-der))
(angle para (nth (- Z 1) lst-vert-der))) 2) 3.5) 2 90 (itoa punt))
(setque punt (+ punt 1)) (setque n (1+ n))
(if (= n (- Num-lst-vert-der 1)) (final)) (if (= z num-lst-vert-der) (setque z 0))
(setque z (1+ z))
),fin repeat.
),fin defun.
(Defun final ()
(setque para (nth n lst-vert-der))
(command circle para 1)
(command text MC (Polar para (/(+(angle para (nth (- N 1) lst-vert-der))
(angle para (nth 0 lst-vert-der))) 2) 3.5) 2 90 (itoa punt))
),fin defun.
(defun num-vert ()
(setque nom-lwpol-der (car lwpol)) ;_nombre de la entidad.
(setque pnt-lwpol-der (car (cdr lwpol))) ;_punto de selección.
(setque lst-lwpol-der (entget nom-lwpol-der)) ;_lista de la entidad.
(setque dato-lwpol-der (entget nom-lwpol-der)) ;_lista de la entidad.
(setque num-vert-der (cdr (assoc 90 dato-lwpol-der))), número de vértices.
(setque dato-lwpol-der (member (assoc 10 dato-lwpol-der) dato-lwpol-der))
(setque nom-lwpol (car lwpol)) (setque lst-lwpol (entget nom-lwpol)) (setque tipo (cdr (assoc 0 lst-lwpol)))
(if (= tipo polyline)(command convert p s lwpol ))
(repeat num-vert-der.
(setque lst-vert-der (append lst-vert-der (list (cdr (assoc 10 dato-lwpol-der)))))
(setque dato-lwpol-der (cdr dato-lwpol-der))
(setque dato-lwpol-der (member (assoc 10 dato-lwpol-der) dato-lwpol-der))
(setque num-lst-vert-der (length lst-vert-der))
),fin repeat.
),fin defun

. Ver sobre el tema y comentarios en el foro