青青偷拍视频,天天射天天添,人妻夜夜爽天天爽三区麻豆AV网站,成人综合国产乱在线

首頁> 資源> 論文>正文

應(yīng)用ObjectARX開發(fā)給水管網(wǎng)GIS系統(tǒng)

論文類型 技術(shù)與工程 發(fā)表日期 2000-04-01
來源 《工業(yè)用水與廢水》2000年第2期
作者 王榮和,潘建華,姚仁忠
關(guān)鍵詞 給水管網(wǎng) 計(jì)算機(jī)管理 GIS ObjectARX
摘要 在對(duì)AutoCAD2000、ObjectARX、給水管網(wǎng)計(jì)算機(jī)管理系統(tǒng)和GIS分析的基礎(chǔ)上,提出給水管網(wǎng)計(jì)算機(jī)管理系統(tǒng)開發(fā)的一般過程和用ObjectARX和擴(kuò)展字典功能進(jìn)行管網(wǎng)系統(tǒng)GIS開發(fā)的方法,并通過編寫WDOC軟件系統(tǒng)得到驗(yàn)證。

王榮和   同濟(jì)大學(xué)環(huán)境科學(xué)與工程學(xué)院污染控制與資源化研究國家重點(diǎn)實(shí)驗(yàn)室,上海 200092
 潘建華,姚仁忠 上海交通大學(xué)土木工程系,上海 200092

  摘要:在對(duì)AutoCAD2000、ObjectARX、給水管網(wǎng)計(jì)算機(jī)管理系統(tǒng)和GIS分析的基礎(chǔ)上,提出給水管網(wǎng)計(jì)算機(jī)管理系統(tǒng)開發(fā)的一般過程和用ObjectARX和擴(kuò)展字典功能進(jìn)行管網(wǎng)系統(tǒng)GIS開發(fā)的方法,并通過編寫WDOC軟件系統(tǒng)得到驗(yàn)證。
  關(guān)鍵詞:給水管網(wǎng);計(jì)算機(jī)管理;GIS;ObjectARX
  中圖分類號(hào):TU991.33
  文獻(xiàn)標(biāo)識(shí)碼:A
  文章編號(hào):1009-2455(2000)03-0048-03

Application of ObjectARX in Developing GIS for Water Supply Pipe Network
WANG Rong-he  ?PAN Jian-hua? YAO Ren-zhong

  Abstract:A general procedure for the development of computer management sustem for water supply pipe network and a method of developing GIS (Geology Information System) for the pipe network using ObjectARX and expanded-dictionary technology are described based on the analyses of AutoCAD2000 ObjectARX computer management system for water supply pipe network and GIS which have been verified through the compilation of WDOC software system.
  Key words:water supply pipe network;computer management;GIS;ObjectARX

概述

  AutoCAD是我國給水排水工程領(lǐng)域應(yīng)用最普遍的CAD平臺(tái)之一。目前國內(nèi)編寫的給水排水工程CAD設(shè)計(jì)軟件,都是以此為平臺(tái)進(jìn)行二次開發(fā)的。在以前的AutoCAD版本中,大多是以AutoLisp作為開發(fā)語言,后來擴(kuò)展到ADS系統(tǒng)[1][2]。現(xiàn)在的AutoCAD2000,提供了更多、更方便的二次開發(fā)工具,如VisualLISP、ActivexX、VBA、ADS、ASI等,尤為重要的是,還給出了以面向?qū)ο蟮腣isual C++為開發(fā)語言的ObjectARX,為以AutoCAD為開發(fā)平臺(tái)進(jìn)行CAD軟件二次開發(fā)的廣大設(shè)計(jì)人員提供了一種更為方便、靈活的工具[3]
  ObjectARX可以共享AutoCAD的地址和空間,深入到系統(tǒng)底層,對(duì)AutoCAD進(jìn)行直接的函數(shù)調(diào)用,速度快、圖形管理方便,軟件代碼的保密性強(qiáng)。ObjectARX應(yīng)用程序是一個(gè)動(dòng)態(tài)連接庫,不但可以共享AutoCAD的資源,還可以共享Windows、VC++等資源。盡管程序編寫不如AutoLisp方便[4],但其高度的靈活性、強(qiáng)大的功能和對(duì)大型系統(tǒng)管理速度的提高,足可以彌補(bǔ)其所有的弱點(diǎn)。
  通過應(yīng)用ARX進(jìn)行給水管網(wǎng)多工況優(yōu)化設(shè)計(jì)計(jì)算軟件WDOC系統(tǒng)的編制[5][6],與AutoLisp/Visual LISP進(jìn)行比較,并與對(duì)象添加擴(kuò)展數(shù)據(jù)和擴(kuò)展字典技術(shù)進(jìn)行了比較,得出用ObjectARX作為編程語言,應(yīng)用擴(kuò)展字典技術(shù),可以方便地編寫給水管網(wǎng)GIS系統(tǒng)的結(jié)論。

