导出文本 (求助!!!)
导出文本<BR> 如果仅有少量文字需要导出,那么在“Ddedit”或“Mtext”的编辑框中,选择文字进行复制,然后粘贴到文字编辑器
中即可。但是如果图纸中有大量散落的文字需要导出,上述方法就不太适用了。下面提供的小程序“ExpText.lsp”,可以
通过AutoCAD的窗选方式直接将所选文字输出到文本文件中去。
<BR>;;; ExpText.lsp(defun c:EXT (/ flnm fn s n index ents ent txt)
(setq flnm (getstring “\nFile name:”))
(setq fn (open flnm “w”))
(setq s (ssget))
(setq n (sslength s))
(setq index ( - n 1))
(repeat n
(setq ents (entget (ssname s index)))
(setq index ( - index 1))
(setq ent (assoc 0 ents))
(if ( = “TEXT”(cdr ent))
(progn
(setq txt (cdr (assoc 1 ents)))
(write-line txt fn)
)
)
)
(close fn)
)
(princ “\n文本导出:EXT”)
<BR> 程序建立后,通过“Appload”命令加载“ExpText.lsp”,在“Command:”后键入EXT回车,输入文件名(可带路径及
后缀名)、窗选实体(自动过滤非文字实体),此时输出到文件的文字实体将按其在AutoCAD实体集中建立的先后次序及回
车换行。
为什么上面方法行不通? “XXX”--> "XXX" 引号大写改小写
;;; ExpText.lsp<BR>(defun c:EXTT (/ flnm fn s n index ents ent txt)
(setq flnm (getstring "\nFile name:"))
(setq fn (open flnm "w"))
(setq s (ssget '((0 . "TEXT,MTEXT"))))
(setq n (sslength s))
(setq i 0)
(repeat n
(setq ents (entget (ssname s i)))
(setq txt (cdr (assoc 1 ents)))
(write-line txt fn)
(setq i (+ i 1))<BR> )
(close fn)
)
;(princ “\文字导出:EXT”)
能直接存到EXCEL里面么?
不知道能不能直接存到EXCEL里面,而且这个程序的自动筛选排序,如果是框选的话好像还有点问题。 你可以先写到一个(.txt)的记事本文件里,然后再导入到excel里,我是这样做的。不知其他大虾有更好的办法。
页:
[1]