 - (defun c:tt (/ EN D PT L1 L FN F D0 I)
- (if (and
- (setq en (entsel "\n选择曲线:"))
- (setq d (getdist "\n输入间距:"))
- )
- (progn
- (setq pt (cadr en)
- en (car en)
- pt (vlax-curve-getclosestpointto en pt)
- l1 (vlax-curve-getDistAtPoint en pt)
- l (vlax-curve-getDistAtParam en (vlax-curve-getEndParam en))
- )
- (setq fn (VL-FILENAME-MKTEMP "" "" ".txt"))
- (setq f (open fn "w"))
- (if (< l1 (* 0.5 l))
- (progn
- (setq d0 0 i 1)
- (while (< d0 l)
- (setq pt (vlax-curve-getPointAtDist en d0))
- (write-line (strcat (itoa i) " " (rtos (car pt) 2 3) " " (rtos (cadr pt) 2 3)) f)
- (setq i (1+ i)
- d0 (+ d0 d)
- )
- )
- (setq pt (vlax-curve-getEndPoint en))
- (write-line (strcat (itoa i) " " (rtos (car pt) 2 3) " " (rtos (cadr pt) 2 3)) f)
- (close f)
- )
- (progn
- (setq d0 l i 1)
- (while (> d0 0)
- (setq pt (vlax-curve-getPointAtDist en d0))
- (write-line (strcat (itoa i) " " (rtos (car pt) 2 3) " " (rtos (cadr pt) 2 3)) f)
- (setq i (1+ i)
- d0 (- d0 d)
- )
- )
- (setq pt (vlax-curve-getStartPoint en))
- (write-line (strcat (itoa i) " " (rtos (car pt) 2 3) " " (rtos (cadr pt) 2 3)) f)
- (close f)
- )
- )
- (startapp "notepad.exe" fn)
- )
- )
- (princ)
- )
|