如果我理解正确,请尝试一下:
- (defun c:addz ( / en in pt s1 s2 ) (vl-load-com)
- (if
- (and
- (princ "\nSelect Points: ")
- (setq s1 (ssget "_:L" '((0 . "POINT"))))
- (princ "\nSelect Polyline: ")
- (setq s2 (ssget "_+.:E:S" '((0 . "*POLYLINE"))))
- (setq s2 (ssname s2 0))
- )
- (repeat (setq in (sslength s1))
- (setq en (entget (ssname s1 (setq in (1- in))))
- pt (cdr (assoc 10 en))
- )
- (entmod
- (subst
- (list 10 (car pt) (cadr pt) (distance pt (vlax-curve-getclosestpointto s2 pt)))
- (cons 10 pt) en
- )
- )
- )
- )
- (princ)
- )
|