chrisdarmanin 发表于 2022-7-5 15:35:26

快速将块更改为annot

我需要将100个块更改为注释性块。有没有一种方法可以快速或通过lisp例程完成,而不是编辑每个块并从“特性”选项板将设置更改为注释性?

rkmcswain 发表于 2022-7-5 15:43:49

这应该能帮到你。
 
Lee Mac的代码

chrisdarmanin 发表于 2022-7-5 15:50:40

谢谢,这不是最快的,但可以管理,因为我有很多块,我使用数据提取获得所有块的名称,导出到CSV,然后导入到Word,用查找和替换进一步清理格式(去掉额外的制表符和逗号)。我注意到word将笔直的倒逗号改为卷曲的倒逗号,所以我在记事本++中再次执行了相同的过程。然后我添加了(foreach blk’(“myblock1”“myblock2”“myblock3”)(annotativeblock blk))并粘贴到AutoCAD中,瞧!!再次感谢有没有更快的方法??:D

chrisdarmanin 发表于 2022-7-5 16:04:58

当然比手动一个接一个地做要快

chrisdarmanin 发表于 2022-7-5 16:09:11

显然,在公司里,这将是一件常见的事。有没有更快的办法?

ronjonp 发表于 2022-7-5 16:17:35

试试这个。。它将使图形中的所有块都具有注释性。
;; Lee's code
;; https://goo.gl/KT3Ja1
(defun annotativeblock (blk)
(and (setq blk (tblobjname "block" blk))
      (progn (regapp "AcadAnnotative")
      (entmod (append (entget (cdr (assoc 330 (entget blk))))
                      '((-3
                       ("AcadAnnotative"
                          (1000 . "AnnotativeData")
                          (1002 . "{")
                          (1070 . 1)
                          (1070 . 1)
                          (1002 . "}")
                       )
                        )
                     )
              )
      )
      )
)
)
(defun _allannotative (/ d)
(while (setq d (tblnext "block" (null d)))
   (and (not (assoc 1 d)) (annotativeblock (cdr (assoc 2 d))))
)
)
(_allannotative)

chrisdarmanin 发表于 2022-7-5 16:23:30

哇,太棒了!!!!!!
 

mstg007 发表于 2022-7-5 16:28:24

不错,罗恩!

ronjonp 发表于 2022-7-5 16:37:14

很乐意帮忙
页: [1]
查看完整版本: 快速将块更改为annot