将所有字段转换为文本
(defun C:R-FIELDS ( / del-field ss1 index item)
(defun del-field (ent / edic)
(if (setq edic (cdr (assoc 360 (entget ent))))
(dictremove edic "ACAD_FIELD")
)
)
(if (= (getvar "TILEMODE") 0)
(progn
(setvar "TILEMODE" 1)
(command "REGEN")
)
)
(if
(setq ss1
(ssget "X"
(list (cons 0 "TEXT,MTEXT,MULTILEADER")
(cons 67 0)
)
)
)
(progn
(setq index 0)
(repeat (sslength ss1)
(setq item (ssname ss1 index))
(if (del-field item) (entupd item))
(setq index (+ 1 index))
)
)
)
(if
(setq ss1
(ssget "X"
(list (cons 0 "INSERT")
(cons 67 0)
(cons 66 1)
)
)
)
(progn
(setq index 0)
(repeat (sslength ss1)
(setq item (ssname ss1 index))
(while (= (cdr (assoc 0 (entget (setq item (entnext item))))) "ATTRIB")
(if (del-field item) (entupd item))
)
(setq index (+ 1 index))
)
)
)
(princ)
)
此代码将替换所有文字、多行文字和标注中的所有字段
出于某种原因,突发动态块的文本/(旧属性)内的字段不会因某种原因而更改?
有人知道为什么吗? 任何想法。。。 试试R字段。lsp发件人:http://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/convert-field-to-text/m-p/1722025#M217920 这实际上是相同的代码。。。虽然我注意到有一个更新。。。
但仍然不起作用。。。
任何有兴趣帮忙的人都将不胜感激 我已经了解了发生这种情况的原因,因为多行文字在爆炸后在列属性中是动态的。。。
因此,如果可以用代码更改,我相信这会解决问题 没有主意?? 你可以附上一个包含问题多行文字示例的示例图吗?
您是否尝试过使用我的升级突发程序或嵌套突发程序,而不是使用标准突发命令?(它们使用与标准突发命令非常不同的方法)。
李 我尝试了Iburst,以及NBurst,不幸的是没有运气。。。附加的是R字段Lsp/有问题的块,其属性可转换,但不会保留在R字段执行时最后给定的字段值。
很抱歉这么晚才回复我有很多事情要做
R字段。lsp
BurstRFieldError。图纸
页:
[1]