Good you're tried find solution on your own.
Here is what I found HERE - see spoiler
Spoiler (Highlight to read)
(defun C:test(/ ang cumm_dist dis dist_list leng obj pt)
(vl-load-com)
;; build master list of the distances, starting from 0.0 - important!
(setq dist_list '(0.0 1000.0 2000.0 3000.0 4000.0 5000.0 ))
(setq cumm_dist (apply '+ dist_list))
(setq dis 0.0)
(setq obj (vlax-ename->vla-object (car (entsel "\n >> Select profile >>"))))
(setq leng (vlax-curve-getdistatpoint obj (vlax-curve-getendpoint obj)))
;; check if pline length is not less than the cumulative distance
(if (< leng cumm_dist)
(progn
(alert "Pline length is less then summary distance")
(princ)
)
(while (< dis cumm_dist)
(setq dis (+ dis (car dist_list)))
(setq pt (vlax-curve-getpointatdist obj dis))
;;;***
;;to insert block named "tick":
;; get angle:
(setq ang (angle '(0 0 0)
(vlax-curve-getfirstderiv obj
(vlax-curve-getparamatpoint obj pt))))
;;insert block:
(vlax-invoke (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object)))
'InsertBlock pt "tick " 1 1 1 ang);***
;;or draw point:
;;; (vlax-invoke (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object)))
;;; 'AddPoint pt)
(setq dist_list (cdr dist_list))
)
)
(princ)
)
(defun C:test(/ ang cumm_dist dis dist_list leng obj pt)
(vl-load-com)
;; build master list of the distances, starting from 0.0 - important!
(setq dist_list '(0.0 1000.0 2000.0 3000.0 4000.0 5000.0))
(setq cumm_dist (apply '+ dist_list))
(setq dis 0.0)
(setq obj (vlax-ename->vla-object (car (entsel "\n >> Select profile >>"))))
(setq leng (vlax-curve-getdistatpoint obj (vlax-curve-getendpoint obj)))
;; check if pline length is not less than the cumulative distance
(if (< leng cumm_dist)
(progn
(alert "Pline length is less then summary distance")
(princ)
)
(while (< dis cumm_dist)
(setq dis (+ dis (car dist_list)))
(setq pt (vlax-curve-getpointatdist obj dis))
;;;***
;;to insert block named "tick":
;; get angle:
(setq ang (angle '(0 0 0)
(vlax-curve-getfirstderiv obj
(vlax-curve-getparamatpoint obj pt))))
;;insert block:
(vlax-invoke (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object)))
'InsertBlock pt "tick" 1 1 1 ang);***
;;or draw point:
;;; (vlax-invoke (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object)))
;;; 'AddPoint pt)
(setq dist_list (cdr dist_list))
)
)
(princ)
)
Only think you need to do is adjust distance in EXCEL to given format - as distances between items, space delimited.
Then find and replace these test numbers. Keep parenthesis around. And adjust block name!
0.0 1000.0 2000.0 3000.0 4000.0 5000.0
Thanks to @Hallex , the author.