柏子剛
摘 要:隨著CAD技術(shù)應(yīng)用的不斷深入,三維參數(shù)化設(shè)計(jì)應(yīng)用越來越廣泛。文章利用Visual Basic 6.0開發(fā)工具,分析研究了SolidWorks二次開發(fā)技術(shù)在壓縮機(jī)連桿類零件中的應(yīng)用,該應(yīng)用縮短了壓縮機(jī)零件的開發(fā)周期,提高了設(shè)計(jì)效率。
關(guān)鍵詞:SolidWorks;VB;二次開發(fā);連桿類零件
中圖分類號(hào):TH457 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):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 概述
連桿類零件是活塞壓縮機(jī)中一種典型零件,其作用是將活塞上的推力傳遞給曲軸,同時(shí)又將曲軸的旋轉(zhuǎn)運(yùn)動(dòng)轉(zhuǎn)化為活塞的往復(fù)運(yùn)動(dòng)。在對(duì)活塞壓縮機(jī)進(jìn)行設(shè)計(jì)的過程中,經(jīng)常遇到零件結(jié)構(gòu)相同而尺寸不同的情況,為了適應(yīng)產(chǎn)品系列化和不同應(yīng)用環(huán)境的需求,傳統(tǒng)設(shè)計(jì)方法勢(shì)必存在重復(fù)性設(shè)計(jì)和繪圖的弊端。因此隨著數(shù)字信息化進(jìn)程的快速推進(jìn)和CAD技術(shù)在企業(yè)中應(yīng)用的不斷深入,三維參數(shù)化技術(shù)應(yīng)用越來越廣泛,設(shè)計(jì)人員可以運(yùn)用三維參數(shù)化技術(shù)快速模擬零件的三維草圖,從而縮短開發(fā)周期,提高設(shè)計(jì)效率。本文利用Visual Basic 6.0開發(fā)工具,分析研究了SolidWorks二次開發(fā)技術(shù)在壓縮機(jī)連桿類零件中的應(yīng)用。
2 SolidWorks二次開發(fā)技術(shù)概述
基于Windows平臺(tái)的三維建模軟件SolidWorks是如今最優(yōu)秀的三維CAD軟件之一,具有強(qiáng)大的建模、裝配、工程圖及運(yùn)動(dòng)、動(dòng)力分析等功能。因此SolidWorks的應(yīng)用越來越普及,為了適應(yīng)產(chǎn)品系列化和不同應(yīng)用環(huán)境的需求,對(duì)其進(jìn)行二次開發(fā)也變得越來越有必要性。SolidWorks提供了大量的API(Application Program Interface)函數(shù)用于二次開發(fā),開發(fā)者可以利用這些API函數(shù),直接訪問SolidWorks,并可以使用多種高級(jí)語言,如 Visual Basic,VBA,Visual C++和Delphi等對(duì)這次API函數(shù)進(jìn)行調(diào)用[1]。在這些語言中,Visual Basic具有可視化的設(shè)計(jì)界面,且對(duì)于初學(xué)者比較容易掌握,因此在對(duì)SolidWorks進(jìn)行二次開發(fā)中得到比較多的應(yīng)用。
3 SolidWorks二次開發(fā)的方法
在VB環(huán)境下,對(duì)SolidWorks進(jìn)行二次開發(fā)有兩種方式[2],一種是完全編程開發(fā),另一種是設(shè)計(jì)變量和編程語言相結(jié)合的開發(fā)方式。第一種完全用程序?qū)崿F(xiàn)參數(shù)化設(shè)計(jì),編程復(fù)雜,所以存在設(shè)計(jì)周期長(zhǎng)、開發(fā)效率低的問題。第二種利用SolidWorks宏錄制功能,得到三維建模的宏代碼,將這些宏代碼在VB環(huán)境中進(jìn)行編輯修改,進(jìn)而實(shí)現(xiàn)三維建模的參數(shù)化設(shè)計(jì)。第二種方法具有編程簡(jiǎn)單、效率高等特點(diǎn),因此本文針對(duì)活塞壓縮機(jī)連桿類零件,在VB 6.0環(huán)境中,采用編輯宏代碼的方式對(duì)SolidWorks進(jìn)行了相應(yīng)的二次開發(fā)。
4 二次開發(fā)過程
以壓縮機(jī)連桿類零件為例,通過Visual Basic 6.0編程軟件來對(duì)SolidWorks進(jìn)行二次開發(fā)。
4.1 設(shè)計(jì)變量的確定
如圖1所示,以反映連桿特征的尺寸參數(shù)作為主要參數(shù)(即設(shè)計(jì)變量),剖分式連桿的主參數(shù)有:連桿大頭孔徑d1、連桿大頭寬度D1、連桿大頭高度H1、連桿小頭孔徑d2、連桿小頭直徑D2、連桿小頭高度H2、連桿長(zhǎng)度L、連桿體厚度B1、連桿體斷面壁厚B2、連桿體寬度Bm(最大寬度Bmax和最小寬度Bmin)。
另外程序內(nèi)設(shè)定的關(guān)聯(lián)參數(shù)為:連桿大頭X向?qū)挾菵2=0.8D1、連桿大頭孔凸臺(tái)直徑d11=1.2d1、連桿體最大寬度Bmax在距連桿大頭孔中心為L(zhǎng)'=1.2d1截面上取得,連桿體最小寬度Bmin在距連桿小頭孔中心為L(zhǎng)''=1.2d2截面上取得。
4.2 VB程序界面介紹
在VB 6.0環(huán)境下建立如圖2所示的用戶界面,在輸入?yún)?shù)部分按照相應(yīng)內(nèi)容輸入數(shù)值,點(diǎn)擊界面中的“計(jì)算”按鈕,如果參數(shù)輸入與程序設(shè)定有出入,會(huì)顯示參數(shù)錯(cuò)誤提示對(duì)話框。檢查參數(shù)重新計(jì)算,直至沒有參數(shù)錯(cuò)誤提示,就可以點(diǎn)擊界面中的“建?!卑粹o創(chuàng)建相應(yīng)的連桿模型。
4.3 關(guān)鍵代碼編寫
利用文中第三部分提到的第二種方法,首先把壓縮機(jī)連桿三維建模的過程錄制成宏文件。然后在VB 6.0環(huán)境中對(duì)宏代碼進(jìn)行編輯修改,找出其中的關(guān)鍵函數(shù)和關(guān)鍵常數(shù),對(duì)程序進(jìn)行優(yōu)化。
關(guān)鍵代碼如下:
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的互聯(lián)
Private Sub Command1_Click()
注釋:?jiǎn)螕鬋ommand1按鈕時(shí)執(zhí)行程序,建立VB與SolidWorks的聯(lián)系
Set swApp =CreateObject("SldWorks.Application")
swApp.Visible = True
Set Part = swApp.newpart()
4.3.3 將變量參數(shù)值賦予連桿建模
將變量參數(shù)值賦予連桿有兩種方法。以連桿大頭孔徑輸入框?yàn)槔?/p>
方法1代碼:
Private Sub Text1_Change()
d1 = Text1.Text
End Sub
方法2代碼:
d1=Val(Text1.Text)
部分建模程序代碼:
Set Part = swApp.ActiveDoc
boolstatus=Part.Extension.SelectByID2(“前視基準(zhǔn)面”,"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
注釋:關(guān)鍵常量用變量D1替換成能被VB調(diào)用的應(yīng)用程序
……
4.4 將程序添加到SolidWorks
將程序添加到SolidWorks有兩種形式[4],一種是獨(dú)立應(yīng)用程序方式,將用戶程序作為一個(gè)獨(dú)立的應(yīng)用程序,格式為“*.exe”,通過API接口調(diào)用SolidWorks提供的服務(wù),完成SolidWorks的控制和操作。另一種是插件形式,將用戶程序作為一個(gè)插件(*.dll)集成到SolidWorks中。本文采用的是第一種方法。
在SolidWorks環(huán)境下,利用“新建宏”功能建立文件名為“連桿零件.swp”的宏文件,并指定好存放路徑,該宏的具體代碼如下[5]:
Sub main ()
MyAppID=Shell("E:\Solidworks2012 \宏文件\連桿零件.exe",1)
AppActivate MyAppID
End Sub
在SolidWorks進(jìn)行如下操作:工具菜單-自定義,點(diǎn)擊命令欄-宏,拖動(dòng)“新建宏按鈕”到工具條中顯示如圖3所示界面,就可以對(duì)自定義宏進(jìn)行操作。定義宏完成后就可以看到圖4中方框內(nèi)的“連桿造型按鈕”。
4.5 運(yùn)行結(jié)果
點(diǎn)擊“連桿造型”按鈕運(yùn)行程序,彈出圖2界面,輸入相應(yīng)參數(shù),點(diǎn)擊“計(jì)算”按鈕無錯(cuò)誤提示后,點(diǎn)擊“建模”按鈕,創(chuàng)建的連桿模型如圖5所示。
5 結(jié)束語
本文利用Visual Basic 6.0開發(fā)工具,介紹了SolidWorks二次開發(fā)在壓縮機(jī)連桿類零件中的應(yīng)用與研究。通過對(duì)SolidWorks的二次開發(fā),我們可以根據(jù)實(shí)際需要構(gòu)建SolidWorks的功能模塊。同時(shí)運(yùn)用二次開發(fā)技術(shù)可以簡(jiǎn)化設(shè)計(jì)工作,提高設(shè)計(jì)效率,這也為其他領(lǐng)域的研發(fā)設(shè)計(jì)工作提供了依據(jù)。
參考文獻(xiàn):
[1]王衛(wèi)榮,齊芬.SolidWorks的二次開發(fā)在箱體類零件中的應(yīng)用[J].機(jī)械工程與自動(dòng)化,2007(4):33-34.
[2]陳克源,王得勝.基于SolidWorks二次開發(fā)的支撐腳零件參數(shù)化設(shè)計(jì)[J].機(jī)械研究與應(yīng)用,2011(4):87-89.
[3]明日科技.Visual Basic從入門到精通[M].清華大學(xué)出版社,2008.
[4]韓素蘭,陳合順.基于VB的SolidWorks標(biāo)準(zhǔn)件庫(kù)的開發(fā)研究[J].華北水利水電學(xué)院學(xué)報(bào),2009(2):64-66.
[5]索超,李玉翔,林樹忠.基于VB語言對(duì)SolidWorks參數(shù)化設(shè)計(jì)的二次開發(fā)[J].制造業(yè)自動(dòng)化,2013(8):137-139.
[6]謝麗函.Solidworks在裝備制造業(yè)中應(yīng)用分析[J].科技創(chuàng)新與應(yīng)用,2017(18):298.
[7]吳春橋.Solidworks在配管制造中的應(yīng)用[J].科技創(chuàng)新與應(yīng)用,2013(02):27.