陳立強(qiáng)
(中冶集團(tuán)銅鋅有限公司,100028 北京)
基于AutoCAD平臺(tái)的信息技術(shù)在露天礦的開(kāi)發(fā)應(yīng)用
陳立強(qiáng)
(中冶集團(tuán)銅鋅有限公司,100028 北京)
工程中大量的實(shí)體對(duì)象基本都是以AutoCAD圖紙的形式表現(xiàn)出來(lái),露天礦開(kāi)采也不例外,AutoCAD電子版圖紙可以靈活、詳細(xì)地表現(xiàn)和編輯工程實(shí)體對(duì)象的各項(xiàng)內(nèi)容,在生產(chǎn)過(guò)程中有著無(wú)可替代的作用。但AutoCAD的缺點(diǎn)也是明顯的:不能對(duì)圖形中大量數(shù)據(jù)信息進(jìn)行處理。如何利用AutoCAD天然的優(yōu)勢(shì)在AutoCAD平臺(tái)上實(shí)現(xiàn)生產(chǎn)管理功能,就是要借助AutoCAD鏈接外部數(shù)據(jù)庫(kù)和其他應(yīng)用程序,利用它們的數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)查詢(xún)、數(shù)據(jù)處理及數(shù)據(jù)交換的能力,彌補(bǔ)AutoCAD的缺點(diǎn),使圖形具備智能化。利用AutoCAD平臺(tái)下的數(shù)據(jù)庫(kù)鏈接功能Dbconnect,通過(guò)ActiveX Data Object(ADO)外部數(shù)據(jù)通信技術(shù)和Connectivity Automation Objects(CAO)對(duì)象數(shù)據(jù)庫(kù)鏈接技術(shù),結(jié)合服務(wù)器型數(shù)據(jù)庫(kù)SQL的多條件查詢(xún)、存儲(chǔ)數(shù)據(jù)功能和EXCEL的快捷方便的數(shù)據(jù)處理能力,編制AutoCAD VBA二次開(kāi)發(fā)程序,實(shí)現(xiàn)了某露天礦生產(chǎn)工藝的信息化管理。
AutoCAD VBA Excel VBA SQL ADO CAO 露天礦 生產(chǎn)管理
某露天銅金礦在達(dá)產(chǎn)達(dá)標(biāo)持續(xù)穩(wěn)產(chǎn)的10多年來(lái),露天開(kāi)采逐步進(jìn)入后期,開(kāi)采技術(shù)條件逐漸惡化。如何在現(xiàn)有條件下,把礦山生產(chǎn)的各種可變要素有機(jī)組織起來(lái),確保生產(chǎn)管理的廣度和深度是非常有意義的課題。
工程中大量的實(shí)體對(duì)象均是以AutoCAD的圖紙形式表現(xiàn)出來(lái),露天開(kāi)采也不例外,AutoCAD電子版圖紙可以靈活、詳細(xì)地表現(xiàn)和編輯實(shí)體工程的各項(xiàng)內(nèi)容,但AutoCAD的缺點(diǎn)也是明顯的:不能對(duì)圖形中大量數(shù)據(jù)信息進(jìn)行處理。如何利用AutoCAD天然的優(yōu)勢(shì)同時(shí)彌補(bǔ)不足,必須借助AutoCAD鏈接外部數(shù)據(jù)庫(kù)和與其他應(yīng)用程序數(shù)據(jù)處理、交換的能力,即利用AutoCAD平臺(tái)下的數(shù)據(jù)庫(kù)鏈接功能Dbconnect,通過(guò)ActiveX Data Object(ADO)外部數(shù)據(jù)通信技術(shù)和Connectivity Automation Objects(CAO)對(duì)象數(shù)據(jù)庫(kù)鏈接技術(shù),結(jié)合服務(wù)器型數(shù)據(jù)庫(kù)SQL的多條件查詢(xún)、存儲(chǔ)數(shù)據(jù)功能和EXCEL的快捷、方便、強(qiáng)大的數(shù)據(jù)處理能力。通過(guò)這種組合,編制AutoCAD VBA二次開(kāi)發(fā)程序,融合現(xiàn)有成熟的生產(chǎn)工藝要素,就可以形成在AutoCAD下的綜合生產(chǎn)管理平臺(tái)指導(dǎo)生產(chǎn)。
在AutoCAD平臺(tái)上實(shí)現(xiàn)生產(chǎn)管理功能,就是要使圖形具備智能化。一個(gè)使圖形智能化的方法是通過(guò)鏈接圖形對(duì)象到外部數(shù)據(jù)庫(kù)表中的相應(yīng)行來(lái)擴(kuò)展圖形數(shù)據(jù)庫(kù)。利用AutoCAD平臺(tái)下的數(shù)據(jù)庫(kù)鏈接功能Dbconnect,對(duì)一個(gè)地質(zhì)孔樣點(diǎn)對(duì)象可以鏈接包含生產(chǎn)配礦的數(shù)據(jù)表記錄和地質(zhì)孔樣數(shù)據(jù)表的記錄,選擇地質(zhì)孔樣點(diǎn)對(duì)象可以自動(dòng)顯示對(duì)應(yīng)的數(shù)據(jù)表記錄,同樣選擇數(shù)據(jù)表行記錄,也可以自動(dòng)顯示地質(zhì)孔樣點(diǎn)對(duì)象,平臺(tái)機(jī)理見(jiàn)圖1。通過(guò)建立這種類(lèi)似地理信息系統(tǒng)的功能就可以實(shí)現(xiàn)生產(chǎn)的智能化調(diào)度管理。
圖1 AutoCAD VBA下二次開(kāi)發(fā)生產(chǎn)管理平臺(tái)的機(jī)理
要達(dá)到上述功能,主要須解決外部數(shù)據(jù)庫(kù)和數(shù)據(jù)表的建立、數(shù)據(jù)表與AutoCAD對(duì)象鏈接以及數(shù)據(jù)的交換處理這3方面的問(wèn)題。
1.1 外部數(shù)據(jù)庫(kù)的連接和相關(guān)數(shù)據(jù)表的建立
AutoCAD是通過(guò)數(shù)據(jù)源的形式間接管理外部數(shù)據(jù)庫(kù),因此首先必須在其他平臺(tái)如SQL或者Excel VBA下事先建立數(shù)據(jù)庫(kù),然后在AutoCAD Dbconnect模式下對(duì)應(yīng)相關(guān)數(shù)據(jù)庫(kù)形成數(shù)據(jù)源,最后在VBA程序內(nèi)實(shí)現(xiàn)AutoCAD與外部數(shù)據(jù)庫(kù)的連接。本研究中,AutoCAD連接的外部數(shù)據(jù)庫(kù)選擇SQL Server 2008服務(wù)器型數(shù)據(jù)庫(kù)。
SQL所具備的多條件查詢(xún)、存儲(chǔ)數(shù)據(jù)功能及安全優(yōu)勢(shì)使得許多工作非常簡(jiǎn)潔,它是現(xiàn)代礦山信息技術(shù)的核心。
(1) 外部數(shù)據(jù)庫(kù)連接。
wspath=ThisDrawing.Application.Preferences.Files.WorkspacePath ′數(shù)據(jù)源UDL文件位置
constring=“file name=” & wspath & “” & “*.udl”
Dim db As New ADODB.Connection ′定義ADO數(shù)據(jù)庫(kù)鏈接對(duì)象
db.Open constring,userID,password ′ 鏈接外部數(shù)據(jù)庫(kù)
(2)主要數(shù)據(jù)如表1、表2所示。AutoCAD VBA模式下采集獲得地質(zhì)孔樣數(shù)據(jù)表,通過(guò)Excel VBA編制Excel日常生產(chǎn)配礦管理平臺(tái)生成生產(chǎn)配礦數(shù)據(jù)表(本文不做介紹)。
表1 地質(zhì)孔樣數(shù)據(jù)
表2 生產(chǎn)配礦數(shù)據(jù)
1.2 數(shù)據(jù)表與AutoCAD對(duì)象鏈接
數(shù)據(jù)表與AutoCAD對(duì)象的鏈接屬于連接對(duì)象自動(dòng)化,即CAO對(duì)象模型的技術(shù)內(nèi)容。早先版本(AutoCAD 2000)與目前主流版本(本研究采用AutoCAD 2010)CAO對(duì)象模型涉及的對(duì)象、方法、屬性有較大出入。
CAD對(duì)象與數(shù)據(jù)表的鏈接特點(diǎn):
(1)首先需要在AutoCAD Dbconnect模式下建立依托對(duì)應(yīng)數(shù)據(jù)表的鏈接模板,鏈接模板可以理解為CAD對(duì)象的數(shù)據(jù)表,鏈接模板需設(shè)置關(guān)鍵字且關(guān)鍵字不得超過(guò)2個(gè),超過(guò)2個(gè)關(guān)鍵字會(huì)導(dǎo)致CAD對(duì)象與數(shù)據(jù)表的鏈接失敗。其中,在生產(chǎn)配礦Link1鏈接模板中設(shè)置作業(yè)平臺(tái)和孔號(hào)為關(guān)鍵值,地質(zhì)孔樣Link1設(shè)置孔號(hào)和坐標(biāo)Z為關(guān)鍵值。
(2)CAD對(duì)象可以同時(shí)鏈接單個(gè)數(shù)據(jù)表多個(gè)記錄,也可以鏈接不同數(shù)據(jù)表的多個(gè)記錄。
Dim keys As New CAO.KeyValues
′定義關(guān)鍵值
Dim objlink As CAO.Link
′定義鏈接
Dim linkt As CAO.LinkTemplate
′定義鏈接模板
Dim rsgradeblend As New ADODB.Recordset
′定義生產(chǎn)配礦記錄集
keys.Clear
′清空關(guān)鍵值
keys.Add rsgradeblend.Fields(0).Name,_
rsgradeblend.Fields(0).Value
′設(shè)置日期關(guān)鍵值
keys.Add rsgradeblend.Fields(2).Name,_
rsgradeblend.Fields(2).Value
′設(shè)置作業(yè)平臺(tái)關(guān)鍵值
Set objlink = linkt.CreateLink(objentity.ObjectID,keys)
′對(duì)象與生產(chǎn)配礦數(shù)據(jù)表鏈接
(3)通過(guò)數(shù)據(jù)視圖中“自動(dòng)查看圖形中鏈接對(duì)象”和“自動(dòng)查看數(shù)據(jù)視圖中鏈接記錄”2種模式查看生產(chǎn)作業(yè)信息。
1.3 數(shù)據(jù)的處理和交換以及重要數(shù)據(jù)保存
AutoCAD VBA并沒(méi)有提供對(duì)于數(shù)據(jù)的深度處理,如牽涉一些基本的諸如排序等算法模塊或者各類(lèi)工程應(yīng)用類(lèi)函數(shù),而SQL數(shù)據(jù)庫(kù)自身也是以查詢(xún)和存儲(chǔ)數(shù)據(jù)為主要功能,這就需要一個(gè)單獨(dú)的平臺(tái)進(jìn)行數(shù)據(jù)處理。另外SQL數(shù)據(jù)庫(kù)與AutoCAD之間的數(shù)據(jù)交換和重要信息的存儲(chǔ)同樣需要一個(gè)平臺(tái)。要實(shí)現(xiàn)這些功能,Excel是最佳選擇。Excel以其強(qiáng)大的電子表格功能、全面的函數(shù)應(yīng)用、豐富的圖表以及與外部程序良好的交互能力著稱(chēng)。通過(guò)Excel VBA調(diào)用Excel強(qiáng)大的數(shù)據(jù)處理能力和計(jì)算分析功能可以使這些問(wèn)題非常容易解決。同時(shí)Excel天然的編輯、存儲(chǔ)數(shù)據(jù)和加密功能,也使得它最適合作為編輯外部數(shù)據(jù)庫(kù)和存儲(chǔ)重要數(shù)據(jù)的平臺(tái)。
Excel下實(shí)現(xiàn)主要功能如下:①Excel VBA編制形成日常生產(chǎn)配礦管理平臺(tái),通過(guò)控制外部數(shù)據(jù)庫(kù),形成生產(chǎn)配礦數(shù)據(jù)表;②Excel VBA編制形成加密的數(shù)據(jù)庫(kù)管理平臺(tái),通過(guò)AutoCAD平臺(tái)登陸后,可創(chuàng)建數(shù)據(jù)庫(kù)及各類(lèi)數(shù)據(jù)表,可對(duì)各類(lèi)數(shù)據(jù)表進(jìn)行添加、刪除、更新及查看等功能;③在AutoCAD內(nèi)采集地質(zhì)孔樣數(shù)據(jù)存儲(chǔ)入SQL數(shù)據(jù)庫(kù)之間充當(dāng)數(shù)據(jù)處理和交換的工作;④對(duì)AutoCAD管理平臺(tái)加載時(shí)所用到的個(gè)人登錄信息、數(shù)據(jù)庫(kù)登陸信息等重要內(nèi)容加密存儲(chǔ)。
AutoCAD VBA下調(diào)用EXCEL的程序主要步驟如下:
With ThisDrawing
Set .excelapplication = GetObject(,“Excel.Application”)
′獲得EXCEL對(duì)象
Set .excelworkbook = .excelapplication.Workbooks(strname)
′定義初始工作簿
.excelapplication.Workbooks.Open _
UserForm7.TextBox1.Value & strname,,,,Password:=“********”
′打開(kāi)加密工作簿
.excelapplication.Workbooks.Open UserForm7.TextBox1.Value & strname
′打開(kāi)普通工作簿
.excelapplication.visible = visible
′設(shè)置工作簿顯示狀態(tài)
Set .excelworksheet = .excelworkbook.Worksheets(1)
′定義初始工作表
End With
管理平臺(tái)涉及的數(shù)據(jù)表主要為地質(zhì)孔樣、生產(chǎn)配礦數(shù)據(jù)表。生產(chǎn)配礦數(shù)據(jù)表是以Excel VBA編制生產(chǎn)配礦平臺(tái),在日常生產(chǎn)作業(yè)中記錄形成。本文主要論述生產(chǎn)配礦數(shù)據(jù)表與AutoCAD對(duì)象的鏈接和地質(zhì)孔樣數(shù)據(jù)表是在AutoCAD圖形中生成和與點(diǎn)對(duì)象的鏈接。2.1地質(zhì)孔樣數(shù)據(jù)表的創(chuàng)建及與地質(zhì)孔樣點(diǎn)的鏈接
2.1.1 地質(zhì)孔樣數(shù)據(jù)表的創(chuàng)建
一個(gè)典型地質(zhì)孔樣如圖2所示,要將圖2的信息提取成如表1所示的數(shù)據(jù)表形式,首先要繪制多段線(xiàn)形成選擇區(qū)域,然后區(qū)域內(nèi)選擇點(diǎn)對(duì)象,由點(diǎn)對(duì)象選擇點(diǎn)所包含的孔號(hào)、坐標(biāo)、品位等信息,最后將此信息寫(xiě)入數(shù)據(jù)表并建立其與地質(zhì)孔樣點(diǎn)的鏈接。完成上述功能,主要需要解決文字的選擇和文字的處理及文字寫(xiě)入SQL數(shù)據(jù)庫(kù)3個(gè)問(wèn)題。
圖2 地質(zhì)孔樣圖
2.1.1.1 文字的選擇
AutoCAD下對(duì)象的選擇是通過(guò)建立選擇集,然后使用選擇集過(guò)濾器(即選擇條件)以特定方法將符合條件的對(duì)象存入選擇集。選擇對(duì)象時(shí),對(duì)象必須在顯示屏幕范圍之內(nèi),超出范圍選擇為空集。實(shí)際使用中,即便所有CAD對(duì)象均在顯示范圍內(nèi),依舊會(huì)出現(xiàn)選擇為空的現(xiàn)象,而且顯示屏幕范圍之內(nèi)存在大量的CAD對(duì)象導(dǎo)致程序運(yùn)行速度較慢。解決這個(gè)問(wèn)題可行的方法就是在屏幕范圍內(nèi)實(shí)時(shí)顯示選擇對(duì)象,這樣就可以避免選擇為空和程序執(zhí)行速度異常的情況。
以下程序?qū)崿F(xiàn)屏幕實(shí)時(shí)顯示選擇對(duì)象(點(diǎn)point1和點(diǎn)point2位置見(jiàn)圖2所示):
point1(0)= pointentity.Coordinates(0)+ 0.75
′獲得點(diǎn)point1的坐標(biāo)
point1(1)= pointentity.Coordinates(1)- 1.72
′pointentity為點(diǎn)對(duì)象
point1(2)= pointentity.Coordinates(2)
point2(0)= point1(0)+ 2.9
′獲得點(diǎn)point2的坐標(biāo)
point2(1)= point1(1)+ 2.62
point2(2)= point1(2)ThisDrawing.Application.ZoomWindow point1,point2
′屏幕顯示范圍在point1和point2之間
以下程序?qū)崿F(xiàn)文字對(duì)象過(guò)濾和窗口選擇:
intcodes(0)= 0:intcodes(1)=8
′設(shè)置選擇文字對(duì)象的篩選條件
varcodevalues(0)= “TEXT”:varcodevalues(1)= strlayer
′選擇條件為指定圖層的文字對(duì)象
Dim textselect As AcadSelectionSet
′定義文字選擇集
textselect.Select acSelectionSetWindow,_
point1,point2,intcodes,varcodevalues
′指定篩選條件和范圍選擇文字形成選擇集
2.1.1.2 文字的處理
文字在選擇后,將出現(xiàn)2種情況:①選擇集為空,即圖形中地質(zhì)孔樣點(diǎn)沒(méi)有對(duì)應(yīng)的文字標(biāo)示,屬于廢石,對(duì)于此種情況,孔號(hào)、品位均以0賦值;②選擇集不空,選擇集中出現(xiàn)不屬于地質(zhì)孔樣信息的文字時(shí),通過(guò)地質(zhì)孔樣點(diǎn)X坐標(biāo)與地質(zhì)信息文字插入點(diǎn)X坐標(biāo)的固定關(guān)系,將部分文字從選擇集中剔除。程序如下。
If Abs(Abs(textentity.InsertionPoint(0)- pointentity.Coordinates(0))_
- 0.75)> 0 Then
textselect.RemoveItems(textentity) ′從選擇集textselect中剔除文字textentity
End If
提取選擇集中的文字時(shí),文字并不一定按照孔號(hào)、Cu品位和Au品位的順序依次出現(xiàn),需要根據(jù)文字插入點(diǎn)Y坐標(biāo)的大小對(duì)文字信息排序。通過(guò)將文字信息和文字的CAD插入點(diǎn)Y坐標(biāo)值寫(xiě)入Excel,利用Excel的內(nèi)置排序功能以文字插入點(diǎn)Y坐標(biāo)值對(duì)文字排序從而得到所要求的文字順序。
程序如下:
Set workbook_temp = ThisDrawing.excelworkbook
′定義Excel工作簿
Set worksheet_temp = workbook_temp.Worksheets(1)
′定義Excel工作表
worksheet_temp.UsedRange.Sort key1:=“Y坐標(biāo)”,order1:=xlDescending,_
Header:=xlYes,SortMethod:=xlPinYin
′根據(jù)文字插入點(diǎn)坐標(biāo)Y值降序排列
AutoCAD環(huán)境下,不可避免會(huì)出現(xiàn)重復(fù)文字等人為的錯(cuò)誤,這就需要手工剔除錯(cuò)誤的文字信息。借助AutoCAD下文本輸入窗口,依次重新輸入地質(zhì)孔樣點(diǎn)的各項(xiàng)內(nèi)容:
With workbook_temp.Worksheets(2)
.Cells(i,1)= ThisDrawing.Utility._
′輸入校準(zhǔn)值到Excel工作表
GetReal(“輸入正確的:” & .Cells(1,1)& “:” & .Cells(i,1)& “ -->”)
End with
2.1.1.3 文字寫(xiě)入SQL數(shù)據(jù)庫(kù)
在地質(zhì)孔樣信息準(zhǔn)確寫(xiě)入Excel工作表后,就可以將數(shù)據(jù)寫(xiě)入地質(zhì)孔樣數(shù)據(jù)表。寫(xiě)入前,首先要?jiǎng)h除SQL數(shù)據(jù)庫(kù)中相同記錄,避免重復(fù)數(shù)據(jù)。SQL Server 平臺(tái)和Excel平臺(tái)及AutoCAD平臺(tái)下就小數(shù)點(diǎn)后的數(shù)字定義稍有差異,正常以Excel下的地質(zhì)孔樣坐標(biāo)為查詢(xún)條件在SQL數(shù)據(jù)庫(kù)中操作時(shí),個(gè)別會(huì)出現(xiàn)查詢(xún)?yōu)榭盏那闆r,采取定義范圍的SQL條件查詢(xún)就可以避免此類(lèi)情況發(fā)生。
程序如下:
′程序中g(shù)etAdoConnection()為輸出ADODB.Connection對(duì)象連接的函數(shù)
With workbook_temp.Worksheets(2)
sql = “delete from ” & “ 地質(zhì)孔樣” & “ where ” _
& “ 坐標(biāo)Xbetween ” & .Cells(i,2).Value - 0.1 & “ and ” & .Cells(i,2).Value + 0.1 _
& “ and 坐標(biāo)Ybetween ” & .Cells(i,3).Value - 0.1 & “ and ” & .Cells(i,3).Value + 0.1 _
& “ and 坐標(biāo)Z=” & Trim(.Cells(i,4).Value)
′定義SQL刪除執(zhí)行語(yǔ)句
ThisDrawing.getAdoConnection().Execute sql
′執(zhí)行SQL語(yǔ)句,刪除數(shù)據(jù)表
sql = “insert into ” & “ 地質(zhì)孔樣” & “ values(” 省略 )”
′定義SQL添加數(shù)據(jù)執(zhí)行語(yǔ)句
ThisDrawing.getAdoConnection().Execute sql
′執(zhí)行SQL語(yǔ)句,添加數(shù)據(jù)
End with
2.1.2 地質(zhì)孔樣數(shù)據(jù)表與地質(zhì)孔樣點(diǎn)的鏈接
通過(guò)地質(zhì)孔樣點(diǎn)對(duì)象和其對(duì)應(yīng)的數(shù)據(jù)表記錄建立鏈接,就形成了圖3所示的地質(zhì)孔樣Link1模板下數(shù)據(jù)視圖,也就是建立了AutoCAD點(diǎn)對(duì)象的數(shù)據(jù)庫(kù)。在數(shù)據(jù)視圖窗口下,就可以實(shí)現(xiàn)地質(zhì)孔樣信息在數(shù)據(jù)表記錄集和AutoCAD點(diǎn)對(duì)象下的雙向查詢(xún)(多條件查詢(xún)見(jiàn)圖6所示)。
圖3 地質(zhì)孔樣Link1模板下的數(shù)據(jù)表
2.2 生產(chǎn)配礦數(shù)據(jù)與地質(zhì)孔樣點(diǎn)對(duì)象的鏈接
生產(chǎn)管理中一個(gè)非常重要的范疇就是在AutoCAD中顯示作業(yè)信息,即實(shí)現(xiàn)在AutoCAD Dbconnect模式下生產(chǎn)配礦數(shù)據(jù)表與地質(zhì)孔樣點(diǎn)對(duì)象的鏈接,然后在數(shù)據(jù)視圖下實(shí)現(xiàn)通過(guò)地質(zhì)孔樣點(diǎn)顯示生產(chǎn)配礦數(shù)據(jù)表記錄和通過(guò)生產(chǎn)配礦數(shù)據(jù)表記錄顯示地質(zhì)孔樣點(diǎn)的功能。
可以指定作業(yè)平臺(tái)或者多段線(xiàn)圈定范圍的方式實(shí)現(xiàn)生產(chǎn)配礦數(shù)據(jù)與地質(zhì)孔樣點(diǎn)鏈接,主要的程序步驟如下。
步驟1:選擇符合條件(指定作業(yè)平臺(tái)或多段線(xiàn)圈定范圍)的生產(chǎn)配礦數(shù)據(jù)表記錄。
步驟2:通過(guò)生產(chǎn)配礦數(shù)據(jù)表的“作業(yè)平臺(tái)”和“孔號(hào)”數(shù)據(jù)對(duì)應(yīng)地質(zhì)孔樣數(shù)據(jù)表中的孔樣點(diǎn)記錄。
步驟3:通過(guò)地質(zhì)孔樣數(shù)據(jù)表中孔樣點(diǎn)的坐標(biāo)值,在AutoCAD下選擇點(diǎn)對(duì)象。
步驟4:最后將選擇到的點(diǎn)對(duì)象與生產(chǎn)配礦數(shù)據(jù)表記錄信息在“生產(chǎn)配礦Link1”模板下進(jìn)行鏈接。
通過(guò)以上程序步驟就可以在數(shù)據(jù)視圖中形成如圖4的數(shù)據(jù)表記錄。
圖4 生產(chǎn)配礦Link1模板下的數(shù)據(jù)表
在實(shí)現(xiàn)生產(chǎn)配礦數(shù)據(jù)與地質(zhì)孔樣點(diǎn)的鏈接后,就可以通過(guò)數(shù)據(jù)視圖中提供的SQL結(jié)構(gòu)化語(yǔ)言查詢(xún)功能查詢(xún)生產(chǎn)作業(yè)信息。實(shí)際使用中,生產(chǎn)作業(yè)信息的查詢(xún)涉及日期、作業(yè)平臺(tái)、班次、孔號(hào)、品位等諸多內(nèi)容,這導(dǎo)致在數(shù)據(jù)視圖中的SQL結(jié)構(gòu)化查詢(xún)語(yǔ)言非常復(fù)雜,查詢(xún)成為一件非常繁瑣的事,失去了編制程序?qū)崿F(xiàn)便利工作的意義;另外數(shù)據(jù)視圖下的查詢(xún)存在不支持日期時(shí)間變量的致命缺陷。基于這些問(wèn)題,數(shù)據(jù)視圖下提供的查詢(xún)功能并沒(méi)有多大價(jià)值。
既然數(shù)據(jù)視圖下無(wú)法有效實(shí)現(xiàn)數(shù)據(jù)信息的查詢(xún)工作,那么就需要在數(shù)據(jù)表建立前就完成數(shù)據(jù)的多條件篩選,然后用篩選后的數(shù)據(jù)建立單獨(dú)的數(shù)據(jù)表“生產(chǎn)配礦Temp”和鏈接模板“生產(chǎn)配礦TempLink1”,這樣就使得數(shù)據(jù)視圖下僅僅存在我們感興趣的數(shù)據(jù)與地質(zhì)孔樣點(diǎn)對(duì)象的鏈接記錄,而不是全部的數(shù)據(jù)表鏈接記錄,也就避免了使用數(shù)據(jù)視圖下的查詢(xún)功能。圖5圖6為針對(duì)生產(chǎn)配礦數(shù)據(jù)表和地質(zhì)孔樣數(shù)據(jù)表的多條件篩選數(shù)據(jù)和鏈接對(duì)象的管理平臺(tái)。
圖5 多條件篩選數(shù)據(jù)和鏈接對(duì)象管理平臺(tái)A
多條件篩選生產(chǎn)配礦數(shù)據(jù)形成生產(chǎn)配礦Temp數(shù)據(jù)表和對(duì)象鏈接的程序中,會(huì)涉及多個(gè)記錄集對(duì)象的使用,記錄集對(duì)象的使用一定要注意在相應(yīng)記錄集操作結(jié)束后及時(shí)關(guān)閉記錄集,否則程序會(huì)出現(xiàn)無(wú)法預(yù)知的錯(cuò)誤。同樣程序中應(yīng)用的Excel對(duì)象、ADO外部數(shù)據(jù)庫(kù)鏈接對(duì)象、CAO數(shù)據(jù)鏈接對(duì)象等必須在相應(yīng)程序運(yùn)行結(jié)束后清空,避免導(dǎo)致平臺(tái)其他程序隨后運(yùn)行時(shí)出現(xiàn)錯(cuò)誤。
圖6 多條件篩選數(shù)據(jù)和鏈接對(duì)象管理平臺(tái)B
3.1 相關(guān)輔助功能的實(shí)現(xiàn)和完善
在AutoCAD下完成相關(guān)數(shù)據(jù)表和數(shù)據(jù)表與CAD對(duì)象鏈接功能后,露天生產(chǎn)管理系統(tǒng)已初具雛形。從使用角度,還需解決諸如相關(guān)數(shù)據(jù)表如何管理、如何編輯AutoCAD下對(duì)象的鏈接記錄、品位的自動(dòng)計(jì)算、AutoCAD下的數(shù)據(jù)信息如何提取、地質(zhì)測(cè)量相關(guān)功能以及復(fù)雜圖層狀態(tài)下的圖層管理等等問(wèn)題??偨Y(jié)這類(lèi)問(wèn)題,實(shí)際上都是關(guān)于數(shù)據(jù)的多條件查詢(xún)、存儲(chǔ)和數(shù)據(jù)處理的問(wèn)題,Excel在這些方面扮演著非常重要的角色。
3.2 AutoCAD VBA 程序的發(fā)布
在AutoCAD VBA開(kāi)發(fā)平臺(tái)完成露天礦生產(chǎn)管理系統(tǒng) mine manage system.dvb 工程后,運(yùn)行此工程要完成以下主要操作。
(1)編制AutoLISP引導(dǎo)程序 minesystem.lsp,將其在“加載應(yīng)用程序”菜單中添加到“啟動(dòng)組”,實(shí)現(xiàn)AutoCAD命令行下運(yùn)行加載此項(xiàng)工程。引導(dǎo)程序 minesystem.lsp如下:
(defun c:minesystem()
(setvar “cmdecho” 0)
(command “-vbarun” “mine manage system.dvb!start_mine”)
(setvar “cmdecho” 1)
(princ)
)
(2)實(shí)現(xiàn)菜單下執(zhí)行AutoCAD VBA的各類(lèi)程序,最終管理系統(tǒng)平臺(tái)菜單如圖7所示。
此套露天礦生產(chǎn)管理系統(tǒng)實(shí)現(xiàn)了以數(shù)據(jù)庫(kù)為核心的現(xiàn)代信息技術(shù)與現(xiàn)有生產(chǎn)工藝的完美結(jié)合,隨著相關(guān)數(shù)據(jù)庫(kù)的及時(shí)更新,無(wú)論從全局還是細(xì)節(jié)都可以清晰、詳盡和及時(shí)地展示整個(gè)露天礦生產(chǎn)態(tài)勢(shì);同時(shí),此套系統(tǒng)的使用,簡(jiǎn)化了現(xiàn)有的生產(chǎn)管理模式,提高了工作效率,就現(xiàn)有生產(chǎn)工藝條件下確保生產(chǎn)管理的廣度和深度提供了有力的技術(shù)支持。
通過(guò)基于AutoCAD平臺(tái)信息技術(shù)的應(yīng)用,得出以下結(jié)論:
圖7 AutoCAD下露天生產(chǎn)管理系統(tǒng)平臺(tái)
(1)AutoCAD只有結(jié)合外部數(shù)據(jù)庫(kù)和相關(guān)數(shù)據(jù)處理平臺(tái)(如Excel),才能夠真正發(fā)揮其技術(shù)優(yōu)勢(shì),實(shí)現(xiàn)生產(chǎn)管理平臺(tái)的功能。
(2)數(shù)據(jù)庫(kù)的優(yōu)勢(shì)在于數(shù)據(jù)的多條件查詢(xún)和存儲(chǔ),是現(xiàn)代信息技術(shù)的核心,數(shù)據(jù)庫(kù)技術(shù)的介入使得AutoCAD管理平臺(tái)的二次開(kāi)發(fā)具備開(kāi)放性的特點(diǎn),可以多平臺(tái)調(diào)用開(kāi)發(fā)數(shù)據(jù)潛力,為平臺(tái)進(jìn)一步的功能補(bǔ)充和完善提供了數(shù)據(jù)支持。
(3)Excel以其強(qiáng)大的數(shù)據(jù)處理能力,特別是其全面的應(yīng)用函數(shù)和單元格操作功能,避免了開(kāi)發(fā)程序陷入復(fù)雜算法的境地,在整個(gè)平臺(tái)開(kāi)發(fā)當(dāng)中發(fā)揮了不可替代的作用。
(4)AutoCAD、SQL、Excel的這種優(yōu)勢(shì)組合可以解決絕大部分的工程類(lèi)應(yīng)用問(wèn)題,特別適合中、小礦山開(kāi)發(fā)滿(mǎn)足自己工藝特點(diǎn)的綜合性管理平臺(tái)。
[1] Scott Mcfarlane.AutoCAD數(shù)據(jù)庫(kù)連接[M].羅阿理,盧 迪,等,譯.北京:機(jī)械工業(yè)出版社,2001:118-166. Scott Mcfarlane.AutoCAD Database Connectivity[M].Luo Ali,Lu Di,et al,translated.Beijing:China Machine Press,2001:118-166.
[2] 韓小良,周 寧.最新Excel VBA活用范例大辭典[M].北京:中國(guó)鐵道出版社,2009:561-570. Han Xiaoliang,Zhou Ning.The Latest Excel VBA Classic Example Dictionary[M].Beijing:China Railway Publishing House,2009:561-570.
[3] 王向云,王 嶸,張 琨.SQL從入門(mén)到精通[M].北京:電子工業(yè)出版社,2009:33-159. Wang Xiangyun,Wang Rong,Zhang Kun.SQL from Accidence to Mastery[M].Beijing:Publishing House of Electronics Industry,2009:33-159.
[4] Joe Sutphin.AutoCAD 2006 VBA(A Programmer's Reference)[M].[S.l.]:Apress,2005:259-283,405-406.
[5] 張 帆,等.AutoCAD VBA 二次開(kāi)發(fā)教程[M].北京:清華大學(xué)出版社,2006. Zhang Fan,et al.AutoCAD VBA's Secondary Development Lecture[M].Beijing:Tsinghua University Press,2006.
[6] Marion Cottingham.Mastering AutoCAD VBA[M].[S.l.]:Sybex Inc,2001.
(責(zé)任編輯 石海林)
DevelopmentandApplicationofInformationTechnologyBasedonAutoCADPlatformintheOpenMine
Chen Liqiang
(MCCTongsinResourcesCo.,Ltd.,Beijing100028,China)
Abundant entity objects in engineering are basically displayed by the AutoCAD's drawing,including the open-pit mine.AutoCAD electronics drawing can express and edit various contents of engineering entity object vividly and totally.This function can not be substituted in the production process.But the AutoCAD's weakness is also obvious:no ability in dealing with a great deal of data information in the drawing.How to make use of AutoCAD's natural advantage to carry out production management function in the AutoCAD's platform is with aid of AutoCAD linking an external database and other application procedures,and making use of their datum saving,and the ability of the datum search,the datum processing and datum commutation to make up AutoCAD's weakness,and make the drawing intelligent.Dbconnect function about databank link in the platform of AutoCAD is used to design AutoCAD VBA's secondary program for achieving informationizing management in some open pit mine's mining system by the technology of ActiveX Data Object(ADO)and Connectivity Automation Objects(CAO),combining with server SQL of multiple-inquiry,datum storage and EXCEL's advantageous datum treatment ability.
AutoCAD VBA,Excel VBA,SQL,ADO,CAO,Open-pit mine,Production management
2014-09-01
國(guó)家自然科學(xué)基金項(xiàng)目(編號(hào):41101068)。
陳立強(qiáng)(1975—),男,高級(jí)工程師。
TD672
A
1001-1250(2014)-12-163-06