北京工商大學材料與機械工程學院 張世龍 趙 罘 薛美榮 李 娜 林建邦
階梯軸由于便于零件裝拆和固定的特點,在機械結構中得到廣泛應用。階梯軸在設計過程中其結構參數和加工工藝水平高低對整個機械的尺寸和可靠性有很大影響。為了階梯軸的設計過程能快速完成,設計一個軟件來取代傳統手工制圖,提高設計效率是非常必要的。
Solid Works是的一款非常優秀的三維機械設計自動化軟件。該軟件以優異的性能、易用性和創新性,極大地提高了機械工程師的設計效率,其應用范圍涉及航空航天、汽車、工程機械、造船、通用機械、家電、醫療機械等諸多領域。SolidWorks操作簡單,初學者能快速上手,容易學習掌握,在同類軟件的激烈競爭中已經確立了其市場地位,成為三維機械軟件的標準。SolidWorks還為用戶提供了二次開發接口,借助API函數我們可以在SolidWorks中建立自己所需的程序和模塊來更好地為我們服務[1]。
Visual Basic是一種由 Microsoft 公司開發的結構化的、模塊化的、面向對象的、包含協助開發環境的事件驅動為機制的可視化程序設計語言。而且,由于VB 引入了控件的概念,我們可以直接拿來使用許多已經編寫好的VB 程序,大大減少了程序員開發程序的時間,提高工作效率。利用VB這一特點對SolidWorks進行二次開發,可以快速建立屬于自己的應用程序[2]。
Solid Works二次開發有兩種方法,一是完全編程開發,二是利用SolidWorks中的宏命令輔助開發[3]。前者要求用戶利用API函數對要表達的所有對象進行程序編寫,這樣可以由編寫的程序完全驅動三維模型,能造型復雜尺寸的形體。但是完全編程開發方法需要設計人員對編程語言比較熟悉,對初學者來說有難度。后者是利用SolidWorks中的宏命令,首先通過宏錄制命令錄制相關操作,再將宏錄制過程中產生的代碼作為編寫程序時的基礎代碼,對其進行編輯修改,最后添加到程序中。
通過SolidWorks中的宏命令可以記錄SolidWorks用戶在操作過程中點擊鼠標、菜單選擇和鍵盤按鍵等執行的操作,這個記錄的操作過程還可以回放[4]。
一般有兩種方法繪制階梯軸:一是選擇以旋轉凸臺的方式生成階梯軸,二是選擇逐段拉伸實體生成階梯軸。這里為了錄制宏的程序簡便,選擇以旋轉凸臺的方式生成階梯軸,如圖1所示。

圖1 階梯軸零件Fig.1 Figure of Stepped shaft parts
通過在宏中添加用戶窗體,可以為程序添加用戶接口。將工具箱組件板上的Label、Command Button、TextBox等控件添加到用戶窗體中,接著在屬性窗口將控件CommandButton1、CommandButton2的屬性分別設置為“生成階梯軸”、“取消”。如圖2所示。

圖2 窗體圖Fig.2 Figure of form
在SolidWorks中,當宏錄制完成后,SolidWorks自己可以產生宏代碼。在所錄制的宏代碼中,可以找到一些符合我們要求的代碼,我們可以把它們拷貝到所要編的程序中加以利用,再對其進行編寫、修改等操作,最終建立屬于自己的程序,完成零件的三維建模。
(1)編寫SolidWorks與VB建立聯系的代碼
Dim swApp As Object
Dim Part As Object
Set swApp= CreateObject (“SldWorks.Application”)
swApp.Visible=True
(2) 添加定義變量代碼
由于我們在SolidWorks中創建一個新的零件時,都是以mm(毫米)作為默認單位,而我們通過人機交互界面輸入的數值確是以m(米)為單位,因此在程序中要注意單位必須相互轉換,全部要除以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對Solid Works進行二次開發,設計出人機交互界面,輸入階梯軸的設計參數,就可以實現在Solid Works中自動生成階梯軸的三維模型,大大減少了設計時間,并且可以大大改善在零件傳統設計過程中精度、質量和效率低的問題。
[1]東方智敏.SolidWorks 2014完全自學一本通[M].電子工業出版社,2014.
[2]曾祥光,張玲玲.基于VB的SolidWorks二次開發[J].機械工程師,2006(3):131-132.
[3]葉修梓,陳超祥.SolidWorks高級教程:二次開發與API[M].北京:機械工業出版社,2009.
[4]周凱旋,羅會信.基于Visual Basic的SolidWorks二次開發[J].機械制造,2005(5):46-48.