摘 要:論述了建立壓入式模柄的數(shù)據(jù)庫方法和過程;實(shí)現(xiàn)數(shù)據(jù)庫數(shù)值與壓入式模柄三維模型自動(dòng)鏈接技術(shù);制定VB窗體和有關(guān)控件實(shí)現(xiàn)控件與數(shù)據(jù)庫鏈接及圖形自動(dòng)更新,這些方法為后續(xù)模具裝配體的參數(shù)化設(shè)計(jì)打下良好的基礎(chǔ)。
關(guān)鍵詞:控件;鏈接;代碼 ;窗體
中圖分類號(hào):TP
文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1672-3198(2010)19-0311-02
1 利用VB建立數(shù)據(jù)庫
1.1 啟動(dòng)數(shù)據(jù)管理器
啟動(dòng)Visual Basic 6.0 ,鼠標(biāo)單擊選擇選項(xiàng),啟動(dòng)數(shù)據(jù)管理器,進(jìn)入數(shù)據(jù)庫設(shè)計(jì)界面 ,如圖1。
1.2 建立數(shù)據(jù)庫
單擊數(shù)據(jù)庫管理器的→命令,在下級(jí)菜單中選擇命令,出現(xiàn)
圖1 數(shù)據(jù)管理器
圖2 數(shù)據(jù)庫管理器
對(duì)話框,在文件名中輸入:壓入式模柄 ,則在數(shù)據(jù)管理器中出現(xiàn)如圖2中和兩個(gè)子窗口。新建的數(shù)據(jù)庫不含任何數(shù)據(jù)表。
1.3 建立數(shù)據(jù)表
將鼠標(biāo)指針移到區(qū)域內(nèi),單擊鼠標(biāo)右鍵出現(xiàn)快捷菜單,單擊命令,則出現(xiàn)對(duì)話框,在對(duì)話框中單擊添加字段按鈕,添加有關(guān)字段后結(jié)果如圖3.
圖3 壓入式模柄數(shù)據(jù)表對(duì)話框
圖4 數(shù)據(jù)記錄表
表結(jié)構(gòu)中需要添加字段包括Access類型的數(shù)據(jù)表各個(gè)字段的名稱、類型、寬度等。
注意:所添加的字段的類型設(shè)定要與后面準(zhǔn)備輸入的數(shù)據(jù)相匹配,否則錄入記錄時(shí)會(huì)出錯(cuò)。
1.4 輸入記錄
數(shù)據(jù)表設(shè)計(jì)好后,就可以輸入記錄,在單擊鼠標(biāo)右鍵,選擇命令,記錄的顯示可以單記錄形式顯示,也可以多記錄的形式顯示。然后在各相應(yīng)的字段名稱中輸入數(shù)值,形成數(shù)據(jù)表中的記錄。這時(shí)一張簡(jiǎn)單的壓入式模柄的數(shù)據(jù)表已經(jīng)形成。
2 建立有關(guān)控件及鏈接
2.1 ADO的基本概念
在VB中用戶可使用三種數(shù)據(jù)訪問接口:即ActiveX數(shù)據(jù)對(duì)象(ADO)、數(shù)據(jù)訪問對(duì)象(DAO)和遠(yuǎn)程數(shù)據(jù)對(duì)象(RDO),這三種接口代表了數(shù)據(jù)訪問技術(shù)的三個(gè)發(fā)展時(shí)代,其中最新的是ADO,它最簡(jiǎn)單也最靈活,因此本篇論文采用此接口。
2.2 創(chuàng)建ADO Data 控件
ADO Data 控件不是內(nèi)部控件,因此在使用前必須將其添加到工具箱。通過用鼠標(biāo)左鍵單擊,在下拉菜單中選擇命令,打開對(duì)話框選中選中復(fù)選框,則在工具箱中增加了ADO Data 控件(Adodc)的圖標(biāo)。將ADO Data控件放置到窗體中,默認(rèn)的控件名為“Adodc1 ”改為:壓入式模柄參數(shù)表,更改相關(guān)屬性后ADO Data控件的外觀為:。
2.3 創(chuàng)建連接
(1)右鍵單擊Adodc控件,在彈出的菜單中選中項(xiàng),結(jié)果如圖5。
圖5 屬性頁對(duì)話框
圖6 數(shù)據(jù)鏈接對(duì)話框
“使用連接字符”,單擊,則彈出對(duì)話框中選擇“Microsoft Jet 4.0 OLEDB Provider”項(xiàng) ,其它項(xiàng)的使用在此不再詳述。
(2) 單擊“下一步”,則出現(xiàn)“連接”選項(xiàng)卡,在連接選項(xiàng)卡中可以設(shè)定要連接數(shù)據(jù)庫文件。單擊瀏覽文件,在出現(xiàn)的對(duì)話框中選擇已建立的數(shù)據(jù)庫文件“F:\\數(shù)據(jù)庫\\壓入式模柄.mdb”如圖6。
(3) 單擊“測(cè)試連接”按鈕,如果出現(xiàn)“測(cè)試連接成功”的消息框,則說明我們用Adodc控件連接成功。出現(xiàn)錯(cuò)誤,則繼續(xù)檢查數(shù)據(jù)提供者是否選擇正確,及數(shù)據(jù)庫文件是否也設(shè)置正確。
(4) 單擊“確定”按鈕返回屬性頁對(duì)話框。單擊“記錄源”選項(xiàng)卡,在“記錄源”的命令類型列表中選擇2-adCmdTable項(xiàng),在“表或存儲(chǔ)過程名稱”列表中選擇“壓入式模柄”,這樣就可以利用Adodc1控件打開壓入式模柄數(shù)據(jù)表。結(jié)果如圖7
圖7 記錄源設(shè)置
3 實(shí)現(xiàn)文本框與數(shù)據(jù)表連接和圖形的參數(shù)化控制
開放數(shù)據(jù)庫互聯(lián)ODBC(Open Data Base Connection)提供了一整套的應(yīng)用程序接口(API)函數(shù),可以方便實(shí)現(xiàn)與Access 相連?,F(xiàn)將用ODBC技術(shù)與VB的支持,實(shí)現(xiàn)程序與數(shù)據(jù)的鏈接,使設(shè)計(jì)所需的數(shù)據(jù)隨時(shí)從數(shù)據(jù)庫中調(diào)取,同時(shí)也可以在使用過程中不斷的擴(kuò)充和修改數(shù)據(jù)庫,從而使模具設(shè)計(jì)更加合理和高效。
在本例將以“壓入式模柄”為例說明:實(shí)現(xiàn)在文本框中顯示從數(shù)據(jù)庫中提取來的數(shù)據(jù),并實(shí)現(xiàn)模柄三維圖形(利用SolidWorks造型過程忽略)與文本框中數(shù)值的自動(dòng)鏈接 (三維圖形各尺寸之間和位置之間應(yīng)進(jìn)行必要的約束),點(diǎn)擊按鈕可以實(shí)現(xiàn)三維圖形的自動(dòng)更新。
(1)雙擊按鈕 添加如下代碼,將實(shí)現(xiàn)從在文本框中顯示數(shù)據(jù)表中數(shù)據(jù)并將數(shù)據(jù)傳遞到相應(yīng)SolidWorks三維圖形,.實(shí)現(xiàn)模具圖形的自動(dòng)更新。
Dim part As Object;Dim strfileNAME As String;Dim longstatus As Long;Dim L1 As Single
Dim d1 As Single;Dim d2 As Single;Dim L2 As Single;Dim L As Single
IfDir(strfileNAME) = “” Then
MsgBox (“文件不存在,請(qǐng)檢查路徑:” vbCrLf strfileNAME)
Exit Sub
End If
d1 = Val(Text1.Text)'把文本框中的數(shù)字賦值變量
d2 = Val(Text2.Text)
d = Val(Text3.Text)
L1 = Val(Text4.Text)
L2 = Val(Text5.Text)
L = Val(Text6.Text)
strfileNAME = “F:\\模柄\\壓入式模柄.SLDPRT”
Set swApp = CreateObject(“sldworks.application”);swApp.Visible = True
Set part = swApp.OpenDoc4(strfileNAME, 1, 0, “”, longstatus)
Set part = swApp.ActivateDoc(“壓入式模柄”) '激活文件
strfileNAME = “@壓入式模柄.slDprt”
part.Parameter(“D1@草圖3” strfileNAME).systemvalue = d1 / 1000
part.Parameter(“D1@草圖1” strfileNAME).systemvalue = d2 / 1000
part.Parameter(“D1@草圖4” strfileNAME).systemvalue = d / 1000
part.Parameter(“D1@拉伸1” strfileNAME).systemvalue = L2 / 1000
part.Parameter(“D1@拉伸3” strfileNAME).systemvalue = (L1 - L2 - 2) / 1000
part.Parameter(“D1@拉伸4” strfileNAME).systemvalue = (L - L1) / 1000
part.Parameter(“D1@草圖2” strfileNAME).systemvalue = (d1 - 1) / 1000
part.editrebuild;Set part = Nothing;Set swApp = Nothing.
End Sub
(2)雙擊“上一組參數(shù)命令”按鈕 添加如下代碼:可以實(shí)現(xiàn)數(shù)據(jù)向上翻轉(zhuǎn).
Private Sub Command1_Click()
Set rs = Adodc1.Recordset;If Adodc1.Recordset.EOF = False Then
d1 = rs.Fields(2);d2 = rs.Fields(3);L1 = rs.Fields(4);Debug.Print d1, d2, L1
rs.MoveNext;Else;Adodc1.Recordset.MoveFirst;End If;End Sub
(3)雙擊“下一組參數(shù)” 按鈕 添加如下代碼:可以實(shí)現(xiàn)數(shù)據(jù)向下翻.
Private Sub Command2_Click()
Set rs = Adodc1.Recordset
If Adodc1.Recordset.BOF = False Then '如果已經(jīng)到達(dá)數(shù)據(jù)表的末尾,則移動(dòng)到最后一條記錄
d1 = rs.Fields(2);d2 = rs.Fields(3);L1 = rs.Fields(4);Debug.Print d1, d2, L1
rs.MovePrevious;Else
Adodc1.Recordset.MoveLast
End If;End Sub
制訂的VB 窗體如圖8,點(diǎn)擊【模型更新】按鈕,三維圖形更新后的結(jié)果如圖9。
圖8 窗體及控件
圖9 更新后的模型
4 結(jié)語
數(shù)據(jù)庫與圖形鏈接技術(shù)最終使數(shù)據(jù)庫數(shù)據(jù)直接轉(zhuǎn)化為產(chǎn)品零件三維模型,通對(duì)模具零件數(shù)據(jù)庫數(shù)據(jù)修改和增加而改變零件的尺寸和形狀,達(dá)到了“立優(yōu)即現(xiàn)”的動(dòng)態(tài)效果。為模具更高層次的參數(shù)化控制奠定了基礎(chǔ),極大地縮短了模具零件的設(shè)計(jì)周期,是企業(yè)信息化工程的重要組成部分。后續(xù)可以利用AetiveX Automation技術(shù),將生成的.dll文件集成到客戶應(yīng)用程序中,訂制菜單集成于SolidWorks中,使軟件更加客戶化、專業(yè)化,具有很好的工程實(shí)用價(jià)值。
參考文獻(xiàn)
[1]程寶義.計(jì)算機(jī)輔助設(shè)計(jì)基礎(chǔ)[M].長(zhǎng)沙:國防科技大學(xué)出版社,1999.
[2]江洪,李仲興,邢啟恩.SolidWorks 2003 二次開發(fā)基礎(chǔ)與實(shí)例教程[M]. 北京:電子工業(yè)出版社,2003.