在这里,添加了突出显示的行
- (defun c:test (/ set->list plset blk sel i pl o)
- (defun set->list (a / l)
- (if a
- (repeat (setq i (sslength a))
- (setq l (cons (ssname a (setq i (1- i))) l))
- )
- )
- l
- )
- (if (setq plset (ssget '((0 . "*polyline"))))
- (progn
- (setq blk (set->list (ssget "_X" '((0 . "insert"))))
- sel (ssadd)
- )
- (repeat (setq i (sslength plset))
- (setq
- pl (vlax-ename->vla-object (ssname plset (setq i (1- i))))
- )
- (setq o (vl-remove-if-not
- '(lambda (x / a b)
- (setq a (cdr (assoc 10 (entget x)))
- b (vlax-curve-getclosestpointto pl a)
- )
- (< (distance a b) 1e-1)
- )
- blk
- )
- )
- (foreach x o (ssadd x sel))
- )
- (sssetfirst nil sel)
- )
- )
- (princ)
- )
|