當前位置:才華齋>設計>計算機輔助設計>

CAD中怎麼匯入匯出文字

計算機輔助設計 閱讀(2.45W)

在使用CAD繪圖軟體進行工作時,有時需要把用文字編輯器寫好的段落文字插入到圖形中,並用CAD的文字編輯命令進行修改;但CAD中並沒有直接提供關於文字插入和文字輸出的命令,遇到這樣的問題該怎麼辦?通過剪貼簿進行OLE方式的複製與貼上是無法實現上述要求的。下面小編介紹的方法能夠解決在CAD與文字編輯器之間進行純文字的匯入和匯出的問題。

CAD中怎麼匯入匯出文字

  1. 匯入文字

雖然CAD中沒有提供插入文字的'命令,但是利用多行文字編輯Mtext可以實現文字插入。在Mtext的對話方塊中右鍵選單中有“輸入文字”的功能,可以選擇磁碟上的“.txt”、“.rtf”格式的檔案進行插入,注意插入檔案大小不得超過16KB,這顯得美中不足。還有一種比較麻煩的方法就是利用文字編輯軟體先開啟文字,然後在輸入單行文字或多行文字的時候將文字內容複製貼上到CAD中。CAD還可以將預設的文字編輯器設定為記事本或WORD,設定方法如下:

1、 在選項對話方塊中設定。輸入OP命令,開啟選項對話方塊,在“檔案”選項卡中找到文字編輯器應用程式,可以瀏覽設定成記事本、WORD的執行檔案。

2、 直接輸入mtexted命令,回車,輸入notepad,可以將編輯器設定成記事本,如果想設定回來,輸入mtexted,回車,輸入“.”,回車,就可以回覆為CAD預設的編輯器。

如果要匯入文字,無論是貼上、插入,實際上都不太複雜,改變編輯器一般人很少用。

  2. 匯出文字

如果僅有少量文字需要匯出,那麼在單行和多行文字的編輯框中,選擇文字進行復制,然後貼上到文字編輯器中即可。但是如果圖紙中有大量散落的文字需要匯出,上述方法就不太適用了。下面給大家介紹兩個在網上看到的小程式,可以快速將CAD中的單行文字輸出為文字檔案(*),這個檔案用記事本或EXCEL都可以開啟。

A、選擇文字輸出

可以框選文字進行輸出,自動將文字儲存為*。

(defun c:exx ( / &ss %fir ~fir @tex #si #sn &tex %lay %tex @cl %ctx )

(vl-load-com) (princ "n請選擇要輸出的文字物件")

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

(progn

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

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

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

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

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

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

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

)

)

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

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

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

(repeat #sn

(setq %tex "")

(foreach @tx @tex

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

(if (/= %tex "")

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

(setq %tex %ctx)

)

)

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

)

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

(princ (strcat "n成功輸出 " (itoa (sslength &ss)) "個文字輸出到 " %fir " 中."))

)

(princ "n未選擇文字物件,退出.")

)

(princ)

)

將上面程式碼複製到記事本中,另存為,在CAD中輸入AP命令,載入,載入成功後,在命令列輸入EXX,回車,在圖中框選要輸出的單行文字即可。

B、輸出同圖層文字

可以選擇圖層上的一個單行文字,就可以將此圖層上所有單行文字都輸出為一個*檔案。

(defun c:ecx ( / &tex &ss %fir ~fir %lay #si #sn )

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

(if (setq &tex (entsel "n請選擇要輸出圖層的文字物件: "))

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

(progn

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

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

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

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

(setq #si (1+ #si))

)

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

(princ (strcat "n已輸出圖層 [" %lay "]中的 " (itoa #sn) " 個文字到檔案 " %fir "中."))

)

(princ "n選擇的不是文字物件.")

)

(princ "n未選擇物件.")

)

(princ)

)

將上面程式碼複製到記事本中,另存為,在CAD中輸入AP命令,載入,載入成功後,在命令列輸入EcX,回車,在圖中點取一個要輸出圖層上的單行文字即可。