This is something I just did similar
Code:
(defun c:pegsh ( / obj obj2 inc olen num lstch newpt pt len len2)
(setq obj (vlax-ename->vla-object (car (entsel "Pick peg line"))))
(setq obj2 (vlax-ename->vla-object (car (entsel "pick offset line"))))
(setq olen (vla-get-length obj2))
(setq inc (getreal "Enter your increment"))
(setq num (fix (/ olen inc)))
(setq lstch (list 0.0)) ; accept 1st pointc
(setq ch 0.0)
(repeat num
(setq lstch (cons (setq ch (+ ch inc)) lstch))
)
(setq lstch (cons olen lstch))
; add later vertice points to lstch then sort ch's
(repeat (setq x (length lstch))
(setq pt (vlax-curve-getpointatdist obj2 (nth (setq x (- x 1)) lstch)))
(setq newPt (vlax-curve-getClosestPointTo Obj Pt))
(setq len (vlax-curve-getdistatpoint obj newpt))
(setq len2 (distance newpt pt))
(command "line" newpt pt "") ; dummy to see something
(alert (strcat "The ch is " (rtos len 2 2) "\n\nOffset is " (rtos len2 2 2))) ; dummy to see something
)
)