• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于.NET的管線成圖系統(tǒng)的定制與開發(fā)

      2013-12-12 01:46:26侯金波李奕潔潘喜峰紀(jì)海東
      測(cè)繪通報(bào) 2013年2期
      關(guān)鍵詞:開發(fā)方式二次開發(fā)物探

      侯金波,李奕潔,潘喜峰,紀(jì)海東

      (天津市勘察院,天津300191)

      一、概 述

      管線探測(cè)工作中,管線探測(cè)的對(duì)象一般包括埋設(shè)于地下的給水、排水、熱力、工業(yè)等各種管道及電力、電信線纜等。但因地域及客戶需求不同等因素的影響,管線探測(cè)的內(nèi)容、成果提交的要求等也各不相同,目前國(guó)內(nèi)市場(chǎng)上的相關(guān)管線成圖軟件均難以滿足管線探測(cè)工作靈活多變的需求。國(guó)內(nèi)知名的管線探測(cè)單位多以某一CAD平臺(tái)為基礎(chǔ)自主定制開發(fā)地下管線成圖系統(tǒng)并取得了較好的經(jīng)濟(jì)效益和社會(huì)效益。

      CAD即計(jì)算機(jī)輔助設(shè)計(jì),是計(jì)算機(jī)技術(shù)的一個(gè)重要應(yīng)用領(lǐng)域。AutoCAD是由美國(guó)Autodesk公司開發(fā)與研究的一款通用計(jì)算機(jī)輔助繪圖與設(shè)計(jì)軟件包[1]。其開放的體系結(jié)構(gòu)允許用戶和開發(fā)者對(duì)其進(jìn)行擴(kuò)充和修改(即二次開發(fā)),能極大地滿足用戶的特殊需求。

      二、AutoCAD的二次開發(fā)方式

      AutoCAD為開發(fā)人員提供了豐富的開發(fā)工具,用戶可根據(jù)自身需求利用這些開發(fā)工具定制開發(fā)針對(duì)各自專業(yè)領(lǐng)域的應(yīng)用軟件,從而提高作業(yè)效率。AutoCAD的二次開發(fā)方式主要有以下幾種。

      1)ADS:即AutoCAD的C語(yǔ)言開發(fā)系統(tǒng),其本質(zhì)是利用C語(yǔ)言編寫AutoCAD應(yīng)用程序的頭文件和目標(biāo)庫(kù),采用結(jié)構(gòu)化編程體系、運(yùn)行速度快、適合高強(qiáng)度數(shù)據(jù)處理,其不足之處在于C語(yǔ)言熟練掌握難度高、ADS難以被發(fā)現(xiàn)的隱藏錯(cuò)誤往往造成Auto-CAD乃至整個(gè)系統(tǒng)的崩潰。

      2)AutoLISP/Visual LISP:AutoLISP是AutoCAD的內(nèi)嵌語(yǔ)言,Visual LISP是為加速AutoLISP開發(fā)而設(shè)計(jì)的軟件工具;Lisp與CAD無(wú)縫集成,控制結(jié)構(gòu)靈活多變,可調(diào)用絕大部分AutoCAD的內(nèi)置命令,且語(yǔ)法規(guī)則簡(jiǎn)單,易學(xué)易用,但是其采用解釋執(zhí)行的方式,運(yùn)行速度較慢不適于大規(guī)模大規(guī)模的密集型運(yùn)算,較差的保護(hù)機(jī)制使得源程序難以得到較好的保護(hù),它們采用表來(lái)描述一切,難以很好地反映現(xiàn)實(shí)世界和過(guò)程,并且不能直接訪問(wèn)硬件設(shè)備進(jìn)行二進(jìn)制文件的讀寫。

      3)ObjectARX/ObjectDBX:二者以C++為編程語(yǔ)言,采用面向?qū)ο蟮拈_發(fā)方式,能夠?qū)utoCAD的所有事務(wù)進(jìn)行完整的設(shè)計(jì)與開發(fā),能夠以較高的效率開發(fā)出功能強(qiáng)大、運(yùn)行速度快、集成度較高、穩(wěn)定性也較好的應(yīng)用程序,二者最大的差異表現(xiàn)在ObjectARX需要AutoCAD作為宿主程序而ObjectDBX可以基于任意的宿主程序;因ObjectARX/ObjectDBX的方式是基于C++進(jìn)行開發(fā),編程者需較好的C++功底,對(duì)編程者的個(gè)人開發(fā)能力要求較高。

      4)VBA:即將Visual Basic For Application開發(fā)環(huán)境集成在AutoCAD中,VBA通過(guò) AutoCAD ActiveX Automation接口向AutoCAD發(fā)送消息。ActiveX是Microsoft基于COM(部件對(duì)象模型體系結(jié)構(gòu))開發(fā)的一項(xiàng)技術(shù),用戶可以用它來(lái)自定義Auto-CAD與其他應(yīng)用程序共享圖形數(shù)據(jù)及自動(dòng)完成任務(wù)。在ActiveX Automation出現(xiàn)之前,開發(fā)者只能用AutoLISP或C++接口訪問(wèn) AutoCAD圖形,而 ActiveX Automation可以在多種編程環(huán)境下訪問(wèn)Auto-CAD圖形,且更易于與Microsoft Word、Microsoft Excel等Windows應(yīng)用程序共享數(shù)據(jù)。VBA開發(fā)方式與主程序間的通訊簡(jiǎn)單、高效,但是應(yīng)用VBA不能定義對(duì)象,不能向CAD注冊(cè)命令,其面向?qū)ο蟮墓δ苤С值牟皇翘?。?012以后AutoCAD的CAD版本中不再支持VBA開發(fā),轉(zhuǎn)而完全支持.NET的開發(fā)方式。

      5).NET:從 AutoCAD2006開始,Autodesk在.NET API中提供了一系列托管的外包類,使開發(fā)人員可利用任何支持.NET的語(yǔ)言,其優(yōu)點(diǎn)是完全面向?qū)ο?、方便易用、?jiǎn)單易學(xué),是理想的AutoCAD開發(fā)工具。.NET采用了垃圾回收機(jī)制,由.NET框架自行進(jìn)行內(nèi)存的回收機(jī)釋放,而不必向C++那樣自己管理內(nèi)存的申請(qǐng)和釋放。ObjectARX的各種反應(yīng)器在.NET API中由外包類映射為各種事件(E-vent),用戶通過(guò)定義事件響應(yīng)函數(shù)來(lái)響應(yīng)各種操作,對(duì)錯(cuò)誤信息的處理由返回值轉(zhuǎn)變?yōu)楫惓L幚?,更好地兼?NET。面向?qū)ο蟮木幊谭椒ㄊ沟弥婚_發(fā)方式?jīng)]有全局函數(shù)的概念,.NET API將ObjectARX下的全局函數(shù)封裝為.NET API下的某些對(duì)象或?qū)ο蟮膶傩裕鏞bjectARX下與用戶交互的系列全局函數(shù)被封裝CommandLinePrompt類。

      三、二次開發(fā)方式的比較

      目前AutoCAD二次開發(fā)主要采用后4種開發(fā)方式,相較而言,這4種二次開發(fā)方式的能力范圍基本滿足以下關(guān)系式。

      ObjectARX>.NET>LISP>ActiveX開發(fā)的難度滿足以下關(guān)系式。

      VBA<LISP<.NET<ObjectARX開發(fā)方式的能力見表1。

      表1 開發(fā)方式的能力

      四、管線成圖系統(tǒng)的定制與開發(fā)

      通過(guò)以上幾種開發(fā)方式的介紹與比較,可以看出對(duì)于管線探測(cè)單位從易學(xué)易用、滿足實(shí)際工作需要的角度來(lái)看,以.NET為基礎(chǔ)進(jìn)行管線成圖系統(tǒng)的定制與開發(fā)不失為一個(gè)良好的選擇。本文將對(duì)在AutoCAD平臺(tái)上基于.NET進(jìn)行管線成圖系統(tǒng)的定制與開發(fā)的基本流程進(jìn)行簡(jiǎn)單介紹。

      1.系統(tǒng)定制與開發(fā)的基本原則

      系統(tǒng)定制與開發(fā)的過(guò)程中除遵循軟件設(shè)計(jì)的一般原則外,根據(jù)管線探測(cè)單位的實(shí)際工作情況還需遵循以下幾點(diǎn)。

      1)科學(xué)性可靠原則:數(shù)據(jù)的管理組織、成圖編繪等應(yīng)滿足規(guī)范規(guī)定及工程實(shí)際需要,系統(tǒng)應(yīng)具有一定的糾錯(cuò)及異常處理能力。

      2)易用性原則:定制與開發(fā)的過(guò)程中應(yīng)充分考慮到操作人員的實(shí)際素質(zhì),以建立操作方便、界面友好、性能穩(wěn)定、結(jié)果直觀的易用性系統(tǒng)為目標(biāo)。

      2.成圖數(shù)據(jù)的組織與管理

      良好的數(shù)據(jù)組織是成圖系統(tǒng)性能優(yōu)良的基本保障。對(duì)于管線成圖來(lái)說(shuō),所需要的數(shù)據(jù)主要包含兩個(gè)方面,即測(cè)量數(shù)據(jù)和與之對(duì)應(yīng)的物探屬性數(shù)據(jù)。在程序設(shè)計(jì)前期,開發(fā)人員需根據(jù)需要選定存儲(chǔ)數(shù)據(jù)的載體,以及載體上測(cè)量數(shù)據(jù)和屬性數(shù)據(jù)間相互組織關(guān)聯(lián)的方式。比較常見的方式是以數(shù)據(jù)庫(kù)為載體,設(shè)計(jì)各種表以完成各種數(shù)據(jù)的存儲(chǔ),表與表之間通過(guò)特定的字段相關(guān)聯(lián)。外業(yè)所采集的測(cè)量及物探數(shù)據(jù)需經(jīng)邏輯檢查等預(yù)處理操作后轉(zhuǎn)換為成圖所需要的數(shù)據(jù)格式,經(jīng)人工輸入或自動(dòng)加載至數(shù)據(jù)載體,在載體上完美地組織在一起,完成成圖的數(shù)據(jù)準(zhǔn)備工作。

      3.成圖操作的基本流程

      程序設(shè)計(jì)過(guò)程中,成圖操作即編碼實(shí)現(xiàn)從記錄與管理測(cè)量數(shù)據(jù)及物探數(shù)據(jù)的相關(guān)載體中讀取數(shù)據(jù),在相應(yīng)的圖層上進(jìn)行繪制相關(guān)線型、符號(hào)、添加注記等。程序?qū)崿F(xiàn)的一般流程如圖1所示。

      AutoCAD允許用戶在應(yīng)用程序上添加擴(kuò)展數(shù)據(jù)或字典數(shù)據(jù)來(lái)為實(shí)體提供額外的屬性信息。在依照物探屬性及相應(yīng)的測(cè)量數(shù)據(jù)可為管線添加類型、長(zhǎng)度、埋深等屬性信息。根據(jù)管線探測(cè)數(shù)據(jù)成圖完畢后,疊加相關(guān)地形圖,經(jīng)圖形、屬性、拓?fù)潢P(guān)系等項(xiàng)目檢查無(wú)誤后即可提交成果,完成一次作業(yè)過(guò)程。

      五、應(yīng)用實(shí)例

      本文以Access數(shù)據(jù)庫(kù)作為數(shù)據(jù)載體,在Visual Studio 2008平臺(tái)上,采用C#編程語(yǔ)言利用.NET API對(duì)AutoCAD2011進(jìn)行定制與開發(fā),以滿足某一客戶提交DWG圖形文件及MDB數(shù)據(jù)庫(kù)的探測(cè)工程需求。圖2~圖8展示了定制的效果。

      圖1 管線成圖一般流程

      圖2 定制菜單

      圖3 新建工程

      圖4 數(shù)據(jù)表結(jié)構(gòu)

      圖5 工程信息錄入

      圖6 測(cè)量信息錄入

      圖7 物探信息錄入

      六、結(jié)束語(yǔ)

      通過(guò)在AutoCAD平臺(tái)上進(jìn)行二次開發(fā),定制滿足不同地域及客戶需要的管線成圖系統(tǒng),可顯著增強(qiáng)探測(cè)單位應(yīng)對(duì)不同需求的能力,有效提高其競(jìng)爭(zhēng)力。.NET API有效降低了AutoCAD二次開發(fā)的難度,是管線探測(cè)單位定制和開發(fā)管線成圖系統(tǒng)的理想方式。

      圖8 局部成圖效果

      [1]林斌,杜珺.AutoCAD2012完全自學(xué)一本通[M].北京:電子工業(yè)出版社,2011.

      [2]曾洪飛,盧擇臨,張帆.AutoCAD VBA&VB.NET開發(fā)基礎(chǔ)與實(shí)例教程[M].北京:中國(guó)電力出版社,2013.

      [3]李超,周呂,文鴻雁等.寧波市地下管線探測(cè)中應(yīng)用技術(shù)的探討[J].地理空間信息,2013,11(2):152-154.

      [4]陳光華,鄧孝應(yīng).基于Access數(shù)據(jù)庫(kù)的管線數(shù)據(jù)處理程序的設(shè)計(jì)與實(shí)現(xiàn)[J].測(cè)繪,2011(34):181-183.

      [5]呂寶奇,王瑞芳,王俊.基于AutoCAD Map 3D開發(fā)數(shù)字成圖系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].測(cè)繪與地理空間信息,2010,33(3):124-128.

      [6]曹化宇.構(gòu)建高質(zhì)量的C#代碼[M].北京:電子工業(yè)出版社,2013.

      猜你喜歡
      開發(fā)方式二次開發(fā)物探
      《石油物探》 2022年總目次
      石油物探(2022年6期)2022-12-03 08:22:42
      淺談基于Revit平臺(tái)的二次開發(fā)
      甘肅科技(2020年20期)2020-04-13 00:30:02
      淺談Mastercam后處理器的二次開發(fā)
      模具制造(2019年3期)2019-06-06 02:11:02
      西門子Easy Screen對(duì)倒棱機(jī)床界面二次開發(fā)
      數(shù)字海洋的開發(fā)方式選擇和研究
      祖國(guó)(2017年2期)2017-03-09 18:24:39
      《物探化探計(jì)算技術(shù)》2016年1~6期總要目
      車身開發(fā)中的尺寸工程技術(shù)之我見
      緬甸水資源開發(fā)方式及應(yīng)注意的問(wèn)題
      兩種物探方法在觀音巖隧道勘察中的應(yīng)用
      鐵路客站設(shè)計(jì)與綜合開發(fā)方式的研究
      四川省| 杭锦后旗| 宁津县| 绥滨县| 绥宁县| 辽中县| 宁津县| 集安市| 靖江市| 南靖县| 平远县| 昌吉市| 个旧市| 库车县| 博客| 双江| 班玛县| 阿克陶县| 军事| 亚东县| 叶城县| 蕲春县| 上高县| 都江堰市| 高台县| 六盘水市| 灵石县| 开远市| 大丰市| 宝应县| 文登市| 阿巴嘎旗| 光山县| 政和县| 龙门县| 彰化市| 五原县| 新丰县| 金门县| 镇远县| 吉安市|