查找并选择需要的块
大家好。我正在努力实现以下目标:
例如在100个楼层平面中,有一些块具有某些属性值。我希望能够创建一个脚本/lisp,找到所有包含属性值中特定文本段(即“窗口”)的块,并将块更改为特定颜色。
本质上,“FIND”命令的工作方式是相同的,但通过命令行/lisp/script等。这样我就可以在没有用户输入的情况下在100个楼层平面上应用这个特定任务。
有没有办法做到这一点,因为我搜索了数百个术语/论坛/想法等,只找到并替换工具,或者将图形中的所有文本更改为特定颜色。
非常感谢您的帮助=] 完全未经测试:
(defun c:chbyav (/ bn nc ss i en ed an ad ch)
(setq bn "*" ;BLOCK Name search
av "window" ;ATTRIBute Value search
nc 5) ;New Color
(and (setq ss (ssget "X" (list (cons 0 "INSERT")
(cons 2 bn)
(cons 66 1))))
(setq i 0)
(while (setq en (ssname ss i))
(setq ed (entget en)
an (entnext en)
ad (entget an)
ch nil)
(while (= "ATTRIB" (cdr (assoc 0 ad)))
(and (wcmatch (strcase (cdr (assoc 1 ad)))
(strcase (strcat "*" av "*")))
(setq ch T))
(setq an (entnext an)
ad (entget an)))
(and ch
(entmod
(if (assoc 62 ed)
(subst (cons 62 nc) (assoc 62 ed) ed)
(append ed (list (cons 62 nc))))))
(setq i (1+ i))))
(prin1))
-大卫 此处重复线程 是的,我为此道歉。我想重新命名这个标题,因为我觉得这个不太好,然后又不知道如何删除,于是allready创建了另一个。
吸取的教训。=]
页:
[1]