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

基于AUTOCAD的圖形數據庫技術研究

2011-10-21 06:05:34譚安平
大眾科技 2011年6期
關鍵詞:數據庫設計

向 渝 譚安平

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

基于AUTOCAD的圖形數據庫技術研究

向 渝 譚安平

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

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

協同設計;圖形數據庫;VBA

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

本文以分布和集中式結構混合構造了一個實時設計系統,用 SQL2000建立了一個統一的網絡圖形數據庫。為實時協同設計提供了基礎條件。

(一)開發設計

1.開發工具的選擇

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

2.實體數據

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

3.數據庫的連接

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

圖1 數據庫應用程序的組織

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

(二)實體數據處理

1.用戶事件的捕捉

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

Private Sub AcadDocument _BeginCommand(ByVal CommandName As String)

If CommandName = "ERASE" Then

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

End If

End Sub

2.圖形數據庫的建立

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

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

圖2 直線數據格式

3.實體數據的處理

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

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

(1)齒輪剖面線

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

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命令來添加公差的標注,在系統中程序自動讀取設計者對齒輪位置公差參數的設置,并把它賦值到標注當中。選擇設定的位置對齒輪進行標注。跳動公差標注程序如下:

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

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

(四)菜單設計

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

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)

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

圖6 系統菜單欄

(五)結論

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

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

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

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

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

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

TP311

A

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

2011-03-31

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

猜你喜歡
數據庫設計
何為設計的守護之道?
現代裝飾(2020年7期)2020-07-27 01:27:42
《豐收的喜悅展示設計》
流行色(2020年1期)2020-04-28 11:16:38
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
數據庫
財經(2017年15期)2017-07-03 22:40:49
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
數據庫
財經(2017年2期)2017-03-10 14:35:35
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
主站蜘蛛池模板: 综合天天色| 日本www色视频| 中文字幕日韩视频欧美一区| 二级特黄绝大片免费视频大片| 999精品色在线观看| 婷婷开心中文字幕| 亚洲精品制服丝袜二区| 欧美午夜精品| 国产一级视频在线观看网站| 一级黄色片网| 波多野结衣二区| 日韩中文欧美| 亚洲色图另类| 99在线观看精品视频| 中文字幕无线码一区| 日本一区二区三区精品国产| 国产在线拍偷自揄拍精品| 欧美专区日韩专区| 中文一级毛片| 四虎亚洲国产成人久久精品| 97视频免费在线观看| 午夜激情婷婷| 99热这里只有成人精品国产| 欧美激情综合一区二区| 日韩成人午夜| 99在线视频精品| 怡红院美国分院一区二区| 日本午夜精品一本在线观看| 国产尹人香蕉综合在线电影| 久久午夜夜伦鲁鲁片不卡| 成人综合久久综合| 麻豆精品视频在线原创| 亚洲av色吊丝无码| 欧美另类第一页| 欧亚日韩Av| 国产无码精品在线播放| 国内精品免费| 99re这里只有国产中文精品国产精品| 日本久久久久久免费网络| 亚洲性网站| 青草娱乐极品免费视频| 亚洲性一区| 免费毛片在线| 国产毛片不卡| 免费在线色| 中文字幕有乳无码| 亚洲无码免费黄色网址| 国产精品福利导航| 中文无码毛片又爽又刺激| 精品免费在线视频| 一级毛片不卡片免费观看| 无码专区在线观看| 亚洲av日韩综合一区尤物| 无码'专区第一页| 亚洲最新网址| 久草视频一区| 波多野结衣无码视频在线观看| 日本午夜影院| 一级毛片中文字幕 | 国产欧美在线观看一区| 99这里只有精品免费视频| 国产成人精品一区二区| 丁香婷婷久久| 3344在线观看无码| a级毛片免费播放| 五月婷婷丁香色| 国产一区二区三区在线观看视频 | 国产在线小视频| www.99精品视频在线播放| 欧美激情第一欧美在线| 国产成人调教在线视频| 素人激情视频福利| 五月天福利视频| 国产麻豆va精品视频| 欧美国产成人在线| 国产乱肥老妇精品视频| 人妻免费无码不卡视频| 成年人国产视频| 亚洲色图综合在线| 都市激情亚洲综合久久| 97超爽成人免费视频在线播放| 欧美一级色视频|