近年來,測繪領(lǐng)域內(nèi)機(jī)助制圖的研究取得了飛速發(fā)展,通過繪圖機(jī)輸出的圖形從過去簡單的工程制圖到現(xiàn)在的各種比例尺的地形圖、地藉圖、宗地圖,以及非常復(fù)雜的小比例尺土地利用現(xiàn)狀圖等。在眾多的繪圖系統(tǒng)中,人們普遍采用的基礎(chǔ)繪圖軟件是美國Autodesk公司的AutoCAD,因為該軟件不僅具有豐富的繪圖命令,還具有強(qiáng)大的圖形編輯功能,而且軟件運行相當(dāng)穩(wěn)定。但是熟悉AutoCAD的人都知道,要用好AutoCAD,不但要熟練掌握其各項命令,而且要熟練掌握AutoCAD提供的數(shù)據(jù)交換文件SCR、DXF和嵌入AutoCAD內(nèi)部的高級語言 --Auto LISP語言,這樣使您對各種圖形,尤其對復(fù)雜的圖形更加得心應(yīng)手。關(guān)于 AutoCAD 在測繪圖形中應(yīng)用可歸納為以下幾個方面。
J].Oxch&y 1,-C*T}nR 1 實現(xiàn)數(shù)據(jù)到圖形的自動轉(zhuǎn)換
>Uw:cq >v]^nJl 有了原始數(shù)據(jù),如何實現(xiàn)自動成圖,這一直是人門關(guān)心的問題,在AutoCAD下,把原始數(shù)據(jù)變成圖形,可以通過以下途徑:
G?s9c0f (1)采用高級語言(BASIC語言或C語言)編制程序調(diào)用原始數(shù)據(jù)文件生成SCR命令文 件,在AutoCAD的圖形編輯環(huán)境下調(diào)用SCRIPT命令執(zhí)行該文件,生成相應(yīng)的圖形。
cUY- (2)用高級語言生成DXF文件,在AutoCAD圖形編輯環(huán)境下調(diào)用DXFIN命令打開該文 件,即可得到相應(yīng)的圖形文件。
)[ V8YiyU (3)用高級語言直接生成DWG圖形文件
$Zu?Gd? (4)利用 Auto LISP語言,編寫相應(yīng)程序,讀取有關(guān)數(shù)據(jù)文件,進(jìn)行處理,并且調(diào)用 Auto CAD繪圖命令,直接生成圖形。
F\m^slsu7= 0k
(- 以上四種方法中,第一種方法比較簡單,但執(zhí)行速度慢;第二種方法速度較快,但DXF文件格式死板,記錄冗長,尤其是復(fù)雜的圖形,DXF文件長得驚人。第三種方法較前兩種方法理想,但這種方法對于一些復(fù)雜的圖形尚有一定的難度,況且,不同的AutoCAD版本,DWG文件的結(jié)構(gòu)也不同,使程序不能通用。三種方法都有一共同的特點,先在AutoCAD外,用高級語言做數(shù)據(jù)處理,然后再回到AutoCAD下成圖,效率低。第四種方法是直接在AutoCAD下工作,減少了中間環(huán)節(jié),提高了效率。而且具有較強(qiáng)的通用性,對一些較復(fù)雜的圖形,更直接方便。
<T}^:2G| O] @E8<?^ 2 實現(xiàn)圖形到數(shù)據(jù)的自動轉(zhuǎn)換
<Ht"t]u*Bn 剛接觸AutoCAD的人都有下面的感覺,就是由數(shù)據(jù)生成圖形容易,由圖形返回數(shù)據(jù)困難, 有LISP語言,這個問題就會迎刃而解。
Lc{AB!Br w"j>^#8 2.1 圖紙資料的數(shù)字化
%e~xO x 要把圖像資料變成相應(yīng)的數(shù)據(jù),一般是通過數(shù)字化儀和掃描儀。對于手扶式數(shù)字化儀來 講,我們可以根據(jù)不同要求來編制相應(yīng)的LISP程序,完成圖形的數(shù)字化。程序運行時,把從 數(shù)字化儀傳遞來的數(shù)據(jù)信息(點的坐標(biāo))連同交互式狀態(tài)下輸入的有關(guān)編碼合并以一合理的數(shù)據(jù)結(jié)構(gòu)存貯于數(shù)據(jù)文件中,同時,在屏幕上,采用不同的圖層,不同的顏色進(jìn)行同步顯示。從而使數(shù)字化過程變得非常直觀、形象,避免產(chǎn)生丟點或重復(fù)等各種錯誤的發(fā)生。這樣數(shù)字化的結(jié)果,不僅得到與原圖紙相對應(yīng)的數(shù)據(jù)文件,也同時生成了一幅相對應(yīng)的圖形文件。數(shù)據(jù)文件可以納入有關(guān)相對應(yīng)的數(shù)據(jù)管理系統(tǒng)中,而圖形文件為將來的輸出和變更修改提供了方便。對于掃描儀,是將原圖通過掃描儀掃描形成位圖文件(文件擴(kuò)展名為BMP或TIF),經(jīng)矢量化軟件把圖形的數(shù)據(jù)信息分類存貯于數(shù)據(jù)文件中。
F7DA~G! ], lLDUZ\ 2.2圖形變更后,數(shù)據(jù)的自動更新
5W&L6.J}+ 測量領(lǐng)域的各種圖形隨時間的推移是不斷發(fā)生變化的,為保證圖形的現(xiàn)實性,就要對圖形隨時加以修改,這種修改大多數(shù)是直接對原圖文件利用AutoCAD的圖形編輯功能來完成,但隨之產(chǎn)生一個問題,就是圖形文件修改后,原圖對應(yīng)的數(shù)據(jù)文件如何修改?解決這個問題的最好辦法是利用AutoLISP語言。 在AutoLISP語言中,有很多實體訪問函數(shù),實體名稱函數(shù)、實體數(shù)據(jù)函數(shù),運用上述函 數(shù)編制一個LISP程序就可以實現(xiàn)圖形文件到數(shù)據(jù)文件的自動轉(zhuǎn)換。具體過程如下: 用ssget函數(shù)構(gòu)造一個選擇集,在利用sslength函數(shù)求出選擇集實體的個數(shù),然后ssname函數(shù)依次求出每個實體的名稱,在通過entget函數(shù)就可以獲得實體的下列信息: 實體類型,所在層名和實體顏色號(一般圖形的編碼就隱含在圖層和顏色中)。實體類型常見有:組合線、直線、注記和塊。 如果實體是直線,我們就可以直接讀取直線的起始坐標(biāo)。如果實體是注記類,我們可以讀取注記內(nèi)容,字符高度,方向及注記點位坐標(biāo)。 如果實體是塊,我們就可以直接讀取塊名,插入點位,旋轉(zhuǎn)角度和X、Y方向比例因子。
|0n