黃春雷
【摘 要】本文概述了AutoCAD中SCR文件的特性,在此基礎(chǔ)上論述了運(yùn)用SCR文件編程實(shí)現(xiàn)在地形圖繪制中自動(dòng)生成圖形和文本的過程,并結(jié)合實(shí)例展開討論,結(jié)果說明實(shí)際應(yīng)用工作表面合理使用SCR文件能夠提高制圖的效率,減少制圖人員的工作。
【關(guān)鍵詞】AutoCAD;SCR文件;地形圖;繪制
1 SCR文件簡介
AutoCAD是一種常用繪圖軟件[1],把一系列的AutoCAD命令和參數(shù)組合在一起構(gòu)成一命令序列,相當(dāng)于一個(gè)程序,調(diào)用它,就可按指定順序執(zhí)行這些命令,這個(gè)命令序列稱為腳本或命令組,把腳本以文件形式存儲(chǔ)在磁盤上,就稱為腳本文件,其文件類型為“.SCR”。
把經(jīng)常需要重復(fù)使用的命令序列編寫成SCR文件,代替交互操作,既使操作簡化,又節(jié)省時(shí)間;SCR文件可作為一個(gè)完整的繪圖程序直接執(zhí)行,還可與任一種高級(jí)語言連接,實(shí)現(xiàn)參數(shù)化繪圖;
編寫SCR文件須注意:(1)空格即代表回車(文中以_代表空格);(2)每行結(jié)尾無論有無空格都自動(dòng)加一空格;(3)SCR文件是以ASCII碼建立的,可在任意編輯器里編寫;
(4)字母大小不限。
建立了SCR文件后,在AutoCAD中用Script命令即可測試和運(yùn)行此文件。
2 SCR文件的應(yīng)用
2.1 竣工測量自動(dòng)計(jì)算房高
在竣工測量中,規(guī)劃部門要求測出建筑物的高度以便計(jì)算房屋的日照間距和遮陽比等參數(shù)[2]。由于要求精度不是很高,本單位在實(shí)際操作時(shí)一般采用全站儀測量房檐天頂距 ,再利用測站到房角的平距 ,加上測站的高程 以及儀器高 即得出房檐的高程 ,如圖1所示。
原來的作業(yè)過程中,這些數(shù)據(jù)都是以手工記錄,手工計(jì)算,再手工輸入到CAD圖形中去。當(dāng)測量房屋較多時(shí),面對(duì)幾十上百個(gè)數(shù)據(jù),靠手工計(jì)算和成圖,不僅工作量大,而且容易出錯(cuò)。
筆者對(duì)自編的外業(yè)數(shù)據(jù)處理程序加以改進(jìn),對(duì)應(yīng)房角的編碼加以代碼“HH”。例如房角編號(hào)為FF1的對(duì)應(yīng)的房高編號(hào)為HH1,F(xiàn)F300對(duì)應(yīng)的房高編號(hào)為HH300,再利用手簿獲全站儀自動(dòng)記錄房檐的仰角。在進(jìn)行內(nèi)業(yè)數(shù)據(jù)處理時(shí),程序會(huì)自動(dòng)查找HH1對(duì)應(yīng)的房角FF1的坐標(biāo),根據(jù)測站點(diǎn)坐標(biāo)反算出測站點(diǎn)到房角點(diǎn)的平距D,再根據(jù)HH1的仰角以及測站點(diǎn)的高程和儀器高依據(jù)公式1計(jì)算出HH1的高程H1 。然后利用AutoCAD中的TEXT命令,將H1的數(shù)值按FF1的坐標(biāo)展入。將該命令按照SCR文件的格式生成一個(gè)后綴名為SCR的文本文件。
實(shí)例為:“TEXT_S_ZJ_91982.068,93906.876_1.2_0_屋檐高程為26.19m_ _ _ _”。注釋:TEXT為CAD中文本輸入命令,S為選擇字體,ZJ為選擇的字體名稱,91982.068,93906.876為輸入的文本基準(zhǔn)點(diǎn)的坐標(biāo),也就是FF1的坐標(biāo),1.2是文本高度,0是旋轉(zhuǎn)角度,屋檐高程為26.19m是輸入文字的內(nèi)容。
在CAD中,用“Script”命令將以上內(nèi)容的SCR文件輸入,將在坐標(biāo)為91982.068(E),93906.876(N)的房角點(diǎn)上展入字體為ZJ,高度為1.2的文本“房檐高程26.19 m”。
2.2 圖廓處理
在成圖軟件不太完善的情況下,以往的做法是將一個(gè)標(biāo)準(zhǔn)圖幅中的內(nèi)外圖廓線、圖外整飾和方格網(wǎng)做成圖塊,每次使用時(shí)插入到圖形中[3-5]。這樣做的缺陷在于:每幅圖的圖外整飾(圖名、圖幅號(hào)、圖廓間坐標(biāo)、日期等)和接合表都不一樣,都需要手工改動(dòng),工作量繁重而且容易出錯(cuò)。筆者考慮到圖外整飾的位置和圖幅左下角的相對(duì)位置是固定的,結(jié)合表可以根據(jù)整個(gè)測區(qū)中圖幅的左下角坐標(biāo)自動(dòng)排列。于是筆者以每幅圖的“圖號(hào),左下角北坐標(biāo),左下角東坐標(biāo),圖名”的順序?qū)y區(qū)的所有圖形做成一個(gè)txt文本文件,用VB編了一個(gè)程序處理該文本文件[6],實(shí)現(xiàn)如下功能。
(1)自動(dòng)生成左上角結(jié)合表。以本圖幅為中心,根據(jù)左下角坐標(biāo)搜索所有圖幅,將相鄰的圖幅號(hào)(圖幅名)作為文字注記插入到圖幅結(jié)合表中。
(2)自動(dòng)生成圖名、圖幅坐標(biāo)和圖廓間坐標(biāo)。圖名、圖幅坐標(biāo)注記和圖廓間坐標(biāo)注記的位置相對(duì)于圖幅左下角坐標(biāo)總是固定的,可根據(jù)圖幅左下角的坐標(biāo)求出圖名、圖幅坐標(biāo)注記和圖廓坐標(biāo)注記的插入位置的坐標(biāo),根據(jù)這些坐標(biāo)插入相應(yīng)格式的文字注記。
(3)自動(dòng)生成日期。程序?qū)⒄{(diào)用電腦的系統(tǒng)日期自動(dòng)生成時(shí)間注記。
以上所有注記對(duì)于圖幅左下角坐標(biāo)來說,其相對(duì)位置都是固定的,程序?qū)⒏鶕?jù)圖幅左下角坐標(biāo)計(jì)算出這些文本的插入點(diǎn)的坐標(biāo)并以TEXT文本的命令插入到相應(yīng)的位置上[7]。
所有的TEXT注記命令將生成一個(gè)SCR文件,以Script命令展入圖幅,同時(shí)以圖塊方式插入圖框、格網(wǎng)、單位名稱等固定注記,即生成一個(gè)完整的圖框。
對(duì)應(yīng)的txt文件每行即每幅圖的“圖號(hào),左下角北坐標(biāo),左下角東坐標(biāo),圖名”將生成一個(gè)圖廓。這樣大大的降低了人工工作量,提高了工作效率,減少了差錯(cuò)。
經(jīng)過程序處理后生成6個(gè)SCR文件,文件名分別為Y-506.scr、Y-540.scr、Y-541.scr、Y-574.scr、Y-575.scr、Y-576.scr,用Script命令將此6個(gè)SCR文件分別展入CAD圖中,即可生成完整的圖廓。
結(jié)束語
本文在詳細(xì)介紹AutoCAD中SCR文件特性的基礎(chǔ)上,通過實(shí)例說明了SCR文件的強(qiáng)大功能和在制圖中的作用。合理使用SCR文件能夠提高制圖的效率,減少制圖人員的工作量。
參考文獻(xiàn)
[1] 舒飛. 中文版AutoCAD 2004二次開發(fā)標(biāo)準(zhǔn)教程[M]. 上??茖W(xué)普及出版社, 2005.
[2] 潘正風(fēng). 數(shù)字測圖原理與方法[M]. 武漢大學(xué)出版社, 2004.
[3]江濤, 朱運(yùn)海, 曹銀璇, 張運(yùn). 1:50000地形圖遙感快速更新方法的研究[J]. 黑龍江工程學(xué)院學(xué)報(bào), 2004 (03).
[4]劉鐵, 劉娟, 周宇峰, 劉穎奇, 房寶龍. CASS7.0在地形圖繪制中應(yīng)注意的幾個(gè)問題[J]. 內(nèi)蒙古林業(yè)調(diào)查設(shè)計(jì), 2008(05).
[5]胡洪良, 熊嵐. 城市基礎(chǔ)地形圖更新工作探討——以紹興縣基礎(chǔ)地形圖更新為例[A].中國測繪學(xué)會(huì)九屆三次理事會(huì)暨2007年信息化測繪論壇學(xué)術(shù)年會(huì)論文集[C], 2007.
[6] 劉炳文. Visual Basic語言教程[M]. 電子工業(yè)出版社, 1992.
[7]王占宏, 馬曉萍, 肖學(xué)年. 《基礎(chǔ)地理信息數(shù)字產(chǎn)品—數(shù)字正射影像圖、數(shù)字高程模型、數(shù)字柵格地圖》標(biāo)準(zhǔn)的編制[J]. 測繪標(biāo)準(zhǔn)化, 2001 (03).