请帮忙
我想一次更改所有布局上的动态块。
对于普通块,Lisp运行良好。
我不知道我必须如何适应动态Bklöcke,因为动态块的同义词可以工作。
非常感谢。
- (defun c:Test (/ taglist ss ent att tnme)
-
- (setq taglist
- '(("EBENE" . "TEST1")
- ("BAUTEIL" . "TEST2")) ; <--- List Tags and Values here.
- )
- (if (setq ss (ssget "_X" '((0 . "INSERT") (2 . "Test-Block") (66 . 1) (410 . "~Model")
- )))
-
- (foreach ent (mapcar 'cadr (ssnamex ss))
- (setq att (entnext ent))
- (while (not (eq "SEQEND" (cdadr (entget att))))
- (setq tnme (cdr (assoc 2 (entget att))))
- (if (assoc tnme taglist)
- (entmod (subst (cons 1 (cdr (assoc tnme taglist)))
- (assoc 1 (entget att)) (entget att))))
- (setq att (entnext att))))
- (command "_regenall"))
- (princ "\n<!> No Blocks Found <!>"))
- (princ))
这将选择所有具有bname(您的块名)的块,以及名称以*u开头的所有块
接下来,你必须遍历所有这些块并获得有效名称,如果这个名称与你自己的块名匹配,你就知道你得到了正确的名称。
- (cons 2 (strcat "`*U*," bname))
Gr.Rlx |