解析AutoCAD軟件道路斷面圖繪制技術(shù)論文
1 CAD常見(jiàn)的二次開(kāi)發(fā)手段
CAD 軟件二次開(kāi)發(fā)是指在現(xiàn)有的軟件基礎(chǔ)上,各用戶(hù)為提高軟件的使用效率,讓軟件更加貼合用戶(hù)的實(shí)際需求,而進(jìn)行功能定制化的開(kāi)發(fā)工作。其主要目的是為讓CAD 軟件的功能最大化利用起來(lái),實(shí)現(xiàn)用戶(hù)的個(gè)性化需求。CAD 軟件為用戶(hù)提供的常見(jiàn)二次開(kāi)發(fā)手段有以下幾種:
1) 函數(shù)庫(kù)形式,主要是利用CAD 提供的編程環(huán)境和基于函數(shù)庫(kù)的API 接口,用戶(hù)通過(guò)編寫(xiě)程序來(lái)實(shí)現(xiàn)對(duì)AutoCAD 開(kāi)發(fā)的方法,可實(shí)現(xiàn)在無(wú)CAD 環(huán)境下運(yùn)行,但該法具有一定的局限性,無(wú)法充分發(fā)揮CAD 的系統(tǒng)性能。另外,可以實(shí)現(xiàn)界面定制,擴(kuò)充CAD功能,但只能在CAD 系統(tǒng)內(nèi)運(yùn)行。
2) ActiveX Automation 形式,它是建立在COM 基礎(chǔ)之上,由OLE Automation 發(fā)展而來(lái)的,其核心技術(shù)是允許一個(gè)應(yīng)用程序操作另一個(gè)應(yīng)用程序,是一種比較成熟方便且實(shí)用的技術(shù),在實(shí)際開(kāi)發(fā)中得到了廣泛的運(yùn)用。
2 CAD 開(kāi)發(fā)模式
AutoCAD 公司為了滿(mǎn)足廣大用戶(hù)對(duì)軟件功能的定制功能要求,針對(duì)各類(lèi)客戶(hù)的需求提供了多種形式的二次開(kāi)發(fā)工具,如AutoLISP,VBA,Object ARX 等開(kāi)發(fā)工具。用戶(hù)可根據(jù)自己的實(shí)際情況選擇合適的開(kāi)發(fā)工具進(jìn)行二次開(kāi)發(fā),以滿(mǎn)足設(shè)計(jì)生產(chǎn)的需要,實(shí)現(xiàn)圖形繪制的快速化提高工作效率。針對(duì)道路勘測(cè)階段對(duì)設(shè)計(jì)的重要性,確保斷面圖繪制的快速和高效十分必要。下面介紹幾種常用的二次開(kāi)發(fā)模式,并結(jié)合測(cè)繪行業(yè)的需求特點(diǎn)進(jìn)行總結(jié)。
1) VBA( Visual Basic for Applications) 開(kāi)發(fā)模式,它被集成到AutoCAD 2000 中,打通了用戶(hù)訪問(wèn)CAD 中豐富技術(shù)框架的全新通道。VBA 可用通過(guò)ActiveX 接口實(shí)現(xiàn)與CAD 的通信,并能夠訪問(wèn)和控制CAD 所有圖形對(duì)象和非圖形對(duì)象,包括這些對(duì)象的方法和屬性等。由于VBA 是由VB 發(fā)展而來(lái),都是面向?qū)ο缶幊蹋c其他程序語(yǔ)言相比,具有更簡(jiǎn)單,更易學(xué)等特點(diǎn)。因此,在測(cè)繪行業(yè)內(nèi)運(yùn)用較為廣泛,二次開(kāi)發(fā)的測(cè)繪案例較多。但VBA 開(kāi)發(fā)具有交互性差,不能直接編譯等缺點(diǎn)。
2) Object ARX 開(kāi)發(fā)模式,Object ARX 是Autodesk 公司針對(duì)AutoCAD 平臺(tái)上的二次開(kāi)發(fā)而推出的一個(gè)開(kāi)發(fā)軟件包,它提供了以C + + 為基礎(chǔ)的面向?qū)ο蟮拈_(kāi)發(fā)環(huán)境及應(yīng)用程序接口,能真正快速的訪問(wèn)AutoCAD 圖形數(shù)據(jù)庫(kù)。與以往的AutoCAD 二次開(kāi)發(fā)工具Auto LISP 和ADS 不同,Object ARX 應(yīng)用程序是一個(gè)DLL( 動(dòng)態(tài)鏈接庫(kù)) ,共享AutoCAD 的地址空間,對(duì)AutoCAD 進(jìn)行直接函數(shù)調(diào)用。所以使用ARX 編程的函數(shù)的執(zhí)行速度得以大大提高。
ARX 類(lèi)庫(kù)采用了標(biāo)準(zhǔn)的C + + 類(lèi)庫(kù)的封裝形式,這也大大提高了程序員編程的可靠度和效率。通過(guò)ARX 定義的外部命令,可以像CAD 內(nèi)部命令一樣執(zhí)行,LISP 所調(diào)用,具有可封裝性、可繼承性、多態(tài)性等特點(diǎn)。因此,廣泛被專(zhuān)業(yè)軟件開(kāi)發(fā)公司用于模塊定制與升級(jí)等商業(yè)開(kāi)發(fā)。但只有具備了相關(guān)專(zhuān)業(yè)軟件開(kāi)發(fā)知識(shí)和系統(tǒng)的學(xué)習(xí)才能掌握這一開(kāi)發(fā)技術(shù),對(duì)于普通測(cè)繪工作者來(lái)講具有相當(dāng)大的難度。
3) Auto LISP 開(kāi)發(fā)模式,LISP 語(yǔ)言是一種針對(duì)擴(kuò)充及自訂AutoCAD函數(shù)機(jī)能而產(chǎn)生的,它擅于處理串行文字,于20 世紀(jì)50 年代末期出現(xiàn)。隨著Autodesk 公司不斷改進(jìn),推出了新的版本VisualLISP( VLISP) ,它是Auto LISP 的換代版本,與老式LISP 語(yǔ)言相比,具有更加快速便捷的優(yōu)點(diǎn)。本身提供了一個(gè)完整的開(kāi)發(fā)環(huán)境,擁有一個(gè)交互式的編譯平臺(tái),使用戶(hù)在編寫(xiě)程序時(shí)更加便捷高效。作為通用LISP 語(yǔ)言小子集,它為用戶(hù)提供了眾多的功能函數(shù),用戶(hù)只需直接調(diào)用函數(shù)即可實(shí)現(xiàn)大部分的CAD 圖形繪制功能,編寫(xiě)時(shí)按照其語(yǔ)法慣例和規(guī)則,即可實(shí)現(xiàn)靈活的程序開(kāi)發(fā)。另外,VLISP 還提供了用于發(fā)布獨(dú)立應(yīng)用程序的工具,保障了程序的安全性和密封性;赩LISP 開(kāi)發(fā)出的應(yīng)用程序具有相對(duì)獨(dú)立性的特點(diǎn),與Object ARX 應(yīng)用程序共享CAD 地址空間不同,當(dāng)程序運(yùn)行一旦出現(xiàn)錯(cuò)誤或失敗等問(wèn)題,不會(huì)對(duì)CAD 自身進(jìn)程造成影響。加之具有開(kāi)發(fā)周期短,語(yǔ)言簡(jiǎn)單易學(xué),十分受廣大測(cè)繪工作者的歡迎,尤其是程序開(kāi)發(fā)的初學(xué)者。
3 道路斷面繪制程序開(kāi)發(fā)
測(cè)繪行業(yè)與設(shè)計(jì)行業(yè)的聯(lián)系十分緊密,基于CAD 在設(shè)計(jì)行業(yè)的廣泛應(yīng)用,CAD 對(duì)于測(cè)繪行業(yè)人員來(lái)說(shuō)十分重要。尤其是在勘測(cè)單位,地形圖與道路斷面數(shù)據(jù)是設(shè)計(jì)的基礎(chǔ)性數(shù)據(jù)。道路的縱橫斷面圖主要是由外業(yè)采集的地面線組成,各斷面按照樁號(hào)的大小一一對(duì)應(yīng),斷面形態(tài)直接反映現(xiàn)場(chǎng)道路走向的地形變化情況。為了能夠準(zhǔn)確反映出現(xiàn)場(chǎng)的'地形狀況,在斷面采集時(shí),除了對(duì)整數(shù)樁號(hào)( 一般整20 m) 的斷面進(jìn)行采集外,還需要對(duì)地形起伏較大的地段進(jìn)行一定加樁,這樣造成經(jīng)過(guò)不同地形的斷面數(shù)量差距往往很大。由于每個(gè)斷面的數(shù)據(jù)都不一樣,要完成一個(gè)道路勘測(cè)項(xiàng)目的斷面繪制內(nèi)業(yè)任務(wù)將十分繁重。
3. 1 開(kāi)發(fā)工具的選擇
針對(duì)斷面圖繪制開(kāi)發(fā)自動(dòng)化繪制程序十分必要,根據(jù)上述CAD 提供的幾種開(kāi)發(fā)模式優(yōu)缺點(diǎn),結(jié)合道路斷面圖繪制的特點(diǎn),本文認(rèn)為采用VLISP 和VBA 的開(kāi)發(fā)工具進(jìn)行二次開(kāi)發(fā)具有優(yōu)勢(shì)。主要原因有兩個(gè):
1) 根據(jù)測(cè)繪行業(yè)自身屬于基礎(chǔ)服務(wù)性的特點(diǎn),尤其是在勘測(cè)領(lǐng)域,主要任務(wù)是提供基礎(chǔ)數(shù)據(jù),功能相對(duì)單一,這就決定了不需要大型的專(zhuān)業(yè)程序,在道路斷面繪制程序上更是如此,要求程序具備按照規(guī)范要求能夠自動(dòng)化完成斷面圖繪制即可。
2) 測(cè)繪從業(yè)者大多沒(méi)有接受過(guò)專(zhuān)業(yè)的軟件開(kāi)發(fā)培訓(xùn),尤其是在一線的測(cè)量人員,Object ARX 的開(kāi)發(fā)模式往往需要更系統(tǒng)的軟件開(kāi)發(fā)知識(shí)儲(chǔ)備,VBA 和VLISP 的開(kāi)發(fā)工具更為簡(jiǎn)單,語(yǔ)言基礎(chǔ)要求較低,通過(guò)自學(xué)即可掌握相關(guān)的開(kāi)發(fā)技術(shù)。
3. 2 技術(shù)要點(diǎn)分析
雖然根據(jù)工程性質(zhì)的不同,對(duì)斷面圖繪制要求會(huì)有所不同,但在基本框架和整體要求上基本一致,原理性的東西并沒(méi)有變,通常一個(gè)完整的斷面圖包括: 坐標(biāo)軸、斷面線、基本坐標(biāo)格網(wǎng)、輔助坐標(biāo)格網(wǎng)、比例尺、工程信息等內(nèi)容。按照規(guī)范規(guī)定,線路縱斷面采用直角坐標(biāo)法繪制,以里程為橫坐標(biāo),以高程為縱坐標(biāo)。里程比例尺常采用1∶ 2 000 和1∶ 1 000,為突出地形起伏,高程比例尺通常為里程比例尺的10 倍~ 20 倍。橫斷面一般選在里程樁和線路橫向地形變化明顯處,在大中小橋頭、隧道洞口等地適當(dāng)加密,線路的縱橫比例尺一般采用1∶ 100 或1∶ 200。在CAD 平臺(tái)下繪制時(shí)首先是要建立相應(yīng)的圖層,分別用不同顏色和線型加以區(qū)分,以便于用戶(hù)對(duì)斷面線、格網(wǎng)線、圖框線等信息判斷。然后是建立相應(yīng)的圖框和格網(wǎng),格網(wǎng)的作用是為了方便用戶(hù)能夠在圖紙上直接量取斷面的距離和高程信息。接著就是要將項(xiàng)目的基本信息進(jìn)行錄入,主要是項(xiàng)目的人員信息和單位信息。最后,要完成斷面線的繪制,將地面特征點(diǎn)逐一展現(xiàn)在圖上并連線,即繪出斷面圖。
斷面圖繪制程序設(shè)計(jì)主要技術(shù)難點(diǎn)在于如何根據(jù)地面特征點(diǎn)高程的變化來(lái)確保合理容納適量的斷面線。因?yàn),通常一張斷面圖只能容納有限的斷面線,要確保斷面線既不超出圖框范圍又不造成空間浪費(fèi),需要采取合理的算法來(lái)進(jìn)行約束。根據(jù)本文的研究和實(shí)驗(yàn),可采用計(jì)算每個(gè)斷面最大高差的形式來(lái)確定每條斷面的占用空間,這樣就可準(zhǔn)確計(jì)算出各斷面圖容納的斷面梳理。
4 結(jié)語(yǔ)
道路斷面圖繪制是道路勘測(cè)的基本任務(wù),目前對(duì)斷面圖繪制程序的開(kāi)發(fā)案例也比較多,但多數(shù)只局限于單位的內(nèi)部利用,各單位開(kāi)發(fā)的繪圖程序只針對(duì)本單位所涉及的業(yè)務(wù)種類(lèi),并不具有通用性,如何開(kāi)發(fā)出具通用性的繪圖程序?qū)⑹侨蘸蟮囊粋(gè)方向。作者也在積極做這方面的嘗試,嘗試用C# 語(yǔ)言和腳本技術(shù)結(jié)合的方法進(jìn)行程序開(kāi)發(fā),使得程序功能更加完善,能夠脫離CAD 環(huán)境運(yùn)行,已有初步成果,將在日后的論文中發(fā)表。
【解析AutoCAD軟件道路斷面圖繪制技術(shù)論文】相關(guān)文章:
軟件技術(shù)專(zhuān)業(yè)論文致謝(通用8篇)04-20
道路設(shè)計(jì)論文致謝04-20
軟件技術(shù)專(zhuān)業(yè)怎么樣03-18
軟件工程論文開(kāi)題報(bào)告01-25