1 給水管網(wǎng)GIS系統(tǒng)功能分析[2]

  給水管網(wǎng)GIS系統(tǒng),不同于一般的需要存貯大量的非圖形和圖形信息的GIS系統(tǒng),而是有其特殊性,主要表現(xiàn)在如下幾個(gè)方面:即地形、地貌信息只是作為背景知識(shí),不需要存貯大量的非圖形信息;節(jié)點(diǎn)、管段、閥門、水泵等之間都有固定的相互聯(lián)系;管網(wǎng)GIS除具有GIS的功能外,還需具備管網(wǎng)水力計(jì)算、設(shè)計(jì)、管理、調(diào)度等方面的功能。因此,建立給水管網(wǎng)GIS系統(tǒng),不能單純地從一般GIS的功能進(jìn)行系統(tǒng)分析和設(shè)計(jì),而是需針對(duì)給水管網(wǎng)的目的和特點(diǎn)進(jìn)行。
  自20世紀(jì)90年代初開始,深圳自來水公司就開始進(jìn)行GIS系統(tǒng)的開發(fā),開辟國內(nèi)自來水行業(yè)GIS的先河。上海、北京、南京、廣州等城市的自來水公司也先后開始進(jìn)行GIS系統(tǒng)的開發(fā),當(dāng)前國內(nèi)大中型城市的自來水公司都正著手進(jìn)行這一領(lǐng)域的研究與開發(fā)工作。但到目前為止,尚沒有一個(gè)單位開發(fā)的給水管網(wǎng)GIS系統(tǒng)能夠承擔(dān)起真正的GIS功能,其根本原因在于各單位只是為了開發(fā)GIS而開發(fā)GIS,沒有考慮給水管網(wǎng)系統(tǒng)的特殊性和開發(fā)給水管網(wǎng)GIS的真正目的:集給水管網(wǎng)水力計(jì)算模型、優(yōu)化設(shè)計(jì)與調(diào)度管理模型、SCADA (Supervisory Control And Data Acquisition)、PLC (Programming Logical Control)、管網(wǎng)GIS為一體的給水管網(wǎng)計(jì)算機(jī)管理系統(tǒng)。現(xiàn)大多數(shù)單位開發(fā)的給水管網(wǎng)GIS系統(tǒng)與管網(wǎng)水力計(jì)算模型、SCADA等系統(tǒng)相互獨(dú)立,信息不能共享。因此存在信息的更新、模型管理、實(shí)測(cè)數(shù)據(jù)等不統(tǒng)一和工作重復(fù)的問題。另外,由于各部門行政管理的不一致,更增加了系統(tǒng)的復(fù)雜性和軟件運(yùn)行上的難度,造成許多給水管網(wǎng)GIS系統(tǒng),一旦開發(fā)工作完成,則該GIS生命即自行結(jié)束的狀況。

  從圖1可以看出,合理的管網(wǎng)計(jì)算機(jī)管理系統(tǒng),應(yīng)是以數(shù)據(jù)庫為核心,現(xiàn)狀分析、管網(wǎng)模型、GIS、SCADA、水量預(yù)測(cè)預(yù)報(bào)、優(yōu)化設(shè)計(jì)、CAD、優(yōu)化調(diào)度等模塊都是計(jì)算機(jī)管理系統(tǒng)的內(nèi)容之一。其主要的內(nèi)在聯(lián)系是:GIS系統(tǒng)提供管網(wǎng)圖形信息;管網(wǎng)現(xiàn)狀分析對(duì)GIS基礎(chǔ)數(shù)據(jù)進(jìn)行校正,使GIS能夠符合實(shí)際工作的要求;管網(wǎng)模型是對(duì)管網(wǎng)系統(tǒng)進(jìn)行水力分析,基礎(chǔ)數(shù)據(jù)來源于GIS;水表和用戶可以在GIS中查詢;水量預(yù)測(cè)預(yù)報(bào)系統(tǒng),是以數(shù)據(jù)庫中的歷史數(shù)據(jù)為基礎(chǔ)進(jìn)行分析;SCADA系統(tǒng)用于把管網(wǎng)、水廠、泵站等的實(shí)測(cè)數(shù)據(jù)傳送到數(shù)據(jù)庫,便于其它系統(tǒng)利用這些數(shù)據(jù)進(jìn)行分析;優(yōu)化設(shè)計(jì)則是在現(xiàn)狀分析和GIS系統(tǒng)的基礎(chǔ)上,進(jìn)行規(guī)劃、設(shè)計(jì)與分析;CAD則直接可以利用GIS的基礎(chǔ)數(shù)據(jù)和優(yōu)化設(shè)計(jì)結(jié)果,進(jìn)行施工圖設(shè)計(jì);報(bào)表輸出,是按照自來水公司的要求,定期產(chǎn)生報(bào)表系統(tǒng);圖形管理是對(duì)GIS圖素的添加、刪除,對(duì)工程施工圖、管網(wǎng)模型圖、現(xiàn)狀分析圖等進(jìn)行管理。優(yōu)化調(diào)度是利用數(shù)據(jù)庫的基礎(chǔ)資料、當(dāng)日當(dāng)時(shí)的現(xiàn)狀資料、GIS的圖形資料、SCADA的實(shí)測(cè)資料、水量預(yù)測(cè)的供水資料等進(jìn)行全范圍調(diào)度管理,并發(fā)送調(diào)度指令。

