本帖最后由 Sylvanas 于 2016-9-29 15:04 编辑
 - (defun c:tt ()
- (setq ptlst nil)
- (setq ent (car (entsel "\n选择要定距等分的对象:")))
- (if (= (cdr (assoc 0 (setq data (entget ent)))) "LWPOLYLINE")
- (progn (setq obj (vlax-ename->vla-object ent)
- ;totallen (vla-get-length obj)
- dis (getdist "\n指定线段长度:")
- pts (vlax-curve-getStartPoint obj)
- pte (vlax-curve-getEndPoint obj)
- totallen (abs (- (car pts) (car pte)))
- k 1
- )
- (while (<= (* k dis) totallen)
- (setq dislast (* k dis))
- (setq pt (list (+ (car pts) dislast) (cadr pts)))
- (setq
- ptlst (cons (vlax-curve-getClosestPointToProjection obj pt '(0 1 0))
- ;(vlax-curve-getPointAtDist obj dislast)
- ptlst)
- )
- (setq k (1+ k))
- )
- )
- )
- (reverse ptlst)
- )
用你给的代码改的,试一下 |