自AutoCAD2004之后的版本,增加了一个字段命令,字段是包含说明的文字,这些说明用于显示可能会在图形生命周期中修改的数据,后续版本的图纸集也使用了字段功能来排序等等。
没有值的字段将显示连字符 (----)。 例如,在“图形特性”对话框中设置的“作者”字段可能为空。 无效字段将显示井号 (####)。 例如,“当前图纸名”字段仅在图纸空间中有效,将它放置到模型空间中则显示井号。
我们通常在编辑或分开某些含有字段的图形的时候,就会丢失字段链接对象,造成无效字段。
为了避免出现此类问题,可以通过转换为文字来解决,因此有了下面的lisp。
网友答:
有一点小错误,我修正了一下

网友答: 在edata、yjtdkj和两位大神的代码的基础上让元宝AI做出修改,FLD2TXT_2命令后,直接将布局和模型内全部字段转换为普通文字,无需选择,一次命令全局处理完。感谢两位大佬的代码,这是非常实用的批量处理功能网友答: 帮大忙了啊,500多张图打算复制黏贴来着,抱着试试的心态来找找居然找到了网友答: 没看懂什么意思网友答: 好东西,我配铝模板正好用上了。哈哈网友答: 令: FLD2TXT 请选择需要转换的对象(块,单行/多行文字,标注):
选择对象: 指定对角点: 找到 6 个
选择对象: ; 错误: 参数类型错误: lentityp nil
多选的时候出错了网友答: 帮大忙了啊,500多张图打算复制黏贴来着,抱着试试的心态来找找居然找到了





网友答:
好像高版本 直接 X 炸开也可以网友答:
常用字段功能才会碰到的困扰,顶一个!网友答:
用了字段,分图会很困扰
没有值的字段将显示连字符 (----)。 例如,在“图形特性”对话框中设置的“作者”字段可能为空。 无效字段将显示井号 (####)。 例如,“当前图纸名”字段仅在图纸空间中有效,将它放置到模型空间中则显示井号。
我们通常在编辑或分开某些含有字段的图形的时候,就会丢失字段链接对象,造成无效字段。
为了避免出现此类问题,可以通过转换为文字来解决,因此有了下面的lisp。

- ;将字段转换为文字.lsp
- ;modified by edata
- ;setupdata@qq.com
- ;2010年9月13日17:07:08
- (vl-load-com)
- (defun c:FLD2TXT (/ ss n bn an ad s)
- (prompt
- "请选择需要转换的对象(块,单行/多行文字,标注): "
- )
- (setq ss (ssget '((0 . "INSERT,MTEXT,DIMENSION,TEXT,MULTILEADER"))))
- (setq n 0)
- (while (< n (sslength ss))
- (setq bn (ssname ss n))
- (setq ad (entget bn))
- (cond
- ((= "INSERT" (cdr (assoc 0 ad)))
- (setq an (entnext bn))
- (while (and an
- (setq ad (entget an))
- (= "ATTRIB" (cdr (assoc 0 ad)))
- )
- (setq s (cdr (assoc 1 ad)))
- (entmod (list (assoc -1 ad) (cons 1 "")))
- (entmod (list (assoc -1 ad) (cons 1 s)))
- (entupd an)
- (setq an (entnext an))
- )
- )
- ((= "MULTILEADER" (cdr (assoc 0 ad)))
- (setq ad (vlax-ename->vla-object bn)
- s (vla-get-TextString ad)
- )
- (vla-put-TextString ad "")
- (vla-put-TextString ad s)
- )
- ((= "MTEXT" (cdr (assoc 0 ad)))
- (setq ad (vlax-ename->vla-object bn)
- s (vla-get-TextString ad)
- )
- (vla-put-TextString ad "")
- (vla-put-TextString ad s)
- )
- (t
- (setq s (cdr (assoc 1 ad)))
- (entmod (list (assoc -1 ad) (cons 1 "")))
- (entmod (list (assoc -1 ad) (cons 1 s)))
- (entupd an)
- )
- )
- (setq n (1+ n))
- )
- (setq ss nil)
- (gc)
- (princ)
- )

- ;;;将字段转换为文字.lsp;modified by edata;setupdata@qq.com;2010年9月13日17:07:08
- ;;;modified by yjtdkj---------------yjtdkj8156262@163.com-------------2022.07.01
- (vl-load-com)
- (defun c:FLD2TXT (/ ss n bn an ad s)
- ;;;========更新图元组码===========================yjtdkj.2021.07======
- ;;;参数
- ;;;en 图元名
- ;;;number 群码代号(整数)
- ;;;content 更新后的新内容
- ;;;返回:无
- (defun put-dxf (en number content / en_data new-list old-list)
- (setq en_data (entget en))
- (setq old-list (assoc number en_data))
- (setq new-list (cons number content))
- (setq en_data (subst new-list old-list en_data))
- (entmod en_data)
- (entupd en)
- ) ;_ 结束defun
- (prompt "请选择需要转换的对象(块,单行/多行文字,标注): ")
- (setq ss (ssget '((0 . "INSERT,MTEXT,DIMENSION,TEXT,MULTILEADER"))))
- (setq n 0)
- (while (< n (sslength ss))
- (setq bn (ssname ss n))
- (setq ad (entget bn))
- (cond ((= "INSERT" (cdr (assoc 0 ad)))
- (setq an (entnext bn))
- (while (and an
- (setq ad (entget an))
- (= "ATTRIB" (cdr (assoc 0 ad)))
- )
- (setq s (cdr (assoc 1 ad)))
- (put-dxf an 1 "")
- (put-dxf an 1 s)
- ;(entmod (list (assoc -1 ad) (cons 1 "")))
- ;(entmod (list (assoc -1 ad) (cons 1 s)))
- ;(entupd an)
- (setq an (entnext an))
- )
- )
- ((= "MULTILEADER" (cdr (assoc 0 ad)))
- (setq ad (vlax-ename->vla-object bn)
- s (vla-get-TextString ad)
- )
- (vla-put-TextString ad "")
- (vla-put-TextString ad s)
- )
- ((= "MTEXT" (cdr (assoc 0 ad)))
- (setq ad (vlax-ename->vla-object bn)
- s (vla-get-TextString ad)
- )
- (vla-put-TextString ad "")
- (vla-put-TextString ad s)
- )
- ((= "DIMENSION" (cdr (assoc 0 ad)))
- (setq ad (vlax-ename->vla-object bn)
- s (vla-get-TextOverride ad)
- )
- (vla-put-TextOverride ad "")
- (vla-put-TextOverride ad s)
- )
- (t
- (setq s (cdr (assoc 1 ad)))
- (put-dxf bn 1 "")
- (put-dxf bn 1 s)
- ;(entmod (list (assoc -1 ad) (cons 1 "")))
- ;(entmod (list (assoc -1 ad) (cons 1 s)))
- ;(entupd ad)
- )
- )
- (setq n (1+ n))
- )
- (setq ss nil)
- (gc)
- (princ)
- )
网友答: 在edata、yjtdkj和两位大神的代码的基础上让元宝AI做出修改,FLD2TXT_2命令后,直接将布局和模型内全部字段转换为普通文字,无需选择,一次命令全局处理完。感谢两位大佬的代码,这是非常实用的批量处理功能网友答: 帮大忙了啊,500多张图打算复制黏贴来着,抱着试试的心态来找找居然找到了网友答: 没看懂什么意思网友答: 好东西,我配铝模板正好用上了。哈哈网友答: 令: FLD2TXT 请选择需要转换的对象(块,单行/多行文字,标注):
选择对象: 指定对角点: 找到 6 个
选择对象: ; 错误: 参数类型错误: lentityp nil
多选的时候出错了网友答: 帮大忙了啊,500多张图打算复制黏贴来着,抱着试试的心态来找找居然找到了






网友答:
好像高版本 直接 X 炸开也可以网友答:
常用字段功能才会碰到的困扰,顶一个!网友答:
用了字段,分图会很困扰