2 擴(kuò)展字典在給水管網(wǎng)GIS系統(tǒng)中的應(yīng)用

  AutoCAD2000的一個(gè)最大突破,就是把圖形管理數(shù)據(jù)庫化。通過對(duì)象字典,可以在給水管網(wǎng)圖形中加入所需要的各種信息,如節(jié)點(diǎn)編號(hào)、節(jié)點(diǎn)流量、自由水頭、用水量變化系數(shù)等。
  給水管網(wǎng)的相關(guān)部件,如節(jié)點(diǎn)、管段等,它們之間都是有相互聯(lián)系,而不是相互獨(dú)立的。對(duì)于管段來說,它由上、下游節(jié)點(diǎn)編號(hào)、管長、管徑、管道摩阻等固定信息和流量、流速、水頭損失、水力坡度等可變信息組成,并且還同與之相連的控制閥相聯(lián)系。每當(dāng)對(duì)管段進(jìn)行操作時(shí),需同時(shí)考慮與之相連的相關(guān)部件,并對(duì)相關(guān)部件進(jìn)行相應(yīng)的操作。一般的處理方法是,把相應(yīng)的非圖形信息存貯于其它類型的數(shù)據(jù)庫中,每當(dāng)處理時(shí),可以通過圖形的ID號(hào)來查找相應(yīng)的數(shù)據(jù)庫,并按照對(duì)圖形信息操作的過程,再相應(yīng)操作數(shù)據(jù)庫。這種處理方法,在處理速度和靈活度上,存在一定的缺點(diǎn)。而用擴(kuò)展字典技術(shù),就可以在進(jìn)行圖形處理的同時(shí),進(jìn)行相關(guān)的數(shù)據(jù)處理,方便而又迅速。
  擴(kuò)展數(shù)據(jù)(xdata)由應(yīng)用程序創(chuàng)建,并且可以添加到所有圖形對(duì)象中。數(shù)據(jù)使用DXf組碼的1000到1007之間的范圍。擴(kuò)展數(shù)據(jù)的優(yōu)點(diǎn)是有效地利用了空間,并且對(duì)添加少量數(shù)據(jù)到一個(gè)對(duì)象中是十分方便的。但xdata被限制在16K和DXF組碼,為使用帶來許多不便[7][8]。
  擴(kuò)展字典解決了擴(kuò)展數(shù)據(jù)的一系列缺點(diǎn),提供了一個(gè)具有添加數(shù)據(jù)能力更強(qiáng)、更靈活的機(jī)制。每個(gè)對(duì)象都可以有一個(gè)擴(kuò)展字典,可以容納任意一套AcDbObject對(duì)象。利用這一機(jī)制,若干應(yīng)用程序可以附加數(shù)據(jù)到同一個(gè)對(duì)象上。下面是一個(gè)利用擴(kuò)展字典技術(shù),對(duì)管段信息進(jìn)行擴(kuò)展的VC++程序[3]:
  selectObject()函數(shù)提示用戶選擇實(shí)體,在選擇到實(shí)體后,打開并返回指向這一實(shí)體的指針。

