999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

利用托管ObjectARX和DAO技術實現圖庫聯動功能

2015-03-29 06:34:00吳獻文
測繪通報 2015年6期
關鍵詞:數據處理數據庫用戶

吳獻文

(1.湖北工業大學,湖北 武漢430068;2.廣東省地質物探工程勘察院,廣東 廣州510800)

一、引 言

原有地下管線數據處理成圖系統采用AutoLISP開發工具編寫,在AutoCAD平臺上加載,通過數據處理子系統輸出的成圖文本文件自動成圖。AutoLISP開發工具本身的局限性導致其較難實現對MDB格式數據較為直觀的控制,因此成圖子系統和數據處理子系統的關聯只限于文本文件,一旦需要修改則圖面和數據庫都要修改。事實表明,這種圖庫分開的關聯方式給內業操作人員造成很大的不便,修改數據不直觀、容易出錯。因此,迫切需要一種高層次的開發,使數據處理和成圖更有效的結合,并能同時控制相同數據庫格式,更好地滿足生產工作的需要。

二、開發環境的選擇

AutoCAD是由美國Autodesk公司推出、在國際工程界廣泛使用的計算機輔助繪圖軟件。AutoCAD是一個功能齊全、應用廣泛的通用圖形軟件包,且具有開放式的體系結構,贏得了廣大用戶的青睞。

AutoCAD為用戶提供了3種二次開發工具的接口:一是AutoCAD內置的Visual LISP,二是Visual Basic/VBA,三是ObjectARX。ObjectARX是Autodesk公司提供給用戶的一個AutoCAD與VC++的應用程序接口(API)模塊,它包含220個類和3000多個成員函數,用它開發出的應用程序以動態連接庫的形式與AutoCAD共享地址空間。與前兩種開發工具相比,ObjectARX有獨特的優勢:①ObjectARX本身是采用面向對象技術設計開發的,易學易用,功能強大;②使用ObjectARX開發的程序可以直接操作AutoCAD的底層數據庫,效率高。

托管ObjectARX可以使用.NET所支持的任何語言進行開發,達到與使用C++開發的ObjectARX幾乎同樣強大的功能。托管ObjectARX封裝了絕大部分的ObjectARX SDK,它可以執行數據庫功能,使用戶可以讀寫DWG文件,訪問AutoCAD的界面元素,包括命令行、特性對話框、編輯器、發布和出圖工具等。它由acdbmgd.dll和acbmgd.dll兩個程序集組成。

DAO(數據訪問對象)是一種應用程序編程接口(API),存在于微軟的Visual Basic中,允許程序員請求對微軟的Access數據庫的訪問。DAO是微軟的第1個面向對象的數據庫接口。DAO對象封閉了Access的Jet函數。通過Jet函數,還可以訪問其他的結構化查詢語言(SQL)數據庫。

基于以上分析,成圖系統在通用圖形軟件Auto-CAD 2009平臺上進行二次開發,采用VB.NET 2008版軟件開發環境,使用托管ObjectARX和DAO數據庫訪問技術。

三、圖庫聯動具體實現過程

1.引用ObjectARX.NET封裝類

在VB.NET中使用AutoCAD.NET托管封裝類,必須先添加引用acdbmgd.dll和acmgd.dll。在Auto-CAD 2009的安裝目錄下找到它們,并添加引用到工程中。正如它們的名字所表示的,acdbmgd.dll包含ObjectDBX托管類,而acmgd.dll包含AutoCAD托管類。

在類的聲明語句之前,導入ApplicationServices、ApplicationServices、EditorInput和Runtime命名空間,即:

Imports Autodesk.AutoCAD.ApplicationServices

Imports Autodesk.AutoCAD.DatabaseServices

Imports Autodesk.AutoCAD.Runtime

Imports Autodesk.AutoCAD.Geometry

Imports Autodesk.AutoCAD.Interop

2.通過DAO連接數據庫

工程需要引用Microsoft DAO 3.6 Object Library,具體實現代碼如下:

Dim DB As DAO.Database

Dim RP As DAO.Recordset

Dim RL As DAO.Recordset

Dim mdbdge As New DAO.DBEngine

MyMdb=mdbdge.Workspaces(0).OpenDatabase(DataName)

RP=MyMdb.OpenRecordset(LayName&″POINT″,DAO.RecordsetTypeEnum.dbOpenDynaset)

RL=MyMdb.OpenRecordset(LayName&″LINE″,DAO.RecordsetTypeEnum.dbOpenDynaset)

3.創建實體(點、線和文字)

下面具體介紹管線點實體的插入,通過DAO技術從數據庫里讀取各管類的信息,包括點位坐標位置、屬性信息(點號、點代碼和點特征等)等,將其實體展繪在AutoCAD平臺上,如圖1所示,并將其屬性信息寫入實體的擴展數據,以便后面信息的讀取。

圖1

關鍵實現代碼如下:

Dim MoSpace As Autodesk.AutoCAD.Interop.Common.AcadModelSpace

Dim PntSymbol As Autodesk.AutoCAD.Interop.Common.AcadBlockReference

PntSymbol=MoSpace.InsertBlock(insPnt,DwgFile,0.5,0.5,0.5,dAngle)

AcadRun.Point_SetXdata(PntSymbol,XD0,SPoint,PT1.Layer&″POINT″)

