1 引言
三維參數(shù)化設(shè)計方法由于其高效、簡單、可移植性強等特點,正受到越來越多的研究設(shè)計人員的關(guān)注。利用VB對SolidWorks進行二次開發(fā)便是實現(xiàn)三維參數(shù)化設(shè)計方法常用的手段之一。SolidWorks為用戶對其進行二次開發(fā)提供了內(nèi)嵌的應(yīng)用程序接口(API),任何支持OLE和COM的編程語言都可以作為開發(fā)工具,如Delphi、C++、VisualC++、VisualBasic等。
調(diào)節(jié)閥又稱控制閥(如圖1所示),是過程控制系統(tǒng)中用動力操作去改變流體流量的裝置,隨著工業(yè)自動化程度的不斷提高,已廣泛應(yīng)用于冶金、電力、化工、石油、輕紡、造紙、建材等工業(yè)部門 。調(diào)節(jié)閥產(chǎn)品品種、規(guī)格繁多,人工設(shè)計周期較長、效率低。因此,研究Solid-Works二次開發(fā)技術(shù)在調(diào)節(jié)閥參數(shù)化設(shè)計中的應(yīng)用,對于縮短調(diào)節(jié)閥產(chǎn)品研發(fā)周期,提高設(shè)計效率和質(zhì)量,具有重要意義。
2 開發(fā)原理與思路
對SolidWorks進行二次開發(fā)主要是通過該軟件自身提供的API接口來實現(xiàn)的,該接口提供了大量的OLE對象(對象體系結(jié)構(gòu)如圖2所示)。用戶可以借助高級編程語言作為開發(fā)平臺,在設(shè)計友好界面的同時,利用程序調(diào)用OLE對象對SolidWorks進行訪問和操作,從而實現(xiàn)Solid-Works的參數(shù)化建模。
關(guān)于開發(fā)平臺的選擇問題,可以結(jié)合開發(fā)人員的實際情況選用。對于非計算機專業(yè)的工程技術(shù)人員而言,使用VisualBasic語言作為SolidWorks的二次開發(fā)平臺比較理想。該語言規(guī)則簡單、開發(fā)效率高,所具備功能已能滿足開發(fā)要求。此外,SolidWorks宏錄制功能的VBA環(huán)境與VisualBasic語言環(huán)境完全相同,便于開發(fā)人員快速上手。
在采用VisualBasic6.0對SolidWorks進行二次開發(fā)過程中,通過VB編寫的應(yīng)用程序為客戶端,SolidWorks為服務(wù)端,VB編寫的應(yīng)用程序驅(qū)動SolidWorks完成指定的設(shè)計工作。其基本開發(fā)思路是在SolidWorks環(huán)境中,任意選擇某一型號的調(diào)節(jié)閥產(chǎn)品,按正確的設(shè)計關(guān)系繪制出零件模型,同時利用SolidWorks宏錄制功能獲取相關(guān)代碼,然后根據(jù)零件設(shè)計需要分析并確定模型的參數(shù)變量,通過VB編程環(huán)境設(shè)計應(yīng)用程序操作界面,以尺寸驅(qū)動方式實現(xiàn)對調(diào)節(jié)閥零件的設(shè)計。由于調(diào)節(jié)閥多為系列化產(chǎn)品,零件結(jié)構(gòu)相似程度較高,因此VB應(yīng)用程序在設(shè)計時,可以通過建立Access數(shù)據(jù)庫,為用戶提供零件設(shè)計時所需參數(shù)。該開發(fā)思路的工作流程如圖3所示。
3 應(yīng)用實例
下面結(jié)合調(diào)節(jié)閥閥座的參數(shù)化設(shè)計,闡述基于VB和SolidWorks的二次開發(fā)技術(shù)在調(diào)節(jié)閥參數(shù)化設(shè)計中的應(yīng)用。
3.1 模型特征繪制
SolidWorks是一套基于特征建模的三維軟件,它以草圖的形狀和尺寸為基礎(chǔ),通過“拉伸”、“旋轉(zhuǎn)”、“掃描”、“放樣”命令將2D草圖轉(zhuǎn)換為3D實體模型,然后在上述模型的基礎(chǔ)上進行“切除”、“圓角”、“倒角”、“鉆孔”等操作,完成單個零件的制作。
電動調(diào)節(jié)閥零件結(jié)構(gòu)大多數(shù)具有回轉(zhuǎn)體特征,在繪制模型時常用“拉伸”、“旋轉(zhuǎn)”命令。繪制調(diào)節(jié)閥閥座零件模型如圖4所示。
3.2 確定變量參數(shù)與約束
為了使后續(xù)程序能夠方便地調(diào)用、修改模型參數(shù),應(yīng)結(jié)合模型的設(shè)計要求選擇和命名參數(shù)變量,添加必要的尺寸約束關(guān)系。調(diào)節(jié)閥閥座設(shè)計變量參數(shù)及約束關(guān)系如下:
Extrude1——頂部特征圓直徑:D1、頂部特征圓長度:H1;
Extrude2——退刀槽直徑:D2;
Extrude3——外螺紋公稱直徑:D3,外螺紋長度:H2;
Cut-Extrude1——中心孔直徑:D4,中心孔長度:H;
Cut-Extrude2——工藝孔直徑:D5,工藝孔孔深:HD,工藝孔孔距:L;
Cut-Revolve1——工藝孔錐體部分。
對于繪制工藝孔錐體部分的草圖,需要為其添加約束條件“HoleRadius@Sketch6”=“Exclude2_D1@Sketch5”/2,使工藝孔錐體底部半徑與工藝孔孔徑成1:2的關(guān)系。
具體操作為:打開繪制好的閥座模型,在工藝孔草圖中將孔徑名稱命名為Exclude2_D1,在工藝孔錐體草圖中將錐體底部半徑命名為HoleRadius,然后在菜單欄“Tools”選擇“Equations”,在彈出的對話框中加入上述約束條件即可。
3.3 建立動態(tài)鏈接
啟動VisualBasic6.0新建標準exe工程,在“工程”→“引用”中選擇需要加載的類型庫文件,主要包括:SldWorks 2007 Type Library、SolidWorks 2007 Constant Type Library、SolidWorks2007 Commands Type Library和SolidWorks 2007 Exposed Type Libraries for add-inuse。加載類型庫文件后,初步建立了VB與SolidWorks之間的通信連接,使得VB能夠調(diào)用SolidWorks的對象、方法和屬性。
3.4 設(shè)計用戶訪問界面
根據(jù)上面所確定的變量參數(shù),設(shè)計閥座參數(shù),定義用戶界面,如圖5所示。
3.5 模型更新程序
要使變量參數(shù)能夠驅(qū)動模型庫中的模型,實現(xiàn)模型的自動更新,在完成上述步驟,還需要通過模型更新程序來驅(qū)動。部分調(diào)節(jié)閥閥座模型自動更新程序如下。
SetswApp=CreateObject(″SldWorks.Application″) '打開SolidWorks接口為調(diào)用其API函數(shù)做準備
swApp.Visible(True) '啟動SolidWorks,使其窗口可視
Set Part=swApp.OpenDoc(MyPath+″\Class_閥座.SLDPRT″,swDocPART) '調(diào)用零件庫模型
If Part Is Nothing Then
ExitSub
Else
Set Part=swApp.ActivateDoc(″Class_閥座.SLDPRT″) '激活模型,使模型可修改
End If
Part.Parameter(″TopDiameter@Sketch1″).SystemValue=Class_Top '頂圓直徑D1
Part.Parameter(″D1@Extrude1″).SystemValue=Class_Extrude1_D1 '頂部長度H1
Part.Parameter(″MidDiameter@Sketch2″).SystemValue=Class_Mid '退刀槽直徑D2
Part.Parameter(″D1@Extrude2″) .SystemValue=Class_Extrude2_D1 '退刀槽長度H-H1-H2
Part.Parameter(″DownDiameter@Sketch3″).SystemValue=Class_Down '外螺紋公稱直徑D3
Part.Parameter(″D1@Extrude3″) .SystemValue=Class_Extrude3_D1 '外螺紋長度H2
Part.Parameter(″Exclude1_D1@Sketch4″).SystemValue=Class_Exclude1_D1 '中心孔直徑D4
Part.Parameter(″Exclude2_D1@Sketch5″).SystemValue=Class_ScrewHoleDia '工藝孔直徑D5
Part.Parameter(″HoleDistance@Sketch5″).SystemValue=Class_ScrewHoleDis '工藝孔孔距L
Part.Parameter(″D1@Cut-Extrude2″).SystemValue=Class_ScrewHoleDepth '工藝孔孔深
HDPart.EditRebuild '重新建立模型
Part.ShowNamedView2 ″*Trimetric″,8 '調(diào)整模型視角
Part.ViewZoomtofit2
MsgBox″三維造型結(jié)束″,vbOKOnly,″提示″'顯示模型更新完畢信息
注:此程序在WindowsXp SolidWorks 2007 EN下調(diào)試通過。
3.6 建立尺寸參數(shù)數(shù)據(jù)庫
根據(jù)前面所確定的調(diào)節(jié)閥閥座零件變量參數(shù),利用Access建立符合要求的數(shù)據(jù)庫。數(shù)據(jù)庫建立后,在程序中通過數(shù)據(jù)控件與特定的數(shù)據(jù)表相連接,為用戶提供可選擇的零件設(shè)計參數(shù)。
4 結(jié)論
用VB6.0對SolidWorks軟件平臺進行二次開發(fā),實現(xiàn)了設(shè)計變量與編程語言相結(jié)合的調(diào)節(jié)閥零件參數(shù)化設(shè)計,其自動化程度高,能夠方便快捷地設(shè)計出一系列結(jié)構(gòu)相似的零件參數(shù)化模型,簡化了零件設(shè)計過程,提高了設(shè)計工作效率。因此,該方法在機械零件設(shè)計領(lǐng)域具有廣闊的應(yīng)用前景。
參考文獻
[1] 江洪,李仲興,邢啟恩.SolidWorks2003二次開發(fā)基礎(chǔ)與實例教程[M].北京:電子工業(yè)出版社,2003.
[2] 何衍慶,邱宣振,楊潔,等.控制閥工程設(shè)計與應(yīng)用[M].北京:化學(xué)工業(yè)出版社,2005.
[3] 徐國權(quán),黃志超.基于SolidWorks的參數(shù)化設(shè)計二次開發(fā)研究[J].機械設(shè)計與研究,2007,23(1):68-87.
[4] 曾祥光,張玲玲.基于VB的SolidWorks二次開發(fā)[J].機械工程師,2006(3):131-132.
咨詢需求
