Полный текст.
какая версия Автокада?
(vl-load-com)
(defun dxf (code elist / ret)
(cond
( (= (type elist) 'LIST) (setq ret (cdr (assoc code elist))) )
( (= (type elist) 'ENAME) (setq ret (cdr (assoc code (entget elist)))) )
(T (setq ret nil))
)
ret
)
(defun c:test1()
(if (setq pl (entsel "\nPick Polyline:"))
(if (or (= (dxf 0 (car pl)) "POLYLINE") (= (dxf 0 (car pl)) "LWPOLYLINE"))(progn
(redraw (car pl) 3)
(setq ent (vlax-ename->vla-object (car pl)))
(if (setq po (getpoint "\nPick point :"))(progn
(if (setq pol (vlax-curve-getClosestPointTo ent (trans po 1 0) T))(progn
(if (vlax-curve-getParamAtPoint ent pol)(progn ;;Check if point is not over the curve
(setq dStation (vlax-curve-getDistAtPoint ent pol))
(grdraw (trans po 0 1) pol 2 0)
(setq dOffset (distance po pol))
(princ (strcat "\nStation :" (rtos dStation 2 2) ", Offset:" (rtos dOffset 2 2)))
(redraw (car pl) 4)
))
))
))
` ))
)
(princ)
)
(princ)