AcDbObject* selectObject(AcDb::OpenMode openMode)?
? {ads_name en;? ads_point pt;
char handleStr[132]; AcDbobjectId eId;
Acad::ErrorStatus retStat;
acedEntSel(" 請(qǐng)選擇實(shí)體:",en,pt); ∥提示用戶選擇實(shí)體
retStat=acdbGetObjectId(eld?en); ∥把a(bǔ)ds name變?yōu)閷?shí)體ID號(hào)
AcDbObject* pObj;?
if((retStat=AcdbOpenObject(pObj,eId,openMode))!= AcAd::eOk)?
{∥打開實(shí)體
AcutPrintf(“打開實(shí)體錯(cuò)誤!!!”);
return NULL;
?}
return pObj;? ∥返回實(shí)體指針
?}

  createXrecord()函數(shù),用于對(duì)選擇實(shí)體添加數(shù)據(jù)字典。其中Name為擴(kuò)展字典名,head為通過Ads_buildlist()建立的數(shù)據(jù)表。

void creatXrecord(char* Name,struct resbuf* head)
{AcDbXrecord*pXrec=new AcDbXrecord;? AcDbObject* pO
bj;?
AcDbObjectId dictObjId,?xrecObjId;? AcDbDictionary* pDict;?
pObj=selectObject(AcDb::kForWrite); ∥調(diào)用selectObject()函數(shù)
if(pObj=NULL) return;? ∥如果選擇實(shí)體不存在,則退出
pObj->createExtensionDictionAry() ∥建立選擇實(shí)體空的擴(kuò)展字典
dictObjId=pObj->extensionDictionAry();∥得到所選擇實(shí)體的擴(kuò)展字典的ID號(hào)
pObj->close();? ∥關(guān)閉選擇實(shí)體
AcdbOpenObject(pDict,dictObjId,AcDb::kForWrite)? ∥打開擴(kuò)展字典并準(zhǔn)備加入新的數(shù)據(jù)
pDict->setAt(Name,pXrec,xrecObjId);
pDict->close();? ∥關(guān)閉擴(kuò)展字典
pXrec->setFromRbChAin(*head); ∥添加數(shù)據(jù)表到擴(kuò)展字典數(shù)據(jù)庫
pXrec->close();? ∥關(guān)閉數(shù)據(jù)表
?}

  通過 createXrecord()函數(shù),可以添加任何數(shù)據(jù)、角度、文字、坐標(biāo)等到實(shí)體中去。對(duì)于給水管網(wǎng)GIS系統(tǒng),如對(duì)管段加入諸如管段號(hào)、起始節(jié)點(diǎn)號(hào)、終止節(jié)點(diǎn)號(hào)、管長、管徑、管段摩阻等,可以用如下簡單的程序加以方便實(shí)現(xiàn)。

