dober 发表于 2022-7-5 16:15:05

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

rlx 发表于 2022-7-5 16:22:37

谢谢你的提示,可惜不是那么同义!

dober 发表于 2022-7-5 16:26:39

 
 
也许一张样图会有帮助?如果我正确理解了您的代码/语言,您想更新某些块的某些属性吗?
 
 
gr.Rlx

rlx 发表于 2022-7-5 16:29:04

无法上载图形限制为500 kb

dober 发表于 2022-7-5 16:35:37

 
现在它改变了文本样式。
测试块-标准。拉链

rlx 发表于 2022-7-5 16:39:17

很遗憾,无法在此处打开绘图!#$%^&我是支持在这里得到一个'新'的电脑在工作中,但取而代之的是二手电脑和残废的电脑,所以现在不能超过acad 2012。。。

dober 发表于 2022-7-5 16:43:17

Hier die dwg auf 2010年
测试块-2010年。拉链

rlx 发表于 2022-7-5 16:47:56

快速书写:
 
 

(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

dober 发表于 2022-7-5 16:51:35

完美1000次谢谢
:)

dober 发表于 2022-7-5 16:54:25

 
 
Sie sind willkommen先生
 
 
gr.Rlx
页: [1] 2
查看完整版本: Dynamische Blöcke和布局