Look into the vlax-curve-* functions.
As far as I can see the steps are:
1.
Create a copy of the 3D poly and set the Z for all vertices to zero.
2.
Use the vlax-curve-getpointatdist function on the flat 3D poly to get a list of points.
3.
Use the vlax-curve-getclosestpointtoprojection to project the points on the original poly.
4.
Extract the Z value from the points and create texts. Use vlax-curve-getfirstderiv for angle info.
It is not exactly hard, but it does involve some work. Maybe you should do some of that work yourself.