摘 要:文章通過利用Autocad圖符功能及其自帶的二次開發(fā)語言Autolisp進(jìn)行Autocad下地形圖點(diǎn)狀和線狀以及面狀符號(hào)庫的設(shè)計(jì)。該方法對(duì)在Autocad下繪制地形圖及對(duì)地形圖的編輯具有重要的實(shí)用價(jià)值。
關(guān)鍵詞:AutoCAD;AutoLisp;語言;地形圖;線狀符號(hào)
1 引言
AutoCAD是優(yōu)秀圖形軟件,但是對(duì)于地形圖來說想要直接在Autocad下實(shí)現(xiàn)方便的繪制及編輯,還有些困難,尤其是一些復(fù)雜的線型和復(fù)雜的獨(dú)立符號(hào)。如果用其本身的功能把這些符號(hào)畫出來,這樣不僅費(fèi)時(shí)費(fèi)力,而且圖面也不美觀,精度有時(shí)也達(dá)不到。為了解決這一不足,我們利用AutoCOD開放的體系結(jié)構(gòu)和強(qiáng)大的二次開發(fā)功能,通過對(duì)AutoCAD內(nèi)部數(shù)據(jù)結(jié)構(gòu)的探討,應(yīng)用AutoLisp語言,編寫一系列地形地物點(diǎn)狀和線狀自動(dòng)編輯的程序,運(yùn)用這些程序,在繪制和編輯大比例地形圖時(shí)就可以僅需畫出中心點(diǎn)或者其主線,然后利用程序自動(dòng)生成符號(hào)。
2 Autocad下符號(hào)庫的建立方法
地形圖圖式是國(guó)家統(tǒng)一頒布的標(biāo)準(zhǔn),也是符號(hào)庫設(shè)計(jì)和編碼的依據(jù),本文是依據(jù)國(guó)家編制的1:500大比例尺地形圖圖式來設(shè)計(jì)本符號(hào)庫的。
2.1 點(diǎn)狀符號(hào)
在地形圖中點(diǎn)狀符號(hào)較多,如下水井、路燈等都是點(diǎn)狀符號(hào),我們可以逐一把這些符號(hào)制作成圖塊的形式,然后再逐一插入。但這樣又帶來了一些問題,因?yàn)槲覀儾迦氇?dú)立符號(hào)時(shí)要記住插入的命令,這樣又加大了編圖者的勞動(dòng)強(qiáng)度。所以為了統(tǒng)一管理,方便查詢,我們把所有的獨(dú)立符號(hào)制作成幻燈片庫并定制菜單,這樣使用者就可以只看圖形而不需考慮具體的命令是什么了。下面就是點(diǎn)狀符號(hào)庫的制作過程:
a.首先,制作點(diǎn)狀符號(hào)的塊,為了便于管理我們把所有的點(diǎn)狀符號(hào)塊放在同一目錄下。就路燈來說,先按國(guó)家的大比例尺地形圖圖式制作出下水井,如圖 1 所示,
圖1 塊的制作圖
這樣我們就把下水井的塊制作下來了,但這時(shí)我們要注意一點(diǎn)的就是在制作圖塊的時(shí)候,我們要注意地物的插入點(diǎn)問題,也就是地物的中心點(diǎn),因?yàn)槲覀冊(cè)诔绦蛑幸玫降匚锏牟迦朦c(diǎn)。
b.制作幻燈片
打開一個(gè)已做好的塊文件,如上述的下水井符號(hào),然后用mslide命令生成幻燈片文件,把所有的點(diǎn)狀符號(hào)都按以上方法生成幻燈片文件。
c.制作幻燈片庫
在MS-DOS下把所有的幻燈片做到庫里面去。
d.定制相應(yīng)命令
雖然我們幻燈片庫已做好,但是我們還不能實(shí)現(xiàn)插入的功能,所以我們要定制相應(yīng)的命令,以達(dá)到可以方便插入的效果。在插入獨(dú)立符號(hào)時(shí),我們需用到以下程序:
插入獨(dú)立符號(hào)
(defun dlfh(km cm ys / fa pt)
(command "layer" "m" cm "c" ys "" "")
(setq pt (getpoint "\n 插入基點(diǎn):"))
(while pt
(if (or (= km "WBF") (= km "BYQ"))
(progn
(setq fa (getangle pt "\n 給出符號(hào)方向:"))
(command "insert" km pt blc "" (* fa 57.3))
)
(command "insert" km pt blc "" 0)
)
(setq pt (getpoint "\n 下一個(gè)插入點(diǎn)(回車結(jié)束):"))
)
(princ)
)
注意這里我們定義了一個(gè)blc的變量,之所以定義這個(gè)變量,是因?yàn)槲覀冊(cè)谧龅匦螆D時(shí),可能有時(shí)是1:500的,有時(shí)是1:1000的等等,而對(duì)于依比例尺的符號(hào)來言,在1:500和1:1000中是不一樣大小的,為了解決這個(gè)問題我們定義了blc這個(gè)變量來解決插入不好比例大小的問題。
2.2 線狀符號(hào)的制作
線狀符號(hào)表示地理空間中的一維地物和地理現(xiàn)象,在圖上長(zhǎng)度依比例尺而寬度不依比例尺表示的元素符號(hào),線狀符號(hào)都有一條有形或無形的定位線,線狀符號(hào)的定位都是由定位線決定的,定位線是線狀符號(hào)的基礎(chǔ)。分析線狀符號(hào)的構(gòu)造,線狀符號(hào)可分為下面兩類:
2.2.1 簡(jiǎn)單線狀地物符號(hào)
圖2 簡(jiǎn)單線狀符號(hào)
該類符號(hào)可分解為曲線、直線虛線、點(diǎn)畫線等簡(jiǎn)單線型。
2.2.2 復(fù)雜線狀地物符號(hào)
在定位線兩端點(diǎn)間按一定規(guī)則插入若干圖元或線劃,稱作復(fù)雜地物線狀符號(hào),它與普通線型符號(hào)的區(qū)別在于使用各種圖元組合而成,符號(hào)的重復(fù)遵循一定規(guī)則。復(fù)雜線型符號(hào)根據(jù)構(gòu)造符號(hào)時(shí)插入圖元的規(guī)則不同,可分為“行樹類”和“管線類”兩類。
行樹類是指在連接點(diǎn)間沿連線方向均勻地繪制指定圖元或線段而形成的線型符號(hào),如,行樹、狹長(zhǎng)灌木林。這一類線狀符號(hào)符號(hào)的最大特點(diǎn)是插入的圖元的重復(fù)具有周期性,屬有規(guī)律類,如圖3。
圖3 有規(guī)律的線狀地物符號(hào)
管線類是指在兩個(gè)連接點(diǎn)上及其中間插入所需圖元,且必須兩點(diǎn)以上才能出現(xiàn)符號(hào)的復(fù)雜線型符號(hào),如高壓電力線,低壓電力線,通訊線,如圖4。這一類符號(hào)從表面上看和行樹類符號(hào)沒有區(qū)別,但實(shí)際上和行樹類有很大差別,主要體現(xiàn)在這一類符號(hào)中的重復(fù)部分是不定周期的。
圖4 管線類地物符號(hào)
3 結(jié)束語
利用上述辦法我們可以實(shí)現(xiàn)大多數(shù)地形圖符號(hào)的設(shè)計(jì),基本上可以滿足城市地形測(cè)繪的要求。而且在很大程度上減輕了編圖者的勞動(dòng)強(qiáng)度,美化圖面,提高繪圖精度,基本實(shí)現(xiàn)了繪圖的自動(dòng)化,具有很高的實(shí)用價(jià)值。
參考文獻(xiàn)
[1]郭朝勇籌.AutoCAD R14(中文版) 二次開發(fā)技術(shù).華大學(xué)出版社.
[2]AutoLispVlisp函數(shù)全集.chm.
[3]吳永進(jìn),林美櫻.Autolisp&DCL基礎(chǔ)[M].北京:中國(guó)鐵道工業(yè)出版社,2003.
[4]梁雪春.Autocad二次開發(fā)技術(shù)指南[M].北京:清華大學(xué)出版社,2001.
[5]《1:500、1:1000、1:2000地形圖圖式》GB/T20257.1-2007.
作者簡(jiǎn)介:郭海錄(1981-),男,工程師,主要從事于工程測(cè)量及GIS,注冊(cè)測(cè)繪師。