这个条件图也太让人看不懂了,以自己的理解写了一个
圆内圆的时候可能会将内圆变红 - (defun x_ssn (ss / n lst)
- (repeat (setq N (sslength ss))
- (setq LST (cons (ssname SS (setq N (1- N))) LST))
- )
- )
- (defun circle_lst (en n / ent pt ptc dist ang lst tmp)
- (setq ent (entget en)
- pt (cdr (assoc 10 ent))
- dist (cdr (assoc 40 ent))
- tmp 0
- ang (/ pi n 0.5)
- lst nil
- )
- (repeat n
- (setq ptc (polar pt tmp dist)
- tmp (+ tmp ang)
- lst (cons ptc lst)
- )
- )
- lst
- )
- (defun c:test1 (/ ss lst en)
- (setq ss (ssget '((0 . "circle"))))
- (setq lst (x_ssn ss))
- (while lst
- (setq en (car lst))
- (setq
- ss (ssdel en (ssget "cp" (circle_lst en 64) '((0 . "circle"))))
- )
- (if (> (sslength ss) 0)
- (progn
- (mapcar '(lambda (cir)
- (vla-put-Diameter
- (vlax-ename->vla-object cir)
- (cdr (assoc 40 (entget cir)))
- )
- )
- (x_ssn ss)
- )
- (vla-put-Diameter
- (vlax-ename->vla-object en)
- (cdr (assoc 40 (entget en)))
- )
- (setq
- lst (foreach n (x_ssn ss) (vl-remove n (vl-remove en lst)))
- )
- )
- (progn
- (vla-put-color (vlax-ename->vla-object en) 1)
- (setq lst (cdr lst))
- )
- )
- )
- (princ)
- )
|