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

        ?

        基于數(shù)據(jù)庫模式的圖形開發(fā)與應(yīng)用

        2011-06-30 10:46:48李榮川
        江蘇船舶 2011年3期
        關(guān)鍵詞:數(shù)據(jù)庫模型

        陳 寧,李榮川,2

        (1.江蘇科技大學(xué)船舶與海洋工程學(xué)院,江蘇 鎮(zhèn)江 212003;2.92538部隊(duì),遼寧 大連 116041)

        0 引言

        在以AutoCAD為平臺(tái)的工程制圖過程中,圖形的引用與圖形信息統(tǒng)計(jì)是一項(xiàng)繁瑣的工作。盡管其為此提供了塊的解決圖形引用的問題,但其操作不夠簡單快捷,而且不能實(shí)現(xiàn)將圖形塊保存到統(tǒng)一的圖形數(shù)據(jù)庫中,以方便其他工程人員的引用。而對于圖形信息的統(tǒng)計(jì),作為AutoCAD本身更是無法做到。可見,如何做到方便快速的生成圖形、插入圖形、統(tǒng)計(jì)圖形信息成為提高繪圖效率的關(guān)鍵所在。二次開發(fā)能夠提高工作效率和減輕工作量,其開放式結(jié)構(gòu)能滿足不同專業(yè)的需要,來實(shí)現(xiàn)設(shè)計(jì)中的應(yīng)用,達(dá)到改進(jìn)和加強(qiáng) AutoCAD功能的目的[1]。因此,在建立統(tǒng)一的圖形數(shù)據(jù)庫的基礎(chǔ)上對AutoCAD進(jìn)行二次開發(fā)成為了提高繪圖效率的有效途徑。通過VBA(Visual Basic For Application)可以用ActiveX技術(shù)對AutoCAD進(jìn)行二次開發(fā),且其與其他二次開發(fā)工具相比,VBA具有突出的優(yōu)點(diǎn):①應(yīng)用程序運(yùn)行速度快;②其編程語言和開發(fā)環(huán)境簡單;③與Windows交互性好[2]。利用VBA與數(shù)據(jù)庫相結(jié)合的模式對AutoCAD進(jìn)行二次開發(fā),不但可以方便地將具有屬性的圖形保存到統(tǒng)一的圖形數(shù)據(jù)庫下,而且可以實(shí)現(xiàn)方便快速地插入數(shù)據(jù)庫中的圖形,并且還能夠?qū)D形的操作記錄及屬性保存到記錄數(shù)據(jù)庫中。通過讀取處理記錄數(shù)據(jù)庫中的信息,不僅可以達(dá)到實(shí)現(xiàn)對圖形統(tǒng)計(jì)的目的,還能夠結(jié)合一定的程序自動(dòng)生成明細(xì)表。

        1 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)

        系統(tǒng)針對的是在AutoCAD平臺(tái)下如何實(shí)現(xiàn)圖形數(shù)據(jù)庫的創(chuàng)建、圖形的插入與記錄及圖框和明細(xì)表的自動(dòng)生成3個(gè)功能。采用VBA與通用性較好的Microsoft Access工具進(jìn)行聯(lián)合開發(fā),并在實(shí)物關(guān)系模型基礎(chǔ)上建立數(shù)據(jù)庫,并以相關(guān)關(guān)系運(yùn)算為指導(dǎo),采用ADO技術(shù)實(shí)現(xiàn)VBA與Microsoft Access數(shù)據(jù)庫之間的通信,最終分別以3個(gè)VBA工程來實(shí)現(xiàn)要達(dá)到的3個(gè)功能,從而實(shí)現(xiàn)程序設(shè)計(jì)的要求。系統(tǒng)結(jié)構(gòu)設(shè)計(jì)圖如圖1所示。

        2 數(shù)據(jù)庫關(guān)系模型建立與相關(guān)關(guān)系運(yùn)算

        基于集合理論,數(shù)據(jù)庫系統(tǒng)的關(guān)系模型要以嚴(yán)格的數(shù)學(xué)概念為基礎(chǔ),具有嚴(yán)格的數(shù)學(xué)定義和完整的數(shù)學(xué)結(jié)構(gòu),還要能夠進(jìn)行查尋、插入、修改等工作。在實(shí)際的數(shù)據(jù)庫操作過程中,常要用到關(guān)系代數(shù)運(yùn)算,任何一種運(yùn)算都是將一定的運(yùn)算符作用到一定的運(yùn)算對象上,得到預(yù)期的運(yùn)算結(jié)果[3]。因此,要求AutoCAD圖形數(shù)據(jù)庫和繪圖記錄數(shù)據(jù)庫關(guān)模型均在嚴(yán)格的數(shù)學(xué)概念的基礎(chǔ)之上進(jìn)行建立和在關(guān)系代數(shù)的指導(dǎo)下進(jìn)行操作。

        2.1 關(guān)系模型的建立

        實(shí)物的關(guān)系結(jié)構(gòu)是建立關(guān)系模型的依據(jù)基礎(chǔ)。由于圖形文件占用存儲(chǔ)空間比較大,如果直接以二進(jìn)制格式存放在數(shù)據(jù)庫字段中,那么在頻繁查詢數(shù)據(jù)庫表時(shí),則必然會(huì)大大增加服務(wù)器內(nèi)存的負(fù)擔(dān)[4]。因此將圖形文件的路徑存入數(shù)據(jù)庫可以有效降低數(shù)據(jù)庫的占用空間,并提升數(shù)據(jù)庫查尋數(shù)據(jù)的效率,所以圖形數(shù)據(jù)庫的實(shí)際關(guān)系結(jié)構(gòu)為:

        (名稱,重量,材料,路徑,備注)?圖形塊?圖形文件?圖形庫 (1)

        為了在程序中屬性的提取和操作方便,將屬性與圖形分別存放,以屬性中的路徑來指定圖形文件的位置。則屬性數(shù)據(jù)庫與圖形庫關(guān)系分為:

        圖1 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)圖

        由于路徑與圖形文件具有映射關(guān)系,則:

        從屬性數(shù)據(jù)庫關(guān)系結(jié)構(gòu)可以推導(dǎo)屬性數(shù)據(jù)庫的關(guān)系模式:屬性數(shù)據(jù)庫(名稱,重量,材料,路徑,備注),其中屬性數(shù)據(jù)庫為關(guān)系名,括號中的項(xiàng)目為屬性,見表1。

        表1 圖形數(shù)據(jù)庫的關(guān)系模型

        同理,圖形記錄數(shù)據(jù)庫的關(guān)系模型為:圖形記錄數(shù)據(jù)庫(編號,名稱,插入點(diǎn)X,插入點(diǎn)Y,插入點(diǎn)Z,旋轉(zhuǎn)角,放大X,放大Y,放大Z,圖層,材料,重量,備注),見表 2。

        表2 圖形記錄數(shù)據(jù)庫關(guān)系模型

        2.2 數(shù)據(jù)庫關(guān)系模型的關(guān)系運(yùn)算

        關(guān)系運(yùn)算的方式包括傳統(tǒng)的集合運(yùn)算和專門的關(guān)系運(yùn)算。在本系統(tǒng)中,對數(shù)據(jù)庫中數(shù)據(jù)的操作集中于數(shù)據(jù)的讀寫與查找,因此,關(guān)系運(yùn)算集中于專門的關(guān)系運(yùn)算中的選擇運(yùn)算。在關(guān)系R中選擇滿足給定條件的元組,可以表示為σF(R),其中F表示選擇條件,它是一個(gè)邏輯表達(dá)式,取邏輯值“真”或“假”[5]。如在表1中查名稱為法蘭的模型,則表達(dá)式為:

        在系統(tǒng)設(shè)計(jì)過程中對表中的數(shù)據(jù)選擇時(shí)應(yīng)用此原理。

        3 程序功能的實(shí)現(xiàn)及關(guān)鍵技術(shù)

        在程序中,整個(gè)所應(yīng)用的關(guān)鍵技術(shù)主要可以分為兩個(gè)方面,一方面是如何實(shí)現(xiàn)VBA對AutoCAD的操作,另一方面如何實(shí)現(xiàn)VBA對Microsoft Access的操作。對于這兩個(gè)方面的關(guān)鍵技術(shù),在下面將結(jié)合VBA工程實(shí)現(xiàn)來進(jìn)行闡述。

        3.1 圖形數(shù)據(jù)庫創(chuàng)建工程的實(shí)現(xiàn)

        從整個(gè)程序的設(shè)計(jì)圖中可以看出,該工程的主要任務(wù)有兩個(gè),一是如何將圖形塊保存到圖形庫中,二是如何將屬性值寫入到屬性數(shù)據(jù)庫中。

        圖形數(shù)據(jù)庫創(chuàng)建是利用VBA與AutoCAD和Microsoft Access的接口來實(shí)現(xiàn)的,其邏輯圖如圖2所示。

        (1)首先分析圖形塊的保存。由于VBA與AutoCAD集成在一起,因此通過AutoCAD界面的界面菜單即可進(jìn)入到Visual Basic編輯器,通過其提供的工具箱建立如圖3所示窗口。

        圖2 圖形數(shù)據(jù)創(chuàng)建邏輯圖

        圖3 創(chuàng)建屬性塊窗體圖

        (2)其次分析圖形屬性與路徑如何保存到數(shù)據(jù)庫中。

        采用ADO(ActiveX Data Object)技術(shù)可以實(shí)現(xiàn)VBA與Microsoft Access的通信。ADO同DAO或RDO相比較,在效率上更高,速度更快,并且編寫應(yīng)用程序更加簡單,更加方便,比其他的數(shù)據(jù)訪問接口更加全面[6]。但其使用前提條件是必須在VBA環(huán)境中引用“Microsoft ActiveX Data Objects 2.5 Library”。

        以下是程序VBA與Microsoft Access數(shù)據(jù)庫連接的實(shí)現(xiàn)代碼。

        通過運(yùn)行以上代碼便可以建立起VBA與 Microsoft Access數(shù)據(jù)庫的連接。在此基礎(chǔ)上可以通過下面的方法在數(shù)據(jù)庫中增加行,實(shí)現(xiàn)數(shù)據(jù)庫的寫入操作。

        3.2 圖形的插入與記錄工程的實(shí)現(xiàn)

        從系統(tǒng)的設(shè)計(jì)圖可以看出,本工程的技術(shù)難點(diǎn)在于以下三個(gè)方面:一是如何查找數(shù)據(jù)庫中的數(shù)據(jù);二是如何將未打開圖形中的塊插入到當(dāng)前的工作空間;三是如何得到插入點(diǎn)的信息等屬性并將其寫入數(shù)據(jù)庫中。首先建立如圖4所示窗口。

        (1)實(shí)現(xiàn)數(shù)據(jù)庫存數(shù)據(jù)的查找首先要進(jìn)行數(shù)據(jù)庫的連接。從原理上講,要實(shí)現(xiàn)數(shù)據(jù)的查找就要依照關(guān)系代數(shù)中專門的關(guān)系運(yùn)算的選擇公式

        進(jìn)行語句設(shè)計(jì)。例如,在表中1查找法蘭的對應(yīng)的路徑,則程序的任務(wù)是,在數(shù)據(jù)表中查找法蘭所對應(yīng)的元組,當(dāng)找到后,將該組中路徑所對應(yīng)的分量從數(shù)據(jù)庫中讀取出來。

        在程序的部分關(guān)鍵代碼為:

        圖4 圖形塊管理界面

        以上代碼執(zhí)行條件是建立在VBA與Microsoft Access連接的基礎(chǔ)之上的,它的功能是從數(shù)據(jù)庫的第一行開始查找。如果在名稱屬性下查找到法蘭具有相同名稱的分量時(shí),則將其路徑屬性在元組中對應(yīng)的分量賦給path,然后退出,否則繼續(xù)在下一個(gè)元組中進(jìn)行查找。

        (2)利用ObjectDBX技術(shù)可以實(shí)現(xiàn)在圖形中插入其他已打開的圖形中的圖塊。ObjectDBX包含了一系列動(dòng)態(tài)鏈接庫 (dll),通過它們可以建立包含在AutoCAD圖形文件中的自定義對象,也可以使生成的應(yīng)用程序在AutoCAD環(huán)境之外對DWG圖形進(jìn)行處理[7]。使用ObjectDBX技術(shù)之前同樣要進(jìn)行引用,其引用項(xiàng)為“AutoCAD/ObjectDBX Common16.0 Type Library”。在引用后便可以進(jìn)行編程操作了。

        (3)在VBA與Microsoft Access已經(jīng)建立連接的基礎(chǔ)上將屬性值與插入點(diǎn)的信息寫入到記錄數(shù)據(jù)庫中要相對容易,在與數(shù)據(jù)庫已連接的基礎(chǔ)上,其實(shí)現(xiàn)代碼為:

        其他屬性值的寫入同理。

        3.3 圖框與明細(xì)表的生成工程的實(shí)現(xiàn)

        根據(jù)程序設(shè)計(jì)要求,在Visual Basic編輯器中編輯如圖5所示窗口。在本工程中,本工程有兩個(gè)重要的工作,一是在插入圖框塊后進(jìn)行的繪制明細(xì)表線框添加文字,另一個(gè)是數(shù)據(jù)庫中數(shù)據(jù)的計(jì)算,生成明細(xì)表。

        圖5 圖框與明細(xì)表生成界面

        (1)添加文字和線段相對簡單,只要利用現(xiàn)有的VBA函數(shù)就可以達(dá)到,見表3。

        表3 直線與文字增加函數(shù)

        (2)生成明細(xì)表首先要讀取記錄數(shù)據(jù)庫,獲得圖形所在的位置。為了操作方便可以將圖形的名稱與插入點(diǎn)信息復(fù)制到數(shù)組中,其實(shí)現(xiàn)關(guān)鍵代碼為:

        在數(shù)據(jù)信息被復(fù)制到數(shù)據(jù)庫后,便可以通過數(shù)組的操作來進(jìn)行排序、統(tǒng)計(jì),結(jié)合屬性數(shù)據(jù)庫獲得相應(yīng)屬性,再通過繪制線形與添加文字操作,便可生成明細(xì)表。其邏輯圖如圖6所示。程序運(yùn)行效果如圖7所示。

        4 結(jié)語

        (1)介紹了實(shí)現(xiàn)創(chuàng)建、引用數(shù)據(jù)庫存方法,并成功應(yīng)用于自動(dòng)生成圖框與明細(xì)表。

        (2)實(shí)踐發(fā)現(xiàn),通過VBA與MicrosoftAccess聯(lián)合開發(fā)AutoCAD可以降低繪制圖形所需要的時(shí)間,而且在圖形統(tǒng)計(jì)上準(zhǔn)確性高,能夠進(jìn)一步提高工作效率。

        圖6 明細(xì)表生成邏輯圖

        圖7 程序運(yùn)行效果圖

        [1]吳業(yè)紅.應(yīng)用VBA技術(shù)進(jìn)行AutoCAD二次開發(fā)[J].電腦知識(shí)與技術(shù),2009,5(28):7950 -7951.

        [2]吳海鋒.Auto CAD VBA在工程制圖中的應(yīng)用[J].交通科技與經(jīng)濟(jì),2009,(2):36 -38.

        [3]郭曄,王浩鳴,張?zhí)煊?數(shù)據(jù)庫技術(shù)與Access應(yīng)用[M].北京:人民郵電出版社,2009.

        [4]顧金鳳,姚壽廣,陳寧.產(chǎn)品數(shù)據(jù)管理中圖檔管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].華東船舶工學(xué)院學(xué)報(bào)(自然科學(xué)版),2004,18(1):91-94.

        [5]王志梅,黃河.關(guān)系數(shù)據(jù)庫基礎(chǔ)與技術(shù)[M].北京:國防工業(yè)出版社,2005.

        [6]喬美娥.ADO技術(shù)在VB系統(tǒng)開發(fā)中的高級應(yīng)用[J].中國科技信息,2008,(24):84 -85.

        [7]楊應(yīng)平,張明文,肖述剛.ObjectDBX技術(shù)在橋梁CAD中的簡化作用[J].中華建設(shè),2007,(12):67 -68.

        猜你喜歡
        數(shù)據(jù)庫模型
        一半模型
        重要模型『一線三等角』
        重尾非線性自回歸模型自加權(quán)M-估計(jì)的漸近分布
        數(shù)據(jù)庫
        數(shù)據(jù)庫
        3D打印中的模型分割與打包
        數(shù)據(jù)庫
        數(shù)據(jù)庫
        數(shù)據(jù)庫
        FLUKA幾何模型到CAD幾何模型轉(zhuǎn)換方法初步研究
        国产不卡视频在线观看| 国产99久久精品一区| 97无码人妻Va一区二区三区| 亚洲成人777| 69精品人妻一区二区| 中文字幕久久人妻av| 国产成年人毛片在线99| 亚洲人精品午夜射精日韩| 狠狠色综合7777久夜色撩人ⅰ| 超薄丝袜足j好爽在线观看| 窝窝影院午夜看片| 国产一区二区三区小说| 中文字幕有码高清| 国产精品一区一区三区| 国产情侣自拍一区视频| 日本成本人片免费网站| 亚洲熟女乱色综合亚洲图片| 狠狠色婷婷久久一区二区| 国产xxxxx在线观看免费| 亚洲免费无毛av一区二区三区| 亚洲国产综合精品中文| 一区二区三区日韩精品视频| 亚洲国产精品成人久久久| 伊人久久大香线蕉av不卡| 精品久久综合亚洲伊人| 亚洲av高清在线观看三区| 中文字幕中乱码一区无线精品| 日韩av在线亚洲女同| 国产精品久久久久久妇女| 波多野结衣av手机在线观看| 日韩国产精品一区二区Hd| 亚州毛色毛片免费观看| 色se在线中文字幕视频| 巨爆中文字幕巨爆区爆乳| 在线观看精品视频网站| 无码一区二区三区老色鬼| 囯产精品无码一区二区三区| 亚洲精品熟女乱色一区| 免费一级淫片日本高清| 亚洲人成色7777在线观看不卡| 国产在线观看入口|