I suppose this is a starting point... 
  
 
(defun c:bound  (/ cEnt cObj i j)
 (if (and (setq cEnt (car (entsel "\nSelect Curve: ")))
          (member (cdr (assoc 0 (entget cEnt)))
                  '("POLYLINE" "LWPOLYLINE" "REGION")))
   (progn
     (setq cObj (vlax-ename->vla-object cEnt)
           i    (vlax-curve-getStartParam cObj) j 1)
     (while (<= i (- (vlax-curve-getEndParam cObj)
                     (if (vlax-curve-isClosed cObj) 1 0)))
       (Make_Text (vlax-curve-getPointatParam cObj i) (itoa j) 0.0)
       (setq i (1+ i) j (1+ j))))
   (princ "\n<!> Incompatible Curve Selected <!>"))
 (princ))
(defun Make_Text  (pt val rot)
 (entmake (list '(0 . "TEXT")
                '(8 . "0")
                (cons 10 pt)
                (cons 40 (getvar "TEXTSIZE"))
                (cons 1 val)
                (cons 50 rot)
                (cons 7 (getvar "TEXTSTYLE"))
                '(71 . 0)
                '(72 . 1)
                '(73 . 2)
                (cons 11 pt))))