亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        利用托管ObjectARX和DAO技術(shù)實(shí)現(xiàn)圖庫(kù)聯(lián)動(dòng)功能

        2015-03-29 06:34:00吳獻(xiàn)文
        測(cè)繪通報(bào) 2015年6期
        關(guān)鍵詞:圖面圖庫(kù)數(shù)據(jù)處理

        吳獻(xiàn)文

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

        一、引 言

        原有地下管線數(shù)據(jù)處理成圖系統(tǒng)采用AutoLISP開(kāi)發(fā)工具編寫(xiě),在AutoCAD平臺(tái)上加載,通過(guò)數(shù)據(jù)處理子系統(tǒng)輸出的成圖文本文件自動(dòng)成圖。AutoLISP開(kāi)發(fā)工具本身的局限性導(dǎo)致其較難實(shí)現(xiàn)對(duì)MDB格式數(shù)據(jù)較為直觀的控制,因此成圖子系統(tǒng)和數(shù)據(jù)處理子系統(tǒng)的關(guān)聯(lián)只限于文本文件,一旦需要修改則圖面和數(shù)據(jù)庫(kù)都要修改。事實(shí)表明,這種圖庫(kù)分開(kāi)的關(guān)聯(lián)方式給內(nèi)業(yè)操作人員造成很大的不便,修改數(shù)據(jù)不直觀、容易出錯(cuò)。因此,迫切需要一種高層次的開(kāi)發(fā),使數(shù)據(jù)處理和成圖更有效的結(jié)合,并能同時(shí)控制相同數(shù)據(jù)庫(kù)格式,更好地滿足生產(chǎn)工作的需要。

        二、開(kāi)發(fā)環(huán)境的選擇

        AutoCAD是由美國(guó)Autodesk公司推出、在國(guó)際工程界廣泛使用的計(jì)算機(jī)輔助繪圖軟件。AutoCAD是一個(gè)功能齊全、應(yīng)用廣泛的通用圖形軟件包,且具有開(kāi)放式的體系結(jié)構(gòu),贏得了廣大用戶(hù)的青睞。

        AutoCAD為用戶(hù)提供了3種二次開(kāi)發(fā)工具的接口:一是AutoCAD內(nèi)置的Visual LISP,二是Visual Basic/VBA,三是ObjectARX。ObjectARX是Autodesk公司提供給用戶(hù)的一個(gè)AutoCAD與VC++的應(yīng)用程序接口(API)模塊,它包含220個(gè)類(lèi)和3000多個(gè)成員函數(shù),用它開(kāi)發(fā)出的應(yīng)用程序以動(dòng)態(tài)連接庫(kù)的形式與AutoCAD共享地址空間。與前兩種開(kāi)發(fā)工具相比,ObjectARX有獨(dú)特的優(yōu)勢(shì):①ObjectARX本身是采用面向?qū)ο蠹夹g(shù)設(shè)計(jì)開(kāi)發(fā)的,易學(xué)易用,功能強(qiáng)大;②使用ObjectARX開(kāi)發(fā)的程序可以直接操作AutoCAD的底層數(shù)據(jù)庫(kù),效率高。

        托管ObjectARX可以使用.NET所支持的任何語(yǔ)言進(jìn)行開(kāi)發(fā),達(dá)到與使用C++開(kāi)發(fā)的ObjectARX幾乎同樣強(qiáng)大的功能。托管ObjectARX封裝了絕大部分的ObjectARX SDK,它可以執(zhí)行數(shù)據(jù)庫(kù)功能,使用戶(hù)可以讀寫(xiě)DWG文件,訪問(wèn)AutoCAD的界面元素,包括命令行、特性對(duì)話框、編輯器、發(fā)布和出圖工具等。它由acdbmgd.dll和acbmgd.dll兩個(gè)程序集組成。

        DAO(數(shù)據(jù)訪問(wèn)對(duì)象)是一種應(yīng)用程序編程接口(API),存在于微軟的Visual Basic中,允許程序員請(qǐng)求對(duì)微軟的Access數(shù)據(jù)庫(kù)的訪問(wèn)。DAO是微軟的第1個(gè)面向?qū)ο蟮臄?shù)據(jù)庫(kù)接口。DAO對(duì)象封閉了Access的Jet函數(shù)。通過(guò)Jet函數(shù),還可以訪問(wèn)其他的結(jié)構(gòu)化查詢(xún)語(yǔ)言(SQL)數(shù)據(jù)庫(kù)。

        基于以上分析,成圖系統(tǒng)在通用圖形軟件Auto-CAD 2009平臺(tái)上進(jìn)行二次開(kāi)發(fā),采用VB.NET 2008版軟件開(kāi)發(fā)環(huán)境,使用托管ObjectARX和DAO數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)。

        三、圖庫(kù)聯(lián)動(dòng)具體實(shí)現(xiàn)過(guò)程

        1.引用ObjectARX.NET封裝類(lèi)

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

        在類(lèi)的聲明語(yǔ)句之前,導(dǎo)入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.通過(guò)DAO連接數(shù)據(jù)庫(kù)

        工程需要引用Microsoft DAO 3.6 Object Library,具體實(shí)現(xiàn)代碼如下:

        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.創(chuàng)建實(shí)體(點(diǎn)、線和文字)

        下面具體介紹管線點(diǎn)實(shí)體的插入,通過(guò)DAO技術(shù)從數(shù)據(jù)庫(kù)里讀取各管類(lèi)的信息,包括點(diǎn)位坐標(biāo)位置、屬性信息(點(diǎn)號(hào)、點(diǎn)代碼和點(diǎn)特征等)等,將其實(shí)體展繪在AutoCAD平臺(tái)上,如圖1所示,并將其屬性信息寫(xiě)入實(shí)體的擴(kuò)展數(shù)據(jù),以便后面信息的讀取。

        圖1

        關(guān)鍵實(shí)現(xiàn)代碼如下:

        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平臺(tái)上讀取實(shí)體信息

        在ActiveX技術(shù)中,GetEntity方法能夠返回一個(gè)AcadEntity類(lèi)型的對(duì)象和一個(gè)Variant類(lèi)型的變量(表示拾取點(diǎn)的位置)。在拖管封裝的ARX中無(wú)法直接使用該返回值,但是在AutoCAD的一個(gè)進(jìn)程中,不同語(yǔ)言中ObjectID的值是一致的,就可以通過(guò)ObjectId在兩種語(yǔ)言中實(shí)現(xiàn)實(shí)體的傳遞。代碼如下:

        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,″請(qǐng)選擇實(shí)體″)

        entObj.GetXData(XD0,xtypeOut,xdataOut)

        S=xdataOut(1)

        通過(guò)此方法在AutoCAD上讀取實(shí)體信息后,通過(guò)DAO連接數(shù)據(jù)庫(kù)信息,并彈出窗口顯示出來(lái)。用戶(hù)可以通過(guò)窗口對(duì)數(shù)據(jù)進(jìn)行添加或修改,非常方便快捷。通過(guò)屬性窗口,實(shí)現(xiàn)了圖面實(shí)體和數(shù)據(jù)庫(kù)的連接,用戶(hù)使用修改操作,圖面和數(shù)據(jù)庫(kù)的信息都會(huì)同步得到修改,實(shí)現(xiàn)了圖庫(kù)聯(lián)動(dòng)的目的,如圖2所示。

        圖2

        四、結(jié)束語(yǔ)

        本系統(tǒng)采用VB.NET 2008版軟件開(kāi)發(fā)工具,使用托管ObjectARX和DAO數(shù)據(jù)庫(kù)訪問(wèn)技術(shù),實(shí)現(xiàn)了AutoCAD圖面實(shí)體和Access數(shù)據(jù)庫(kù)的動(dòng)態(tài)連接,很好地實(shí)現(xiàn)了圖庫(kù)聯(lián)動(dòng)功能,使修改工作更加方便快捷,滿足了工作生產(chǎn)的需要,大大提高了內(nèi)業(yè)數(shù)據(jù)處理工作的效率,帶來(lái)了一定的生產(chǎn)效益。

        [1] 北京市測(cè)繪設(shè)計(jì)研究院.CJJ 61—2003J271—2003城市地下管線探測(cè)技術(shù)規(guī)程[S].北京:中國(guó)建筑工業(yè)出版社,2003.

        [2] 曾洪飛,張帆,盧擇臨.AutoCAD VBA&VB.NET開(kāi)發(fā)基礎(chǔ)與實(shí)例教程[M].北京:中國(guó)電力出版社,2008.

        猜你喜歡
        圖面圖庫(kù)數(shù)據(jù)處理
        金山農(nóng)民畫(huà)矢量圖庫(kù)的建設(shè)與應(yīng)用
        認(rèn)知診斷缺失數(shù)據(jù)處理方法的比較:零替換、多重插補(bǔ)與極大似然估計(jì)法*
        ILWT-EEMD數(shù)據(jù)處理的ELM滾動(dòng)軸承故障診斷
        帶狀地形圖斷面數(shù)據(jù)采集的程序化實(shí)現(xiàn)
        基于生產(chǎn)實(shí)踐若干需求完善大比例尺地形圖圖面表達(dá)方式的探討
        視圖庫(kù)在AI浪潮里的發(fā)展應(yīng)用
        專(zhuān)題地圖圖面要素自動(dòng)配置方法的研究
        Photoshop CC圖庫(kù)面板的正確打開(kāi)方法
        基于希爾伯特- 黃變換的去噪法在外測(cè)數(shù)據(jù)處理中的應(yīng)用
        圍繞“四個(gè)全面”戰(zhàn)略布局 譜寫(xiě)偉大復(fù)興宏偉篇章
        丰满少妇人妻久久精品| 久久国产影视免费精品| 国产一区二区三区观看视频| 蕾丝女同一区二区三区| 久久久久88色偷偷| 国产欧美亚洲精品a| 日韩精品永久免费播放平台| 久久精品一区一区二区乱码| 亚洲av色香蕉一区二区三区| 久草手机视频在线观看| 熟女人妇 成熟妇女系列视频| 亚洲男人av天堂午夜在| 中文字幕天堂在线| 久久久久综合一本久道| 亚洲永久免费中文字幕| 在线观看的网站| 97一区二区国产好的精华液| 国产韩国精品一区二区三区| 天堂丝袜美腿在线观看| 99精品国产丝袜在线拍国语| 久久香蕉免费国产天天看| 日本一区二区三区资源视频| 国产激情一区二区三区在线| 帮老师解开蕾丝奶罩吸乳视频 | 人妻在线中文字幕| 久久夜色精品国产亚洲av老牛| 欧美牲交a欧美牲交| 亚洲男人的天堂在线播放| 日韩亚洲欧美精品| 亚洲乱妇熟女爽到高潮视频高清| 又色又爽又高潮免费视频国产| 福利网址在线观看| 亚洲精品中文字幕乱码人妻| 国产内射爽爽大片| 国产无遮挡又黄又爽在线视频| 老熟女一区二区免费| 少妇太爽了在线观看免费| 精品久久久久久无码人妻热| 国产精品无码久久久一区蜜臀| 男人一插就想射的原因| 国产精品无码久久综合|