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

        ?

        基于AUTOCAD的圖形數(shù)據(jù)庫技術研究

        2011-10-21 06:05:34譚安平
        大眾科技 2011年6期
        關鍵詞:設計者菜單剖面

        向 渝 譚安平

        (成都理工大學工程技術學院,四川 樂山 614000)

        基于AUTOCAD的圖形數(shù)據(jù)庫技術研究

        向 渝 譚安平

        (成都理工大學工程技術學院,四川 樂山 614000)

        目前協(xié)同設計是國內(nèi)外研究的熱點。在協(xié)同設計中不可避免會產(chǎn)生沖突,結果沖突是協(xié)同設計中需要解決的主要沖突之一。文章研究的主要目的就是應用SQL2000和VBA開發(fā)工具設計出一個統(tǒng)一的圖形數(shù)據(jù)庫,使協(xié)同設計者準確高效的對CAD圖形進行操作、管理。同時數(shù)據(jù)庫數(shù)據(jù)在網(wǎng)絡中的傳輸信息量也要少,提高系統(tǒng)的響應速度和穩(wěn)定性。

        協(xié)同設計;圖形數(shù)據(jù)庫;VBA

        實時協(xié)同設計技術研究則是網(wǎng)絡支持的協(xié)同設計領域的熱點研究內(nèi)容之一。但由于Internet 網(wǎng)絡帶寬限制等諸多方面的影響,實時協(xié)同設計是較難實現(xiàn)的。

        本文以分布和集中式結構混合構造了一個實時設計系統(tǒng),用 SQL2000建立了一個統(tǒng)一的網(wǎng)絡圖形數(shù)據(jù)庫。為實時協(xié)同設計提供了基礎條件。

        (一)開發(fā)設計

        1.開發(fā)工具的選擇

        長期以來, AUTOCAD一直是主流的二維cad軟件,它提供了強大的構造、管理通用圖形對象的功能以及豐富的二次開發(fā)手段。以往的二次開發(fā)大多關注工程技術,較少涉及圖形數(shù)據(jù)庫技術,AUTOCAD2000版本后,增加了VBA作為開發(fā)工具,受到眾多開發(fā)者的歡迎,相關書籍也增多。在 VBA環(huán)境中,開發(fā)者不僅可以使用 VB中的一切功能,而且可以存取AUTOCAD的整個對象結構,因此我們選擇VBA工具實現(xiàn)實體數(shù)據(jù)庫的開發(fā)。

        2.實體數(shù)據(jù)

        AUTOCAD的基本功能是繪圖,繪出圖形都是以實體的形式保存。每個實體都對應著相應的實體數(shù)據(jù),這些數(shù)據(jù)是有唯一編號的。在cad的DXF組碼中對每一個實體都進行了相應的標識,就如同房間號。相應的數(shù)據(jù)就存儲在房間當中。本課題需要完成的主要任務就是實現(xiàn)圖形和數(shù)據(jù),數(shù)據(jù)和圖形的轉(zhuǎn)換,使圖形和數(shù)據(jù)方便快捷的共享。圖形中的實體數(shù)據(jù)包括實體的名稱(如直線、圓、塊等)、ID、點坐標、圖層、線型等。

        3.數(shù)據(jù)庫的連接

        AutoCAD的ActiveX Automation技術允許AutoCAD與其他具有ActiveX Automation技術的外部應用程序交換數(shù)據(jù)信息。這樣,AutoCAD數(shù)據(jù)信息的來源就被擴大了,它既可以從其他應用程序獲得遠遠超出原有的DWG等AutoCAD文件格式的數(shù)據(jù)信息,另一方面,也可以把自身圖形文件中的信息存儲到其他應用程序的文件中。一個最典型的例子就是AutoCAD可以把圖形文件中的屬性數(shù)據(jù)傳送到Microsoft Excel中去,并存為Excel的報表,以便于管理。

        圖1 數(shù)據(jù)庫應用程序的組織

        在AutoCAD 2005 VBA中可用的數(shù)據(jù)庫訪問接口有三種:ActiveX數(shù)據(jù)對象(ADO)、數(shù)據(jù)訪問對象(DAO)和遠程數(shù)據(jù)對象(RDO)。本課題運用ActiveX數(shù)據(jù)對象(ADO)訪問數(shù)據(jù)庫。

        (二)實體數(shù)據(jù)處理

        1.用戶事件的捕捉

        設計者操作實體數(shù)據(jù)需要自動錄入數(shù)據(jù)庫,對設計者操作的捕捉主要用到 VBA中文檔層事件。當系統(tǒng)中發(fā)生一個事件時,例如:當設計者添加、刪除或修改一個對象,或者當用戶執(zhí)行 UNDO,REDO等命令時,文檔層事件都會自動觸發(fā)。課題用到文檔層事件中的 Begin Command、Object Added、Object Modified和Begin Close事件等。例如當刪除命令開始時,觸發(fā)數(shù)據(jù)處理模塊的代碼如下:

        Private Sub AcadDocument _BeginCommand(ByVal CommandName As String)

        If CommandName = "ERASE" Then

        Call delete ’ 刪除實體并把實體數(shù)據(jù)錄入數(shù)據(jù)庫(delete宏為自寫代碼)

        End If

        End Sub

        2.圖形數(shù)據(jù)庫的建立

        圖形數(shù)據(jù)庫用SQL2000建立,數(shù)據(jù)庫名為tuxing,包含四個數(shù)據(jù)結構表tuku(實體信息總表),delete(刪除實體信息表),add(添加實體信息表),modify(修改實體信息表)。

        實體數(shù)據(jù)信息在SQL圖形數(shù)據(jù)庫中的格式,如圖2所示為直線數(shù)據(jù)在tuku表中格結構。

        圖2 直線數(shù)據(jù)格式

        3.實體數(shù)據(jù)的處理

        要對圖形空間中實體數(shù)據(jù)進行準確的處理,需要每個實體有唯一的編號。在 AUTO CAD中每個實體對應一個唯一的objectID,因此objectID成為一個實體唯一的標識。在實體創(chuàng)建時,可對實體添加擴展數(shù)據(jù),將實體對應的objectID號寫入擴展數(shù)據(jù),使擴展數(shù)據(jù)成為實體的新標識。擴展數(shù)據(jù)可以由設計者賦值,將原實體的擴展數(shù)據(jù)賦值給遠端重新生成的實體,使原實體和生成實體都具有相同的標識并在 SQL圖形數(shù)據(jù)庫中對應唯一的數(shù)據(jù)。

        (1)添加實體數(shù)據(jù)的處理圖中,對齒輪剖面線的自動添加、位置公差和粗糙度的標注基本沒涉及,使得齒輪參數(shù)設計不是很全面,需要設計者自行添加部分較多。

        (1)齒輪剖面線

        在VBA中,提供了AddHatch命令來對剖面進行添加,命令中需要設置剖面區(qū)域,剖面線類型,剖面線名稱及剖面關聯(lián)性。剖面區(qū)域需要是由實體圍成的封閉區(qū)域。程序自動完成剖切時,需要區(qū)域選擇是首尾相連依次選擇。下面列舉 實心式齒輪上部分剖面線自動生成程序:

        patternName = "ANSI31"

        PatternType = 0

        bAssociativity = True

        ' Create the associative Hatch object

        Set hatchOb =

        ThisDrawing.ModelSpace.AddHatch(PatternType,

        patternName, bAssociativity)

        Dim outerLoop (0 To 1) As AcadEntity

        Dim strr(11) As Double

        strr(0) = 0.4 * da

        strr(1) = 1.5 * da - df / 2

        strr(2) = 0.4 * da + s

        strr(3) = 1.5 * da - df / 2

        strr(4) = 0.4 * da + s

        strr(5) = 1.5 * da - d3 /2 - t

        strr(6) = 0.4 * da + s - t

        strr(7) = 1.5 * da - d3 / 2

        strr(8) = 0.4 * da + t

        strr(9) = 1.5 * da - d3 / 2

        strr(10) = 0.4 * da

        strr(11) = 1.5 * da - d3 /2 - t

        Set outerLoop (0) =

        ThisDrawing.ModelSpace.AddLightWeightPolyline(strr)

        pt1(0) = 0.4 * da

        pt1(1) = 1.5 * da - d3 /2 - t

        pt2(0) = 0.4 * da

        pt2(1) = 1.5 * da - df /2 Set outerLoop1(1) =

        ThisDrawing.ModelSpace.AddLine(pt1, pt2)

        ' Append the outer loop to the hatch object,and display the hatch

        hatchOb.AppendOuterLoop (outerLoop)hatchOb.Evaluate

        (2)齒輪位置公差

        VBA中提供了AddTolerance命令來添加公差的標注,在系統(tǒng)中程序自動讀取設計者對齒輪位置公差參數(shù)的設置,并把它賦值到標注當中。選擇設定的位置對齒輪進行標注。跳動公差標注程序如下:

        Dim textString As String

        Dim insertionPoint(0 To 2) As Double

        Dim direction(0 To 2) As Double

        Dim toler As Double

        toler = zhichidata.TextBoxtiao.text

        ' Define the tolerance object

        textString = "{Fgdt;h}%%v0" & toler &"%%v{Fgdt;A}"

        insertionPoint(0) = 0.5 * da + s + vc#:

        insertionPoint(1) = 1.5 * da - 0.5 * da - vc#:

        insertionPoint(2) = 0#

        direction(0) = 1#: direction(1) = 0#:

        direction(2) = 0#

        ' Create the tolerance object in model space

        Set toleranceObj =

        ThisDrawing.ModelSpace.AddTolerance(textString,

        insertionPoint, direction)

        (3)齒輪粗糙度

        齒輪粗糙度的自動標注在程序段中,用插入塊的方法來進行標注,在對齒輪繪圖時,粗糙度塊,已由后臺程序讀取設計者輸入?yún)?shù)進行生成。

        (四)菜單設計

        為了方便用戶使用,菜單是一種常用的方法用戶只需要通過點擊菜單執(zhí)行程序。要通過點擊菜單能夠執(zhí)行相應的程序,實際上就是要凋用相應的宏。以下為菜單調(diào)用宏的程序段:

        Set currMenuGroup = ThisDrawing.Application.MenuGroups.Item(0)

        Dim newMenu As AcadPopupMenu

        Set newMenu = currMenuGroup.Menus.Add("齒輪(" +Chr(Asc("&")) + "W)")

        Dim newMenuItem As AcadPopupMenuItem

        Dim openMacro As String

        openMacro = Chr(3) + Chr(3) + Chr(95) + "work" +Chr(32)

        Set newMenuItem = newMenu.AddMenuItem(newMenu.Count +1,"直齒圓柱齒輪(C)", openMacro)

        newMenu.InsertInMenuBar

        (ThisDrawing.Application.MenuBar.Count + 1)

        由于菜單只有在運行相應宏時才出現(xiàn),所以用AUTOlisp工具編程,使CAD啟動自動運行宏,讓新菜單欄成為系統(tǒng)默認菜單。使實用更方便簡潔。同時可運用“work”命令對窗口直接調(diào)用。系統(tǒng)菜單欄如圖6。

        圖6 系統(tǒng)菜單欄

        (五)結論

        本設計采用VBA技術,基于AutoCAD平臺開發(fā)出了直齒圓柱齒輪的參數(shù)化出圖,采用萊單運行模式,方便了用戶使用,模塊化設計便于程序的移植,利用程序開發(fā)技術,簡化了齒輪工程圖的繪制工作量,大大方便了設計人員,同時本系統(tǒng)同對以前齒輪出圖系統(tǒng)中的不足進行了補充。由于開發(fā)層度有限,系統(tǒng)中存在不足,在以后的進一步開發(fā)當中完善。

        [1] 張帆.AutoCAD VBA 卡發(fā)精彩實例教程[M].北京:清華大學出版社,2004.4-78.

        [2] 鄭文緯,吳克堅.機械原理[M].北京:高等教育出版社,1997.24.39.

        [3] 成大先.機械設計手冊[M].北京:化學工業(yè)出版社,2004.142·178.

        [4] 葉以農(nóng).AutoCAD 2000 ActiveX 與 VBA 參考手冊[M].北京:中國電力出版社,2001.

        [5] 佟士懋,邢芳芳,夏齊霄.AutoCAD ActiveX/VBA 二次開發(fā)技術基礎及應用實例[M].北京:國防工業(yè)出版社,2006.

        TP311

        A

        1008-1151(2011)06-01 2 0-0 2

        2011-03-31

        向渝(1982-),男,四川人,成都理工大學工程技術學院自動化系教師助教,碩士,研究方向為CADCAPPCAM。

        猜你喜歡
        設計者菜單剖面
        三點法定交叉剖面方法
        ——工程地質(zhì)勘察中,一種做交叉剖面的新方法
        2020德國iF設計獎
        中國新年菜單
        2019德國IF設計大獎
        基于曲線擬合的投棄式剖面儀電感量算法
        電子測試(2017年12期)2017-12-18 06:35:46
        本月菜單
        美食堂(2017年1期)2017-01-13 01:37:42
        復雜多約束條件通航飛行垂直剖面規(guī)劃方法
        楊敬:深水區(qū)醫(yī)改設計者
        深水區(qū)醫(yī)改設計者
        近年來龍門山斷裂GPS剖面變形與應變積累分析
        地震研究(2014年3期)2014-02-27 09:30:50
        国产成人AV乱码免费观看| 2022国内精品免费福利视频| 日韩AV无码一区二区三| 精品国产品欧美日产在线 | 国产日产亚洲系列av| 久久五月精品中文字幕| 91精品亚洲熟妇少妇| av天堂手机免费在线| 国产日产免费在线视频| 男女性生活视频免费网站| 一本之道日本熟妇人妻| 日本强伦姧人妻一区二区| 亚洲中文字幕一区精品自拍| 亚洲精品suv精品一区二区| 国产免费午夜a无码v视频| 制服丝袜天堂国产日韩| 亚洲国产剧情在线精品视| 亚洲精品熟女乱色一区| 日韩有码在线免费视频| 国产亚洲精品久久久久久国模美| 性xxxx18免费观看视频| 青青草原综合久久大伊人| 亚洲V日韩V精品v无码专区小说| 国产成人亚洲精品77| 日本二区视频在线观看| 少妇被粗大进猛进出处故事| 中文字幕人妻在线中字| 免费拍拍拍网站| 国产精品麻花传媒二三区别| 永久国产盗摄一区二区色欲| 一区二区三区不卡免费av| 久草手机视频在线观看| 日本入室强伦姧bd在线观看| 又爆又大又粗又硬又黄的a片| 亚洲AV手机专区久久精品| 亚洲天堂av在线一区| 亚洲av日韩一区二区| 精品偷拍被偷拍在线观看| 风流少妇又紧又爽又丰满| 99国产精品无码专区| 伊人久久大香线蕉av最新午夜|