王振輝
(國(guó)家測(cè)繪局第七地形測(cè)量隊(duì),海南???570203)
公路路產(chǎn)是國(guó)家財(cái)產(chǎn),受國(guó)家法律保護(hù),任何單位和個(gè)人均不得侵占和破壞。公路作為促進(jìn)社會(huì)經(jīng)濟(jì)高速發(fā)展的基礎(chǔ)性設(shè)施,在國(guó)民經(jīng)濟(jì)中的重要作用日益突出。保護(hù)公路路產(chǎn)最重要的方面即是對(duì)公路路產(chǎn)進(jìn)行確權(quán)登記和建檔,它是公路路產(chǎn)管理的前提和基本手段。而公路路產(chǎn)登記資料之一是公路用地權(quán)屬范圍圖,圖中需要標(biāo)注道路中心線的中樁以及對(duì)應(yīng)用地范圍線邊樁的坐標(biāo)。公路用地權(quán)屬確認(rèn)的過(guò)程十分復(fù)雜,確權(quán)部門因多種因素會(huì)經(jīng)常對(duì)用地范圍線進(jìn)行更改,如果通過(guò)手工對(duì)道路中、邊樁的坐標(biāo)進(jìn)行標(biāo)注,會(huì)因用地范圍線的變更而重復(fù)做很多工作。因此,通過(guò)AutoCAD二次開發(fā),運(yùn)用程序進(jìn)行中樁和邊樁的坐標(biāo)自動(dòng)標(biāo)注,能很大程度提高工作效率。
AutoLISP作為通用LISP語(yǔ)言的一個(gè)小子集,嚴(yán)格地遵循其語(yǔ)法和慣例,又添加了許多針對(duì)AutoCAD的功能。通過(guò)AutoLISP,用戶可以運(yùn)用適合于編寫圖形應(yīng)用程序的強(qiáng)大的高級(jí)語(yǔ)言來(lái)編寫宏程序和函數(shù),并開發(fā)出各種軟件包。從AutoCAD R14起,Visual LISP就被引入到AutoCAD中,它增強(qiáng)及擴(kuò)展了AutoLISP,嵌于AutoCAD內(nèi)部,是一種智能型語(yǔ)言。運(yùn)用Visual LISP可以靈活方便地增加AutoCAD的新命令,幾乎能無(wú)限地?cái)U(kuò)展AutoCAD的功能。Visual LISP沒(méi)有特殊的硬件需求,能運(yùn)行AutoCAD即可運(yùn)行Visual LISP。
本文將通過(guò)一個(gè)公路路產(chǎn)登記實(shí)例介紹Visual LISP在自動(dòng)標(biāo)注道路中、邊樁坐標(biāo)工作中的應(yīng)用,通過(guò)編寫程序來(lái)提高工作效率,避免人工重復(fù)、繁瑣的工作以及避免手工操作引起的遺漏和錯(cuò)誤。
公路路產(chǎn)登記工作中用地權(quán)屬確認(rèn)的過(guò)程往往會(huì)因多種因素經(jīng)常變更用地范圍線,如果用手工對(duì)道路中、邊樁的坐標(biāo)進(jìn)行標(biāo)注,會(huì)導(dǎo)致大量的重復(fù)工作。另外路產(chǎn)登記的公路往往是幾千米甚至十幾千米,道路中心線中樁的標(biāo)注和其用地范圍線邊樁的坐標(biāo)標(biāo)注,如果按百米來(lái)標(biāo)注,其工作量非常大。因此,通過(guò)AutoCAD二次開發(fā),運(yùn)用Visual LISP程序批量自動(dòng)處理,能很大程度提高工作效率。
本文通過(guò)某市縣道X506進(jìn)行路產(chǎn)登記的工作實(shí)例,介紹Visual LISP程序?qū)μ岣呗樊a(chǎn)登記工作效率的貢獻(xiàn)。
本程序有三個(gè)子程序,分別是自動(dòng)計(jì)算并標(biāo)注中樁號(hào)、求輔助線和用地線交點(diǎn)、用地線坐標(biāo)自動(dòng)標(biāo)注。
本子程序會(huì)生成“道路中心線”、“bak”、“道路樁號(hào)”三個(gè)圖層。將用戶選取的多線段放入“道路中心線”層并更改屬性。通過(guò)用戶輸入的標(biāo)注中樁的間距,由中心線的起點(diǎn)開始計(jì)算出中樁的坐標(biāo),并在該坐標(biāo)上標(biāo)注樁號(hào)和中樁線,并放入“道路樁號(hào)”層。子程序還做了一個(gè)為下一步做鋪墊的工作,即沿中樁線的方向作延長(zhǎng)線,與用地邊線相交,并將該輔助線放入“bak”層。
本子程序的部分代碼如下:
其中,函數(shù)a-get-Angle是中樁線角度的獲取程序。
本子程序運(yùn)行后如圖1所示,綠線為道路中心線,紅線為用地范圍線,黑線為輔助線。
圖1 自動(dòng)標(biāo)注中樁號(hào)
本子程序利用上一子程序運(yùn)行后生成的輔助線,計(jì)算其與兩邊用地范圍線的交點(diǎn)坐標(biāo),并寫入文件。這是為下一步的用地范圍線對(duì)應(yīng)中樁的邊樁進(jìn)行坐標(biāo)標(biāo)注做準(zhǔn)備。
本子程序的部分代碼如下:
本子程序利用上一子程序計(jì)算出的交點(diǎn)坐標(biāo),對(duì)用地范圍線對(duì)應(yīng)中樁的邊樁進(jìn)行坐標(biāo)標(biāo)注。程序先根據(jù)交點(diǎn)坐標(biāo)作用地線的垂線,坐標(biāo)引線是由用戶輸入字體的大小按比例畫,坐標(biāo)文字注記是按坐標(biāo)引線的方向進(jìn)行標(biāo)注。
本子程序的部分代碼如下:
圖2 成果圖
本實(shí)例最后成果如圖2所示(因篇幅原因只顯示部分圖面成果)。由于本程序標(biāo)注的坐標(biāo)是由計(jì)算得出并賦值標(biāo)注出來(lái),所以避免了人工標(biāo)注坐標(biāo)時(shí)出現(xiàn)捕捉錯(cuò)點(diǎn)位的情況。
目前,在各工程設(shè)計(jì)單位中AutoCAD已經(jīng)得到普及應(yīng)用,Visual LISP對(duì)于拓展AutoCAD的功能具有重要意義。本文通過(guò)一個(gè)公路路產(chǎn)登記實(shí)例說(shuō)明Auto-CAD的二次開發(fā)在實(shí)際工作中發(fā)揮著重要的作用,充分說(shuō)明在工程設(shè)計(jì)工作中結(jié)合本專業(yè)要求開發(fā)一定功能的Visual LISP程序可以有效降低工作人員的勞動(dòng)強(qiáng)度,從而使AutoCAD不僅僅是繪圖工具,而真正成為設(shè)計(jì)人員得心應(yīng)手的高效設(shè)計(jì)平臺(tái)。
[1]李長(zhǎng)勛.AutoCAD Visual LISP程序開發(fā)技術(shù)[M].北京:國(guó)防工業(yè)出版社,2005
[2]陳伯雄,馮偉.Visual LISP程序設(shè)計(jì)—技巧與范例[M].北京:人民郵電出版社,2002
[3]康博創(chuàng)作室.Visual LISP實(shí)用教程[M].北京:人民郵電出版社,1999
[4]湯峻.AutoCAD2000高級(jí)應(yīng)用與Visual LISP開發(fā)寶典[M].北京:人民郵電出版社,2001
[5]GB/T 20257.1-2007.1 ∶500、1 ∶1000、1 ∶2000 地形圖圖式[S]
[6]米桂杰.AutoCAD在公路路線繪圖中的應(yīng)用[J].企業(yè)技術(shù)開發(fā),2010,29(5)