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