For a dxf version I wrote this a long time ago, but as you can see, the VL version is easier and smaller. (Partial code)
(setq ent1 (ssname ss cnt)
elist1 (entget ent1)
etype1 (strcase (cdr (assoc 0 elist1)) 1)
ssl (sslength ss)
ent (ssname ss cnt)
elist (entget ent)
rad (cdr (assoc 40 elist))
cen (trans (cdr (assoc 10 elist)) 0 1)
ang1 (cdr (assoc 50 elist))
ang2 (cdr (assoc 51 elist))
delta (- ang2 ang1)
cnt (1+ cnt)
) ;_ setq
(if (minusp delta)
(setq delta (+ delta (* pi 2)))
) ;_ if
(setq pt1 (polar cen ang1 rad)
pt2 (polar cen ang2 rad)
alen (* rad delta)
hdelt (/ delta 2)
pt3 (polar cen (+ hdelt ang1) rad)
rang (angtos (angle pt1 pt2))
alens (rtos (/ alen 12) 2 2)
)