Dynamische Blöcke和布局
请帮忙我想一次更改所有布局上的动态块。
对于普通块,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 谢谢你的提示,可惜不是那么同义!
也许一张样图会有帮助?如果我正确理解了您的代码/语言,您想更新某些块的某些属性吗?
gr.Rlx 无法上载图形限制为500 kb
现在它改变了文本样式。
测试块-标准。拉链 很遗憾,无法在此处打开绘图!#$%^&我是支持在这里得到一个'新'的电脑在工作中,但取而代之的是二手电脑和残废的电脑,所以现在不能超过acad 2012。。。 Hier die dwg auf 2010年
测试块-2010年。拉链 快速书写:
(progn
(repeat (setq i (sslength ss))
(setq e (vlax-ename->vla-object (setq o (ssname ss (setq i (1- i))))))
(if (vlax-property-available-p e 'effectivename)
(setq n (vla-get-effectivename e))
(setq n (vla-get-name e))
)
(if (wcmatch (strcase n) bnames)
(ssadd o ss1)
)
gr.Rlx 完美1000次谢谢
:)
Sie sind willkommen先生
gr.Rlx
页:
[1]
2