AcadRun.Point_SetXdata(PntSymbol,XD1,s1,PT1.Layer&″POINT″)

4.在AutoCAD平臺上讀取實體信息

在ActiveX技術中,GetEntity方法能夠返回一個AcadEntity類型的對象和一個Variant類型的變量(表示拾取點的位置)。在拖管封裝的ARX中無法直接使用該返回值,但是在AutoCAD的一個進程中,不同語言中ObjectID的值是一致的,就可以通過ObjectId在兩種語言中實現實體的傳遞。代碼如下:

Dim pickPnt As Object

Dim xdataOut As Object

Dim xtypeOut As Object

DimacadDoc As Autodesk.AutoCAD.Interop.AcadDocument

Dim entObj As Autodesk.AutoCAD.Interop.Common.AcadEntity

acadDoc.Utility.GetEntity(entObj,pickPnt,″請選擇實體″)

entObj.GetXData(XD0,xtypeOut,xdataOut)

S=xdataOut(1)

通過此方法在AutoCAD上讀取實體信息后,通過DAO連接數據庫信息,并彈出窗口顯示出來。用戶可以通過窗口對數據進行添加或修改,非常方便快捷。通過屬性窗口,實現了圖面實體和數據庫的連接,用戶使用修改操作,圖面和數據庫的信息都會同步得到修改,實現了圖庫聯動的目的,如圖2所示。

圖2

四、結束語

本系統采用VB.NET 2008版軟件開發工具,使用托管ObjectARX和DAO數據庫訪問技術,實現了AutoCAD圖面實體和Access數據庫的動態連接,很好地實現了圖庫聯動功能,使修改工作更加方便快捷,滿足了工作生產的需要,大大提高了內業數據處理工作的效率,帶來了一定的生產效益。

[1] 北京市測繪設計研究院.CJJ 61—2003J271—2003城市地下管線探測技術規程[S].北京:中國建筑工業出版社,2003.

[2] 曾洪飛,張帆,盧擇臨.AutoCAD VBA&VB.NET開發基礎與實例教程[M].北京:中國電力出版社,2008.

猜你喜歡
數據處理數據庫用戶
認知診斷缺失數據處理方法的比較:零替換、多重插補與極大似然估計法*
心理學報(2022年4期)2022-04-12 07:38:02
ILWT-EEMD數據處理的ELM滾動軸承故障診斷
水泵技術(2021年3期)2021-08-14 02:09:20
數據庫
財經(2017年2期)2017-03-10 14:35:35
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
數據庫
財經(2016年15期)2016-06-03 07:38:02
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
基于希爾伯特- 黃變換的去噪法在外測數據處理中的應用
主站蜘蛛池模板: 一级全免费视频播放| 一个色综合久久| 国产美女精品一区二区| jizz国产视频| 久久窝窝国产精品午夜看片| 美女潮喷出白浆在线观看视频| 国产h视频免费观看| 国产视频一区二区在线观看| 日韩高清成人| 国产精品久线在线观看| 热久久国产| 国产精品福利尤物youwu| 2020亚洲精品无码| 久久综合伊人77777| 久操中文在线| 精品一区二区三区中文字幕| 中国成人在线视频| 成人91在线| 亚洲综合极品香蕉久久网| 天天做天天爱夜夜爽毛片毛片| 婷婷伊人久久| 69综合网| 精品久久香蕉国产线看观看gif| 国产原创自拍不卡第一页| 中文字幕在线播放不卡| 国产精品无码在线看| 亚洲三级a| 狼友av永久网站免费观看| 欧美乱妇高清无乱码免费| 精品伊人久久久久7777人| 91区国产福利在线观看午夜| 真实国产乱子伦高清| 久久综合成人| 99久久精品免费看国产免费软件 | 久久黄色免费电影| swag国产精品| 99精品在线视频观看| 久久 午夜福利 张柏芝| 欧美激情视频一区二区三区免费| 91在线播放免费不卡无毒| 欧美日本视频在线观看| 亚洲国产亚综合在线区| 无码AV日韩一二三区| 激情综合五月网| 91精品国产情侣高潮露脸| 国产综合无码一区二区色蜜蜜| 国产毛片高清一级国语 | 无码国产伊人| aaa国产一级毛片| 国产成人无码Av在线播放无广告| 国产精品大白天新婚身材| 亚洲国产天堂久久九九九| 久久一日本道色综合久久| 亚洲码一区二区三区| 精品五夜婷香蕉国产线看观看| 性69交片免费看| 九九线精品视频在线观看| 亚洲国产av无码综合原创国产| 又粗又硬又大又爽免费视频播放| 91福利在线观看视频| 欧美日本二区| 国产99欧美精品久久精品久久| 黄色国产在线| 欧美日韩北条麻妃一区二区| 都市激情亚洲综合久久| 国内丰满少妇猛烈精品播 | 亚洲天堂在线视频| 亚洲视频二| 国产福利拍拍拍| 先锋资源久久| 任我操在线视频| 91成人免费观看| 国产精品视频导航| 国产在线专区| 一级毛片中文字幕| a级毛片免费网站| 好吊色妇女免费视频免费| 欧美中日韩在线| 天天色天天综合| 亚洲精品欧美重口| 国产精品一区二区在线播放| 亚洲三级电影在线播放 |