是0.5还是0.05?
这是一个适用于任何距离的版本。
- (defun c:delvert ( / *error* msg ss d i e q a b l p)
- (vl-load-com)
- ;;; (setq *error* (err))
- (if
- (and
- (setq msg "\nNothing selected.")
- (setq ss (ssget "_:L" '((0 . "POLYLINE") (-4 . "&=") (70 . (-4 . "<NOT") (-4 . "&=") (70 . 4) (-4 . "NOT>"))))
- (setq msg "\nDistance required.")
- (progn
- (initget 6)
- (setq d (getdist "\nSpecify distance: "))
- )
- )
- (repeat (setq i (sslength ss))
- (setq e (vlax-ename->vla-object (ssname ss (setq i (1- i))))
- q (vlax-curve-isclosed e)
- a (vlax-curve-getstartparam e)
- b (vlax-curve-getendparam e)
- l (list (vlax-curve-getstartpoint e))
- )
- (while (<= (setq a (1+ a)) b)
- (setq p (vlax-curve-getpointatparam e a))
- (if
- (> (distance p (car l)) d)
- (setq l (cons p l))
- )
- )
- (vlax-put e 'coordinates (apply 'append (reverse (if q (cdr l) l))))
- )
- (princ msg)
- )
- ;;; (*error* nil)
- (princ)
- )
|