北京工商大學(xué)材料與機(jī)械工程學(xué)院 張世龍 趙 罘 薛美榮 李 娜 林建邦
階梯軸由于便于零件裝拆和固定的特點(diǎn),在機(jī)械結(jié)構(gòu)中得到廣泛應(yīng)用。階梯軸在設(shè)計(jì)過程中其結(jié)構(gòu)參數(shù)和加工工藝水平高低對(duì)整個(gè)機(jī)械的尺寸和可靠性有很大影響。為了階梯軸的設(shè)計(jì)過程能快速完成,設(shè)計(jì)一個(gè)軟件來取代傳統(tǒng)手工制圖,提高設(shè)計(jì)效率是非常必要的。
Solid Works是的一款非常優(yōu)秀的三維機(jī)械設(shè)計(jì)自動(dòng)化軟件。該軟件以優(yōu)異的性能、易用性和創(chuàng)新性,極大地提高了機(jī)械工程師的設(shè)計(jì)效率,其應(yīng)用范圍涉及航空航天、汽車、工程機(jī)械、造船、通用機(jī)械、家電、醫(yī)療機(jī)械等諸多領(lǐng)域。SolidWorks操作簡單,初學(xué)者能快速上手,容易學(xué)習(xí)掌握,在同類軟件的激烈競(jìng)爭中已經(jīng)確立了其市場(chǎng)地位,成為三維機(jī)械軟件的標(biāo)準(zhǔn)。SolidWorks還為用戶提供了二次開發(fā)接口,借助API函數(shù)我們可以在SolidWorks中建立自己所需的程序和模塊來更好地為我們服務(wù)[1]。
Visual Basic是一種由 Microsoft 公司開發(fā)的結(jié)構(gòu)化的、模塊化的、面向?qū)ο蟮?、包含協(xié)助開發(fā)環(huán)境的事件驅(qū)動(dòng)為機(jī)制的可視化程序設(shè)計(jì)語言。而且,由于VB 引入了控件的概念,我們可以直接拿來使用許多已經(jīng)編寫好的VB 程序,大大減少了程序員開發(fā)程序的時(shí)間,提高工作效率。利用VB這一特點(diǎn)對(duì)SolidWorks進(jìn)行二次開發(fā),可以快速建立屬于自己的應(yīng)用程序[2]。
Solid Works二次開發(fā)有兩種方法,一是完全編程開發(fā),二是利用SolidWorks中的宏命令輔助開發(fā)[3]。前者要求用戶利用API函數(shù)對(duì)要表達(dá)的所有對(duì)象進(jìn)行程序編寫,這樣可以由編寫的程序完全驅(qū)動(dòng)三維模型,能造型復(fù)雜尺寸的形體。但是完全編程開發(fā)方法需要設(shè)計(jì)人員對(duì)編程語言比較熟悉,對(duì)初學(xué)者來說有難度。后者是利用SolidWorks中的宏命令,首先通過宏錄制命令錄制相關(guān)操作,再將宏錄制過程中產(chǎn)生的代碼作為編寫程序時(shí)的基礎(chǔ)代碼,對(duì)其進(jìn)行編輯修改,最后添加到程序中。
通過SolidWorks中的宏命令可以記錄SolidWorks用戶在操作過程中點(diǎn)擊鼠標(biāo)、菜單選擇和鍵盤按鍵等執(zhí)行的操作,這個(gè)記錄的操作過程還可以回放[4]。
一般有兩種方法繪制階梯軸:一是選擇以旋轉(zhuǎn)凸臺(tái)的方式生成階梯軸,二是選擇逐段拉伸實(shí)體生成階梯軸。這里為了錄制宏的程序簡便,選擇以旋轉(zhuǎn)凸臺(tái)的方式生成階梯軸,如圖1所示。
圖1 階梯軸零件Fig.1 Figure of Stepped shaft parts
通過在宏中添加用戶窗體,可以為程序添加用戶接口。將工具箱組件板上的Label、Command Button、TextBox等控件添加到用戶窗體中,接著在屬性窗口將控件CommandButton1、CommandButton2的屬性分別設(shè)置為“生成階梯軸”、“取消”。如圖2所示。
圖2 窗體圖Fig.2 Figure of form
在SolidWorks中,當(dāng)宏錄制完成后,SolidWorks自己可以產(chǎn)生宏代碼。在所錄制的宏代碼中,可以找到一些符合我們要求的代碼,我們可以把它們拷貝到所要編的程序中加以利用,再對(duì)其進(jìn)行編寫、修改等操作,最終建立屬于自己的程序,完成零件的三維建模。
(1)編寫SolidWorks與VB建立聯(lián)系的代碼
Dim swApp As Object
Dim Part As Object
Set swApp= CreateObject (“SldWorks.Application”)
swApp.Visible=True
(2) 添加定義變量代碼
由于我們?cè)赟olidWorks中創(chuàng)建一個(gè)新的零件時(shí),都是以mm(毫米)作為默認(rèn)單位,而我們通過人機(jī)交互界面輸入的數(shù)值確是以m(米)為單位,因此在程序中要注意單位必須相互轉(zhuǎn)換,全部要除以1000。
Dim L1 As Double
Dim L2 As Double
Dim L3 As Double
Dim d1 As Double
Dim d2 As Double
Dim d3 As Double
L1 =TextBox1 /1000
L1 =TextBox2 /1000
L1 =TextBox3 /1000
d1 =TextBox4 /2000
d2 =TextBox5 /2000
d3 =TextBox6 /2000
(3)修改部分主代碼
Sub main()
UserForm1.Show
End Sub
(4)編輯【取消】命令代碼
Private Sub CommandButton2_Click()End
End Sub
本文通過VB對(duì)Solid Works進(jìn)行二次開發(fā),設(shè)計(jì)出人機(jī)交互界面,輸入階梯軸的設(shè)計(jì)參數(shù),就可以實(shí)現(xiàn)在Solid Works中自動(dòng)生成階梯軸的三維模型,大大減少了設(shè)計(jì)時(shí)間,并且可以大大改善在零件傳統(tǒng)設(shè)計(jì)過程中精度、質(zhì)量和效率低的問題。
[1]東方智敏.SolidWorks 2014完全自學(xué)一本通[M].電子工業(yè)出版社,2014.
[2]曾祥光,張玲玲.基于VB的SolidWorks二次開發(fā)[J].機(jī)械工程師,2006(3):131-132.
[3]葉修梓,陳超祥.SolidWorks高級(jí)教程:二次開發(fā)與API[M].北京:機(jī)械工業(yè)出版社,2009.
[4]周凱旋,羅會(huì)信.基于Visual Basic的SolidWorks二次開發(fā)[J].機(jī)械制造,2005(5):46-48.