void PipeXrec()
{? float PipeDiAmeter,?PipeLength,?PipeHW;
   char FromPoint[15],ToPoint[15],PipeNo[15];
∥此處可以通過程序系統(tǒng)或人工輸入法,獲得管段的有關(guān)信息
∥……
struct resbuf* head;?
head=AcutBuildList(?
AcDb::kDxfText,F(xiàn)romPoint,AcDb::kDxfText,ToPoint,?
AcDb::kDxfReAl,PipeDiAmeter,? AcDb::kDxfReAl,
?PipeLength,?
AcDb::kDxfReAl,PipeHW,?
0);
createXrecord(PipeNo,head);
?}

  用同樣的處理技術(shù),可以把擴(kuò)展字典信息提取出來,從而可以方便地對(duì)圖形信息進(jìn)行實(shí)時(shí)操作。
  可以看出,只要編寫如上所述的小程序,就可以在給水管網(wǎng)GIS中進(jìn)行方便的管網(wǎng)信息加入、查詢、提取與操作。

3 結(jié)束語

  給水管網(wǎng)GIS系統(tǒng)的建立,不同于其它專業(yè)的GIS,各圖形元素不但有其自身的物理意義,而且圖形元素之間還存在相應(yīng)的內(nèi)存聯(lián)系。因此,給水管網(wǎng)GIS系統(tǒng)建立的關(guān)鍵在于管網(wǎng)系統(tǒng)的水力分析,為管網(wǎng)調(diào)度和管理提供決策的依據(jù),而不僅僅是簡單的管網(wǎng)圖形分析。
  通過對(duì)ObjectARX的應(yīng)用與分析和對(duì)WDOC軟件系統(tǒng)的開發(fā),得到以AutoCAD2000為工作平臺(tái),用ObjectARX和擴(kuò)展字典進(jìn)行二次開發(fā)實(shí)現(xiàn)給水管網(wǎng)GIS的功能,不但功能強(qiáng)大,而且方便靈活,尤其是使GIS與管網(wǎng)模型、優(yōu)化設(shè)計(jì)計(jì)算、延時(shí)水力模擬、現(xiàn)狀分析和監(jiān)測(cè)點(diǎn)選擇等多個(gè)功能集成設(shè)計(jì),達(dá)到實(shí)現(xiàn)給水管網(wǎng)計(jì)算機(jī)管理的初步目的和要求。

參考文獻(xiàn)

  [1]?王榮和,劉志強(qiáng).給水排水工程CAD.同濟(jì)大學(xué)教材科 [中國建筑工業(yè)出版社作為全國通用教材出版中],1997.
  [2] 中國給水五十年回顧-第七屆年會(huì)論文集[C].中國建筑工業(yè)出版社,1999.
  [3]?余承飛,方勇.AutoCAD2000二次開發(fā)技術(shù)(ObjectARX)[M].人民郵電出版社,1999.
  [4]?王榮和,顧國維.水處理工程CAD的智能設(shè)計(jì),環(huán)境背景值和環(huán)境容量研究[M].科學(xué)出版社,1993.
  [5]?王榮和,顧國維.優(yōu)選管徑法在給水管網(wǎng)優(yōu)化設(shè)計(jì)中的應(yīng)用[J].中國給水排水,1998,(1):14~17.
  [6]?王榮和,顧國維.給水管網(wǎng)多工況優(yōu)化設(shè)計(jì)的實(shí)用性[J]中國給水排水,1999,15(4):39~40.
  [7]?王榮和,顧國維.?dāng)U展實(shí)體數(shù)據(jù)在給排水工程CAD中的應(yīng)用[J].化工給排水設(shè)計(jì),1998,(4):51~54.
  [8]?顧國維.?水污染治理技術(shù)研究[M].上海:上海同濟(jì)大學(xué)出版社,1997.


作者簡介:
  王榮和,博士、副教授,上海,同濟(jì)大學(xué)環(huán)境科學(xué)與工程學(xué)院。

論文搜索

發(fā)表時(shí)間

論文投稿

很多時(shí)候您的文章總是無緣變成鉛字。研究做到關(guān)鍵時(shí),試驗(yàn)有了起色時(shí),是不是想和同行探討一下,工作中有了心得,您是不是很想與人分享,那么不要只是默默工作了,寫下來吧!投稿時(shí),請(qǐng)以附件形式發(fā)至 paper@h2o-china.com ,請(qǐng)注明論文投稿。一旦采用,我們會(huì)為您增加100枚金幣。