明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 481|回复: 8

导入文本,很有用的插件

[复制链接]
发表于 3 天前 | 显示全部楼层 |阅读模式
导入文本,很有用的插件

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复

使用道具 举报

发表于 3 天前 | 显示全部楼层
我把文件内容贴出来:

  1. CAD中如何导入导出文本?(2012-10-10 17:02:30)转载▼标签: cadcad教程cad使用技巧文字导出文字 分类: CAD使用技巧  
  2. 在使用CAD绘图软件进行工作时,有时需要把用文字编辑器写好的段落文字插入到图形中,并用CAD的文字编辑命令进行修改;有时也需要把图形中已有的文字输出到文件中,以便用文字编辑器进行处理。CAD中并没有直接提供关于文本插入和文本输出的命令,遇到这样的问题该怎么办?通过剪贴板进行OLE方式的复制与粘贴是无法实现上述要求的。下面介绍的方法能够解决在CAD与文字编辑器之间进行纯文本的导入和导出的问题。


  3.   1. 导入文本


  4.   虽然CAD中没有提供插入文本的命令,但是利用多行文字编辑Mtext可以实现文本插入。在Mtext的对话框中右键菜单中有“输入文字”的功能,可以选择磁盘上的“.txt”、“.rtf”格式的文件进行插入,注意插入文件大小不得超过16KB,这显得美中不足。还有一种比较麻烦的方法就是利用文字编辑软件先打开文本,然后在输入单行文字或多行文字的时候将文字内容复制粘贴到CAD中。CAD还可以将默认的文字编辑器设置为记事本或WORD,设置方法如下:

  5. 1、  在选项对话框中设置。输入OP命令,打开选项对话框,在“文件”选项卡中找到文本编辑器应用程序,可以浏览设置成记事本、WORD的执行文件。

  6. 2、  直接输入mtexted命令,回车,输入notepad,可以将编辑器设置成记事本,如果想设置回来,输入mtexted,回车,输入“.”,回车,就可以回复为CAD默认的编辑器。

  7. 如果要导入文本,无论是粘贴、插入,实际上都不太复杂,改变编辑器一般人很少用。



  8.   2. 导出文本

  9. 如果仅有少量文字需要导出,那么在单行和多行文字的编辑框中,选择文字进行复制,然后粘贴到文字编辑器中即可。但是如果图纸中有大量散落的文字需要导出,上述方法就不太适用了。下面给大家介绍两个在网上看到的小程序,可以快速将CAD中的单行文字输出为文本文件(*.csv),这个文件用记事本或EXCEL都可以打开。

  10. A、选择文字输出

  11. 可以框选文字进行输出,自动将文字保存为*.csv。
  12. (defun c:exx ( / &ss %fir ~fir @tex #si #sn &tex %lay %tex @cl %ctx )

  13.   (vl-load-com) (princ "\n请选择要输出的文字对象")

  14.   (if (setq &ss (ssget (list (cons 0 "TEXT"))))

  15.    (progn

  16.     (setq %fir (strcat "C:\" (vl-filename-base (getvar "dwgname")) ".csv") ~fir (open %fir "w"))

  17.     (repeat (setq @tex '() #si 0 #sn (sslength &ss))

  18.      (setq &tex (vlax-ename->vla-object (ssname &ss #si)) #si (1+ #si))

  19.      (setq %lay (vla-get-layer &tex) %tex (vla-get-textstring &tex))

  20.      (if (setq @cl (assoc %lay @tex))

  21.       (setq @tex (subst (append @cl (list %tex)) @cl @tex))

  22.       (setq @tex (cons (list %lay %tex) @tex))

  23.      )

  24.     )

  25.     (setq @tex (vl-sort @tex (function (lambda (a b) (> (length a) (length b))))))

  26.     (setq #si 0 #sn (length (car @tex)))

  27.     (setq @tex (vl-sort @tex (function (lambda (a b) (< (car a) (car b))))))

  28.     (repeat #sn

  29.      (setq %tex "")

  30.      (foreach @tx @tex

  31.       (if (null (setq %ctx (nth #si @tx))) (setq %ctx "") )

  32.       (if (/= %tex "")

  33.        (setq %tex (strcat %tex "," %ctx))

  34.        (setq %tex %ctx)

  35.       )

  36.      )

  37.      (write-line %tex ~fir) (setq #si (1+ #si))

  38.     )

  39.     (close ~fir) (vlax-release-object &tex)

  40.     (princ (strcat "\n成功输出 " (itoa (sslength &ss)) "个文字输出到 " %fir " 中."))

  41.    )

  42.    (princ "\n未选择文字对象,退出.")

  43.   )

  44.   (princ)

  45. )

  46. 将上面代码复制到记事本中,另存为exx.lsp,在CAD中输入AP命令,加载exx.lsp,加载成功后,在命令行输入EXX,回车,在图中框选要输出的单行文字即可。

  47. B、输出同图层文字

  48. 可以选择图层上的一个单行文字,就可以将此图层上所有单行文字都输出为一个*.csv文件。
  49. (defun c:ecx ( / &tex &ss %fir ~fir %lay #si #sn )

  50.   (if (null vlax-dump-object) (vl-load-com) )

  51.   (if (setq &tex (entsel "\n请选择要输出图层的文字对象: "))

  52.    (if (= (vla-get-objectname (setq &tex (vlax-ename->vla-object (car &tex)))) "AcDbText")

  53.     (progn

  54.      (setq %fir (strcat "C:\" (vl-filename-base (getvar "dwgname")) ".csv") ~fir (open %fir "w"))

  55.      (setq %lay (vla-get-layer &tex) &ss (ssget "X" (list (cons 0 "TEXT") (cons 8 %lay))))

  56.      (repeat (setq #si 0 #sn (sslength &ss))

  57.       (write-line (vla-get-textstring (vlax-ename->vla-object (ssname &ss #si))) ~fir)

  58.       (setq #si (1+ #si))

  59.      )

  60.      (close ~fir) (vlax-release-object &tex)

  61.      (princ (strcat "\n已输出图层 [" %lay "]中的 " (itoa #sn) " 个文字到文件 " %fir "中."))

  62.     )

  63.     (princ "\n选择的不是文字对象.")

  64.    )

  65.    (princ "\n未选择对象.")

  66.   )

  67.   (princ)

  68. )

  69. 将上面代码复制到记事本中,另存为ecx.lsp,在CAD中输入AP命令,加载ecx.lsp,加载成功后,在命令行输入EcX,回车,在图中点取一个要输出图层上的单行文字即可。

  70. 上面两个程序,不仅AutoCAD可以用,在浩辰CAD这样的国产CAD中也一样可以运行。

点评

这种变量名称,我怀疑是后来搞加密弄的...  发表于 3 天前
回复 支持 1 反对 0

使用道具 举报

发表于 3 天前 | 显示全部楼层
是啥用的啊大神
回复 支持 反对

使用道具 举报

发表于 3 天前 | 显示全部楼层
试了下竟然出错了
回复 支持 反对

使用道具 举报

发表于 3 天前 | 显示全部楼层

感谢大神分享
回复 支持 反对

使用道具 举报

发表于 3 天前 | 显示全部楼层
煮茗 发表于 2024-12-20 10:06
我把文件内容贴出来:

支持一下,感谢分享
回复 支持 反对

使用道具 举报

发表于 前天 12:37 | 显示全部楼层
可以批量导出文本吗?跟踪一下。感谢分享。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-12-23 11:27 , Processed in 0.189745 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表