Hi,
Perhaps this?
Code:
(vl-load-com)
(defun c:test ( / sel obj_vlax pt ori_dist p_fix mantiss)
(setq
sel (entsel)
obj_vlax (vlax-ename->vla-object (car sel))
pt (vlax-curve-getClosestPointTo obj_vlax (cadr sel))
ori_dist (getreal "\nStart at 0+000 <0.0>: ")
)
(if (not ori_dist) (setq ori_dist 0.0))
(setq
p_fix (atoi (rtos (/ (vlax-curve-getDistAtPoint obj_vlax pt) 1000.0) 2 3))
mantiss
(+
(-
(vlax-curve-getDistAtPoint obj_vlax pt)
(* p_fix 1000.0)
)
(atoi (substr (rtos ori_dist 2 3) (+ 2 (vl-string-search "." (rtos ori_dist 2 3)))))
)
)
(if (or (equal mantiss 1000.0 1E-3) (> mantiss 1000.0)) (setq p_fix (1+ p_fix) mantiss (- mantiss 1000)))
(if (zerop (fix mantiss)) (setq mantiss "000") (setq mantiss (rtos mantiss 2 0)))
(print
(strcat
(itoa (+ p_fix (fix ori_dist)))
"+"
mantiss
)
)
(prin1)
)