柏子剛
摘 要:隨著CAD技術應用的不斷深入,三維參數化設計應用越來越廣泛。文章利用Visual Basic 6.0開發工具,分析研究了SolidWorks二次開發技術在壓縮機連桿類零件中的應用,該應用縮短了壓縮機零件的開發周期,提高了設計效率。
關鍵詞:SolidWorks;VB;二次開發;連桿類零件
中圖分類號:TH457 文獻標志碼:A 文章編號:2095-2945(2018)09-0150-03
Abstract: With the development of CAD technology, 3D parameterized design is applied more and more widely. This paper uses Visual Basic 6.0 development tool. The application of SolidWorks secondary development technology in compressor connecting rod parts is analyzed and studied. The application shortens the development period of compressor parts and improves the design efficiency.
Keywords: SolidWorks; VB; secondary development; connecting rod parts
1 概述
連桿類零件是活塞壓縮機中一種典型零件,其作用是將活塞上的推力傳遞給曲軸,同時又將曲軸的旋轉運動轉化為活塞的往復運動。在對活塞壓縮機進行設計的過程中,經常遇到零件結構相同而尺寸不同的情況,為了適應產品系列化和不同應用環境的需求,傳統設計方法勢必存在重復性設計和繪圖的弊端。因此隨著數字信息化進程的快速推進和CAD技術在企業中應用的不斷深入,三維參數化技術應用越來越廣泛,設計人員可以運用三維參數化技術快速模擬零件的三維草圖,從而縮短開發周期,提高設計效率。本文利用Visual Basic 6.0開發工具,分析研究了SolidWorks二次開發技術在壓縮機連桿類零件中的應用。
2 SolidWorks二次開發技術概述
基于Windows平臺的三維建模軟件SolidWorks是如今最優秀的三維CAD軟件之一,具有強大的建模、裝配、工程圖及運動、動力分析等功能。因此SolidWorks的應用越來越普及,為了適應產品系列化和不同應用環境的需求,對其進行二次開發也變得越來越有必要性。SolidWorks提供了大量的API(Application Program Interface)函數用于二次開發,開發者可以利用這些API函數,直接訪問SolidWorks,并可以使用多種高級語言,如 Visual Basic,VBA,Visual C++和Delphi等對這次API函數進行調用[1]。在這些語言中,Visual Basic具有可視化的設計界面,且對于初學者比較容易掌握,因此在對SolidWorks進行二次開發中得到比較多的應用。
3 SolidWorks二次開發的方法
在VB環境下,對SolidWorks進行二次開發有兩種方式[2],一種是完全編程開發,另一種是設計變量和編程語言相結合的開發方式。第一種完全用程序實現參數化設計,編程復雜,所以存在設計周期長、開發效率低的問題。第二種利用SolidWorks宏錄制功能,得到三維建模的宏代碼,將這些宏代碼在VB環境中進行編輯修改,進而實現三維建模的參數化設計。第二種方法具有編程簡單、效率高等特點,因此本文針對活塞壓縮機連桿類零件,在VB 6.0環境中,采用編輯宏代碼的方式對SolidWorks進行了相應的二次開發。
4 二次開發過程
以壓縮機連桿類零件為例,通過Visual Basic 6.0編程軟件來對SolidWorks進行二次開發。
4.1 設計變量的確定
如圖1所示,以反映連桿特征的尺寸參數作為主要參數(即設計變量),剖分式連桿的主參數有:連桿大頭孔徑d1、連桿大頭寬度D1、連桿大頭高度H1、連桿小頭孔徑d2、連桿小頭直徑D2、連桿小頭高度H2、連桿長度L、連桿體厚度B1、連桿體斷面壁厚B2、連桿體寬度Bm(最大寬度Bmax和最小寬度Bmin)。
另外程序內設定的關聯參數為:連桿大頭X向寬度D2=0.8D1、連桿大頭孔凸臺直徑d11=1.2d1、連桿體最大寬度Bmax在距連桿大頭孔中心為L'=1.2d1截面上取得,連桿體最小寬度Bmin在距連桿小頭孔中心為L''=1.2d2截面上取得。
4.2 VB程序界面介紹
在VB 6.0環境下建立如圖2所示的用戶界面,在輸入參數部分按照相應內容輸入數值,點擊界面中的“計算”按鈕,如果參數輸入與程序設定有出入,會顯示參數錯誤提示對話框。檢查參數重新計算,直至沒有參數錯誤提示,就可以點擊界面中的“建?!卑粹o創建相應的連桿模型。
4.3 關鍵代碼編寫
利用文中第三部分提到的第二種方法,首先把壓縮機連桿三維建模的過程錄制成宏文件。然后在VB 6.0環境中對宏代碼進行編輯修改,找出其中的關鍵函數和關鍵常數,對程序進行優化。
關鍵代碼如下:
4.3.1 定義變量[3]
Dim d1 As Single
Dim d2 As Single
Dim H1 As Single
Dim H2 As Single
……
Dim swApp As Object
Dim swPart As Object
Dim SelMgr As Object
……
4.3.2 VB與SolidWorks的互聯
Private Sub Command1_Click()
注釋:單擊Command1按鈕時執行程序,建立VB與SolidWorks的聯系
Set swApp =CreateObject("SldWorks.Application")
swApp.Visible = True
Set Part = swApp.newpart()
4.3.3 將變量參數值賦予連桿建模
將變量參數值賦予連桿有兩種方法。以連桿大頭孔徑輸入框為例。
方法1代碼:
Private Sub Text1_Change()
d1 = Text1.Text
End Sub
方法2代碼:
d1=Val(Text1.Text)
部分建模程序代碼:
Set Part = swApp.ActiveDoc
boolstatus=Part.Extension.SelectByID2(“前視基準面”,"PLANE", 0, 0, 0, False, 0, Nothing, 0)
Part.SetPickMode
Set skSegment=Part.SketchManager.CreateLine(0#, 0#, 0#, 0#, 0.014187, 0#)
Set skSegment=Part.SketchManager.CreateLine(0#, 0.0
14187, 0#, -0.011281, 0.014187, 0#)
Set skSegment=Part.SketchManager.CreateLine(-0.0112
81, 0.014187, 0#, -0.011281, 0#, 0#)
boolstatus = Part.Extension.SelectByID2("Line4","SKE
TCHSEGMENT",-7.33470835151652E-03,1.409959988328
04E-02, 0, False, 0, Nothing, 0)
Dim myDisplayDim As Object
Set myDisplayDim=Part.AddDimension2(-5.7561171177
5086E-03, 0.020326265305356, 0)
Dim myDimension As Object
Set myDimension = Part.Parameter(“D1@草圖1”)
myDimension.SystemValue = D1
注釋:關鍵常量用變量D1替換成能被VB調用的應用程序
……
4.4 將程序添加到SolidWorks
將程序添加到SolidWorks有兩種形式[4],一種是獨立應用程序方式,將用戶程序作為一個獨立的應用程序,格式為“*.exe”,通過API接口調用SolidWorks提供的服務,完成SolidWorks的控制和操作。另一種是插件形式,將用戶程序作為一個插件(*.dll)集成到SolidWorks中。本文采用的是第一種方法。
在SolidWorks環境下,利用“新建宏”功能建立文件名為“連桿零件.swp”的宏文件,并指定好存放路徑,該宏的具體代碼如下[5]:
Sub main ()
MyAppID=Shell("E:\Solidworks2012 \宏文件\連桿零件.exe",1)
AppActivate MyAppID
End Sub
在SolidWorks進行如下操作:工具菜單-自定義,點擊命令欄-宏,拖動“新建宏按鈕”到工具條中顯示如圖3所示界面,就可以對自定義宏進行操作。定義宏完成后就可以看到圖4中方框內的“連桿造型按鈕”。
4.5 運行結果
點擊“連桿造型”按鈕運行程序,彈出圖2界面,輸入相應參數,點擊“計算”按鈕無錯誤提示后,點擊“建?!卑粹o,創建的連桿模型如圖5所示。
5 結束語
本文利用Visual Basic 6.0開發工具,介紹了SolidWorks二次開發在壓縮機連桿類零件中的應用與研究。通過對SolidWorks的二次開發,我們可以根據實際需要構建SolidWorks的功能模塊。同時運用二次開發技術可以簡化設計工作,提高設計效率,這也為其他領域的研發設計工作提供了依據。
參考文獻:
[1]王衛榮,齊芬.SolidWorks的二次開發在箱體類零件中的應用[J].機械工程與自動化,2007(4):33-34.
[2]陳克源,王得勝.基于SolidWorks二次開發的支撐腳零件參數化設計[J].機械研究與應用,2011(4):87-89.
[3]明日科技.Visual Basic從入門到精通[M].清華大學出版社,2008.
[4]韓素蘭,陳合順.基于VB的SolidWorks標準件庫的開發研究[J].華北水利水電學院學報,2009(2):64-66.
[5]索超,李玉翔,林樹忠.基于VB語言對SolidWorks參數化設計的二次開發[J].制造業自動化,2013(8):137-139.
[6]謝麗函.Solidworks在裝備制造業中應用分析[J].科技創新與應用,2017(18):298.
[7]吳春橋.Solidworks在配管制造中的應用[J].科技創新與應用,2013(02):27.