在使用AutoCAD繪圖軟件進(jìn)行工作時有時需要把用文字編輯器寫好的段落文字插入到圖形中并用AutoCAD的文字編輯命令進(jìn)行修改有時也需要把圖形中已有的文字輸出到文件中以便用文字編輯器進(jìn)行處理AutoCAD中并沒有直接提供關(guān)于文本插入和文本輸出的命令遇到這樣的問題該怎么辦?當(dāng)然通過剪貼板進(jìn)行OLE方式的復(fù)制與粘貼是無法實(shí)現(xiàn)上述要求的下面介紹的方法能夠解決在AutoCAD與文字編輯器之間進(jìn)行純文本的導(dǎo)入和導(dǎo)出的問題。
AutoCAD中導(dǎo)入超文本實(shí)現(xiàn)方法
一、除了AutoCAD內(nèi)含的文本輸入命令外,向AutoCAD中輸入多行文本即超文本的方法還有:通過Windows提供的剪貼板,利用AutoCAD提供的多行文本命令;利用OLE特性。
二、用單行文本命令組合實(shí)現(xiàn)
在AutoCAD圖樣中輸入少量文字可以用DText命令實(shí)現(xiàn),如工程圖樣中的圖名、明細(xì)表、標(biāo)題欄、技術(shù)要求等的填寫。在需要輸入多行文本時,可以通過單行文本的組合來實(shí)現(xiàn)。即輸入一行文本后,再借助復(fù)制命令(Copy)和文本編輯(DDEdit或MTEdit)、屬性編輯(DDModify)、對象特性工具(Properties)、移動(Move)等命令進(jìn)行多行文本的輸入。但此種方法在換行時的定位及行列對齊都比較困難。且標(biāo)注結(jié)束后,每行文本都是一個單獨(dú)的實(shí)體。所以用其標(biāo)注多行文本時,其實(shí)輸入和編輯的功能遠(yuǎn)遠(yuǎn)不如下面的幾種方法方便。
三、通過剪貼板來實(shí)現(xiàn)
剪貼板是Windows提供的功能,幫助應(yīng)用程序間進(jìn)行數(shù)據(jù)通訊。雖然利用剪貼板所傳遞的數(shù)據(jù)是靜態(tài)的,即應(yīng)用程序中對數(shù)據(jù)的修改不會在目標(biāo)程序中體現(xiàn)出來,但操作方便、快捷、簡單。以Word為例,Word提供了剪切(Cut)、復(fù)制(Copy)和粘貼(Paste)三個命令來操作剪貼板。其具體實(shí)現(xiàn)方法如下:打開AutoCAD和Word軟件,在Word中選中要插入的內(nèi)容,單擊下拉式菜單“編輯”中的“復(fù)制”命令。激活A(yù)utoCAD,打開下拉式菜單“Edit”中的“Paste”選項(xiàng),這樣Word文檔就以AutoCAD繪圖區(qū)左上角為插入點(diǎn)被插入,此種方法插入的文檔位置和字體的大小都會與原AutoCAD圖樣大小和比例不一致,需進(jìn)行處理。
四、用AutoCAD的多行文本命令來導(dǎo)入
AutoCAD系統(tǒng)提供了多行文本輸入命令MText,可以一次標(biāo)注多行文本,且各行文本都按照指定寬度對齊排列,并成為一個完整統(tǒng)一的實(shí)體,其內(nèi)容可以在多行文本編輯器中直接輸入,也可從外部文檔導(dǎo)入。
1.在文本編輯器中直接輸入
在AutoCAD的下拉式菜單“Draw”中選中“Text”,再單擊“Multiline Text…”選項(xiàng),在Command提示區(qū)提示用戶確定所標(biāo)注文本的寬度、高度和字體排列方式,系統(tǒng)根據(jù)輸入信息,確定文本框大小,并彈出一個專門用于文字編輯的文本編輯器,即彈出“Multiline Text Editor”對話框,在選定字型、字高、文本寬度等前提條件后,可直接在“Multiline Text Editor”對話框中進(jìn)行多行標(biāo)注文本的輸入、編輯、修改等工作。
2.從外部導(dǎo)入多行文本
(1)導(dǎo)入純文本
若需導(dǎo)入純文本,可直接單擊“Multiline Text Editor”對話框中的“Import Text…”按鈕,彈出“打開”對話框,用戶可以在這個對話框中選擇所需插入引用的純文本文件。(AutoCAD 2000除支持純文本文檔,還可導(dǎo)入帶有格式信息的RTF格式文件,用戶可以在支持RTF格式的文字處理軟件中對文字進(jìn)行格式化處理,然后再用此方法導(dǎo)入到AutoCAD中)。
(2)導(dǎo)入格式文本
對于RTF格式的格式文檔,可直接從文本編輯器導(dǎo)入。對于非RTF格式的格式文檔要導(dǎo)入到AutoCAD中,先要進(jìn)行格式轉(zhuǎn)換處理,此后才能導(dǎo)入成功。否則,會提示格式出錯。格式轉(zhuǎn)換處理方法有:方法一,可將非RTF格式文檔調(diào)入到記事本等純文本文字處理軟件內(nèi),然后另存為純文本格式文檔;方法二,有些格式文檔可轉(zhuǎn)換為RTF格式文檔,也可成功導(dǎo)入。
五、用OLE來實(shí)現(xiàn)
把一個對象從一個應(yīng)用程序鏈接或嵌入到另一個應(yīng)用程序中,操作過程與使用剪貼板的操作過程很相近,但它們之間有很大的區(qū)別。對象鏈接和嵌入即OLE(Object Linking and Embedding)是Microsoft Windows提供的集成接口,使用OLE實(shí)現(xiàn)向AutoCAD圖樣插入Word文檔,即將一個特定OLE對象從一個應(yīng)用程序鏈接到另一個應(yīng)用程序中,在對象與創(chuàng)建它的應(yīng)用程序之間,保持聯(lián)系,且這兩個應(yīng)用程序間可以進(jìn)行實(shí)時編輯,具體實(shí)現(xiàn)方法如下。
進(jìn)入AutoCAD,打開下拉式菜單“Insert”,選中“OLE Object…”選項(xiàng),彈出“插入對象”對話框,從對象類型列表框中選擇將要插入的對象類型:Microsoft Word類型或其他類型,選中“由文件創(chuàng)建”單選框,此單選框選中后,可直接選擇某個已存在文件作為插入對象插入到當(dāng)前圖形文件中,單擊“瀏覽”按鈕,彈出“瀏覽”對話框,選擇要插入到AutoCAD中的Word文檔或其他類型文檔,并單擊該對話框中的“插入”按鈕,返回到“插入對象”對話框,在該對話框中的“文件”編輯框中列出被插入文檔的路徑。單擊“確定”按鈕,則Word文檔以AutoCAD繪圖區(qū)左上角為插入點(diǎn)插入到AutoCAD圖樣中。如果要編輯被插入文檔,可雙擊該文檔,則系統(tǒng)鏈接到Word系統(tǒng),完成編輯后,打開“文件”菜單,單擊“關(guān)閉并返回”,則返回到AutoCAD。此時,已是編輯后的Word文檔。被插入的OLE對象,根據(jù)需要可對其大小進(jìn)行調(diào)整,亦可進(jìn)行無級縮放,并按住左鍵將其移到需要的合適位置。此種方法對純文本文檔、非純文本文檔都適用。
六、通過拖放技術(shù)導(dǎo)入
在Windows9X/NT環(huán)境下,可以一次打開或運(yùn)行多個應(yīng)用程序,因此為了將文本文檔導(dǎo)入圖形文件,用戶可打開Window系統(tǒng)的資源管理器,把文檔文件圖標(biāo)拖到AutoCAD圖形窗口,所產(chǎn)生的文本作為MText對象顯示。利用導(dǎo)入對象的外圍控制點(diǎn)可對其大小要進(jìn)行調(diào)整。
由于AutoCAD中的圖形可進(jìn)行無級縮放和平移,采用以上方法導(dǎo)入的文本,其大小和位置有時會與整個圖形不協(xié)調(diào)一致,需進(jìn)行處理。
1、 導(dǎo)入文本
雖然AutoCAD中沒有提供插入文本的命令,但是利用多行文字編輯命令“Mtext”可以實(shí)現(xiàn)文本插入。在Mtext的對話框中有一個“ImportText…”命令按鈕,點(diǎn)擊后出現(xiàn)“打開”對話框,在此可以選擇磁盤上的“.txt”、“.rtf”格式的文件進(jìn)行插入,插入后的文本即可用“Ddedit”命令進(jìn)行編輯,注意插入文件大小不得超過16KB,這顯得美中不足。值得一提的是可以將“Mtext”默認(rèn)的文字編輯器改為“Windows 記事本”或者“Microsoft Word 2000”。選取“Tools”菜單的“Preferences…”對話框,將“Text Editor、Dictionary、Font File Names”目錄下的“Text Editor Application”項(xiàng),由“Internal”改為記事本或Word 2000的磁盤路徑,例如:C:\Windows\Notepad.exe。通過設(shè)置系統(tǒng)變量“Mtexted”也可以實(shí)現(xiàn)相同操作。
導(dǎo)出文本
如果僅有少量文字需要導(dǎo)出那么在Ddedit或Mtext的編輯框中選擇文字進(jìn)行復(fù)制然后粘貼到文字編輯器中即可但是如果圖紙中有大量散落的文字需要導(dǎo)出上述方法就不太適用了下面提供的小程序ExpTextlsp可以通過AutoCAD的窗選方式直接將所選文字輸出到文本文件中去
;;; ExpTextlsp(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 ))
(repeat n?
(setq ents (entget (ssname s index)))
(setq index ( index ))
(setq ent (assoc ents))
(if ( = TEXT(cdr ent))
(progn
(setq txt (cdr (assoc ents)))
(writeline txt fn)
)
)
)
(close fn)
)
(princ n文本導(dǎo)出:EXT)
程序建立后通過Appload命令加載ExpTextlsp在Command后鍵入EXT回車輸入文件名(可帶路徑及后綴名)窗選實(shí)體(自動過濾非文字實(shí)體)此時輸出到文件的文字實(shí)體將按其在AutoCAD實(shí)體集中建立的先后次序及回車換行