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

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

2011-10-21 06:05:34譚安平
大眾科技 2011年6期
關(guān)鍵詞:數(shù)據(jù)庫設(shè)計

向 渝 譚安平

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

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

向 渝 譚安平

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

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

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

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

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

(一)開發(fā)設(shè)計

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

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

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

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

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

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

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

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

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

1.用戶事件的捕捉

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

Private Sub AcadDocument _BeginCommand(ByVal CommandName As String)

If CommandName = "ERASE" Then

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

End If

End Sub

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

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

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

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

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

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

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

(1)齒輪剖面線

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

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命令來添加公差的標(biāo)注,在系統(tǒng)中程序自動讀取設(shè)計者對齒輪位置公差參數(shù)的設(shè)置,并把它賦值到標(biāo)注當(dāng)中。選擇設(shè)定的位置對齒輪進(jìn)行標(biāo)注。跳動公差標(biāo)注程序如下:

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)齒輪粗糙度

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

(四)菜單設(shè)計

為了方便用戶使用,菜單是一種常用的方法用戶只需要通過點(diǎn)擊菜單執(zhí)行程序。要通過點(diǎn)擊菜單能夠執(zhí)行相應(yīng)的程序,實(shí)際上就是要凋用相應(yīng)的宏。以下為菜單調(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)

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

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

(五)結(jié)論

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

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

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

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

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

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

TP311

A

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

2011-03-31

向渝(1982-),男,四川人,成都理工大學(xué)工程技術(shù)學(xué)院自動化系教師助教,碩士,研究方向?yàn)镃ADCAPPCAM。

猜你喜歡
數(shù)據(jù)庫設(shè)計
何為設(shè)計的守護(hù)之道?
《豐收的喜悅展示設(shè)計》
流行色(2020年1期)2020-04-28 11:16:38
瞞天過海——仿生設(shè)計萌到家
設(shè)計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
數(shù)據(jù)庫
財經(jīng)(2017年15期)2017-07-03 22:40:49
有種設(shè)計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
數(shù)據(jù)庫
財經(jīng)(2017年2期)2017-03-10 14:35:35
數(shù)據(jù)庫
財經(jīng)(2016年15期)2016-06-03 07:38:02
數(shù)據(jù)庫
財經(jīng)(2016年3期)2016-03-07 07:44:46
數(shù)據(jù)庫
財經(jīng)(2016年6期)2016-02-24 07:41:51
主站蜘蛛池模板: 又爽又大又黄a级毛片在线视频| 亚洲天堂免费在线视频| 亚洲AⅤ永久无码精品毛片| 亚洲一级毛片免费观看| 日本91在线| 亚洲综合经典在线一区二区| 日韩毛片免费观看| 大香网伊人久久综合网2020| 亚洲天堂伊人| 在线观看91精品国产剧情免费| 中文字幕日韩欧美| 国产精品嫩草影院视频| 72种姿势欧美久久久久大黄蕉| 国产亚洲高清视频| 欧美日韩中文国产va另类| 国产视频a| 亚洲精品制服丝袜二区| 老色鬼欧美精品| 亚洲国产综合精品一区| 欧洲高清无码在线| av大片在线无码免费| 国产成人精品在线1区| JIZZ亚洲国产| 超碰免费91| 国产精品欧美在线观看| 国产精品一区二区国产主播| 天堂在线视频精品| 亚洲无码高清视频在线观看| 日本免费一区视频| 国产福利免费视频| 亚洲国产精品一区二区第一页免 | 国产夜色视频| 中国国产一级毛片| 成人福利在线视频免费观看| 538国产视频| 亚洲天堂视频网| www亚洲天堂| 国产精品欧美亚洲韩国日本不卡| 极品性荡少妇一区二区色欲| 亚洲综合专区| 亚洲三级电影在线播放 | 青青极品在线| 欧美性久久久久| 永久免费AⅤ无码网站在线观看| 欧美69视频在线| 91在线播放国产| 免费无遮挡AV| 国产真实乱人视频| 毛片一区二区在线看| 国产亚洲视频播放9000| 国产视频a| 国产91小视频| 欧美日韩北条麻妃一区二区| 99视频全部免费| 欧美在线观看不卡| 久操线在视频在线观看| 91麻豆精品国产高清在线| 亚洲欧美另类色图| 少妇极品熟妇人妻专区视频| 亚洲中字无码AV电影在线观看| 久久综合色天堂av| 亚洲欧美日韩动漫| 天天躁日日躁狠狠躁中文字幕| 国产亚洲欧美在线人成aaaa | AV在线天堂进入| 国产成人精品一区二区秒拍1o| 日韩成人午夜| 色偷偷综合网| 色天天综合久久久久综合片| av尤物免费在线观看| 中文字幕亚洲无线码一区女同| a级毛片视频免费观看| 喷潮白浆直流在线播放| 国产呦视频免费视频在线观看| 日本人妻一区二区三区不卡影院 | 中文毛片无遮挡播放免费| 成人一区在线| 亚洲一级无毛片无码在线免费视频| 中文字幕一区二区人妻电影| 成人综合久久综合| 国产va视频| 亚洲自拍另类|