摘要:本文介紹使用delphi對(duì)AutoCAD進(jìn)行二次開發(fā)應(yīng)用于工程地質(zhì)勘察圖件繪制的設(shè)計(jì)思路及實(shí)現(xiàn)方法。
關(guān)鍵詞:AutoCAD二次開發(fā) 地質(zhì)勘察 柱狀圖程序 剖面程序 Delphi
中圖分類號(hào):P62 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-3791(2011)10(c)-0000-00
AutoCAD是工程地質(zhì)勘察中最常用的二維繪圖軟件,大部分勘察圖件都在該軟件環(huán)境下繪制,AutoCAD在中國(guó)普及時(shí)間最早,應(yīng)用范圍也最寬,能收集到的資料也最多,加上AutoCAD良好的擴(kuò)展性,為其二次開發(fā)應(yīng)用于特定環(huán)境打下良好基礎(chǔ)。AutoCAD下的二次開發(fā)方式也很多,有AutoCAD內(nèi)置的Lisp、ARX、VBA等,也可使用高級(jí)編程語(yǔ)言開發(fā)軟件通過ActiveX接口控制AutoCAD的方式。不管用哪種方式進(jìn)行二次開發(fā),對(duì)于一線員工來說,操控簡(jiǎn)單明了、數(shù)據(jù)共享、提高工作效率、能最大程度實(shí)現(xiàn)繪圖自動(dòng)化的軟件是最受歡迎的。
工程地質(zhì)勘察行業(yè)需要的各種勘察圖件較多,但最主要和基本的圖件有平面地質(zhì)圖、工程地質(zhì)剖面圖、鉆孔柱狀圖,而鉆孔柱狀圖和地質(zhì)剖面圖又常常是數(shù)量最多且費(fèi)時(shí)費(fèi)力最多的圖件,一線員工在勘察過程中時(shí)需要及時(shí)制作這些圖件以供分析比較,為設(shè)計(jì)提供依據(jù),并為勘察報(bào)告提供相應(yīng)數(shù)據(jù),本文探討利用計(jì)算機(jī)信息技術(shù)及數(shù)據(jù)庫(kù)技術(shù)結(jié)合AutoCAD二次開發(fā)相應(yīng)程序提高工作效率降低工作強(qiáng)度。
1 設(shè)計(jì)思路:
根據(jù)一線勘察工作流程及需提供的成果整理設(shè)計(jì)思路如圖:
設(shè)計(jì)流程圖
1.1 數(shù)據(jù)錄入程序――數(shù)據(jù)庫(kù)技術(shù)
數(shù)據(jù)錄入程序基于信息及數(shù)據(jù)共享的原則。我們知道,鉆孔數(shù)據(jù)是地質(zhì)勘察中最基本的數(shù)據(jù)之一,是繪制剖面圖及進(jìn)行工程評(píng)價(jià)的基礎(chǔ)。我們第一目標(biāo)就是要將鉆孔數(shù)據(jù)進(jìn)行數(shù)字化,利用數(shù)據(jù)庫(kù)技術(shù),將鉆孔的各種數(shù)據(jù)錄入到數(shù)據(jù)庫(kù)中,以供給后續(xù)工作分析使用。鉆孔柱狀圖、工程地質(zhì)剖面圖等圖件的繪制將依賴于這些數(shù)據(jù)庫(kù),包括編制勘察報(bào)告時(shí)需要的統(tǒng)計(jì)數(shù)據(jù)也都使用該數(shù)據(jù)庫(kù)。
1.2 圖件繪制程序――AutoCAD的二次開發(fā)
鉆孔柱狀圖、地質(zhì)剖面圖是勘察成果的最終展現(xiàn),一般要求提供AutoCAD的DWG格式的圖件。我們用delphi等編程軟件編寫程序,讀取數(shù)據(jù)庫(kù)及地質(zhì)平面圖中的數(shù)據(jù)控制AutoCAD自動(dòng)繪制鉆孔柱狀圖及剖面圖,將地質(zhì)人員的主要精力放在數(shù)據(jù)分析上而非一點(diǎn)一畫的去繪圖。
1.3 統(tǒng)計(jì)分析程序
因?yàn)殂@孔數(shù)據(jù)已存在于數(shù)據(jù)庫(kù)中,在編制勘察報(bào)告時(shí)需要的統(tǒng)計(jì)數(shù)據(jù)可以通過程序從數(shù)據(jù)庫(kù)中讀出并進(jìn)行統(tǒng)計(jì)分析計(jì)算。
2 實(shí)現(xiàn)過程:
2.1 數(shù)據(jù)錄入
為方便用戶及減小程序開發(fā)與維護(hù)難度,我們將數(shù)據(jù)采集與鉆孔柱狀圖繪制程序集成在一起,并使用操作系統(tǒng)Windows自帶的數(shù)據(jù)庫(kù)驅(qū)動(dòng),以Access為數(shù)據(jù)庫(kù)后臺(tái),采用delphi編寫程序進(jìn)行鉆孔數(shù)據(jù)錄入。在數(shù)據(jù)錄入過程中集成對(duì)原始數(shù)據(jù)進(jìn)行計(jì)算處理的功能,如壓水試驗(yàn)計(jì)算、注水試驗(yàn)計(jì)算、動(dòng)力觸探校正等,進(jìn)一步方便用戶的使用。
2.2 圖件繪制
為避免AutoCAD版本升級(jí)而影響程序的使用,我們采用高級(jí)編程軟件編寫程序通過ActiveX接口控制AutoCAD繪制圖件,分三步實(shí)現(xiàn)目的:
鏈接AutoCAD:調(diào)用函數(shù)GetActiveOleObject('AutoCAD.Application')可以獲得已啟動(dòng)的AutoCAD的實(shí)例,如果沒有已啟動(dòng)的AutoCAD實(shí)例則用函數(shù)CreateOleObject('AutoCAD.Application')創(chuàng)建一個(gè)AutoCAD的實(shí)例。此處參數(shù)'AutoCAD.Application'與AutoCAD版本無(wú)關(guān),如要啟動(dòng)特定版本的AutoCAD,則需在參數(shù)后加上版本號(hào),如創(chuàng)建一個(gè)AutoCAD2008的實(shí)例,則需將參數(shù)改為'AutoCAD.Application.17.1'。
讀取鉆孔數(shù)據(jù)庫(kù):前面的數(shù)據(jù)錄入程序已將各種原始數(shù)據(jù)錄入并處理后存放在鉆孔數(shù)據(jù)庫(kù)中,此步只需根據(jù)繪圖需要從數(shù)據(jù)庫(kù)中讀取相應(yīng)數(shù)據(jù)并轉(zhuǎn)換成適合AutoCAD處理的數(shù)據(jù)。
控制AutoCAD繪圖:此步即通過ActiveX接口調(diào)用AutoCAD的圖元對(duì)象繪制方法來生成圖形,我們將創(chuàng)建主要AutoCAD對(duì)象的代碼封裝成子程序或函數(shù)方便程序調(diào)用。
鉆孔柱狀圖的繪制與鉆孔數(shù)據(jù)錄入程序集成在一起,數(shù)據(jù)錄入完成即可調(diào)用AutoCAD繪制柱狀圖。
在剖面繪制程序中需通過AutoCAD讀取地形地質(zhì)圖中的等高線數(shù)據(jù)及地質(zhì)內(nèi)容數(shù)據(jù)進(jìn)行繪圖,涉及到如下AutoCAD圖元方法和屬性:
方法selectSet.SelectOnScreen(filtert