是的,这是可能的,但我不知道它如何适合塔尔瓦的代码,
因为他的代码搜索满足特定需求的圆。并没有将所有圆都设置为一个变量。。
如果我回到我的代码,它可能看起来像这样:
- (defun C:CadTutor ( / polyline polylinex polyliney allcircles n ensel enlist circlex circley)
- (setq polyline (entget (car (entsel))))
- (setq polylinex (car (cdr (assoc 10 (reverse polyline)))))
- (setq polyliney (car (cddr (assoc 10 (reverse polyline)))))
- (setq allcircles (ssget "_X" (list (cons 0 "CIRCLE"))))
- (setq n (sslength allcircles))
- (repeat n
- (setq ensel (ssname allcircles (setq n (1- n))))
- (setq enlist (entget ensel))
- (setq circlex (car (cdr (assoc 10 enlist))))
- (setq circley (car (cdr (cdr (assoc 10 enlist)))))
- (if (and (= polylinex circlex)(= polyliney circley))
- (progn
- (princ "\nMatch found!")
- (setq enlist (subst (cons 8 "MATCHLAYER") (assoc 8 enlist) enlist))
- (entmod enlist)
- (ssdel enlist allcircles)
- )
- (progn
- (princ "\nNo match...")
- )
- )
- )
- (princ)
运行代码后,变量!allcircles将只包含所有“不匹配”的圆,您可以在代码的最后一部分使用它们。 |