宋 琦,張亮有
(太原科技大學 機械工程學院,山西 太原 030024)
隨著產品設計信息化的高速發(fā)展,三維CAD技術的應用日趨廣泛。帶式輸送機在現代工業(yè)生產過程中發(fā)揮的作用越來越大,產品已經實現了通用化、標準化、系列化,因此,對帶式輸送機三維設計[1]開發(fā)技術的研究刻不容緩。
SolidWorks是一款優(yōu)秀的機械設計自動化軟件,利用SolidWorks能夠設計全相關的三維實體模型及裝配體。軟件本身具有良好的人機交互式參數繪圖功能,通過三維建模技術和參數化技術,設計人員可以方便地對已有模型進行交互式的修改。
SolidWorks主要依靠其軟件內嵌的API接口進行二次開發(fā)。API接口是一種COM術語,它囊括了SolidWorks中使用到的所有類,SolidWorks采用的是面向對象技術的方法,在SolidWorks之下是表示應用程序各種對象模型的事件、屬性和方法。COM編程使得SolidWorks軟件將實際的SolidWorks對象的上千種函數功能全部暴露給外部世界。編程人員通過調用SolidWorks API函數,就可以完成對三維模型的創(chuàng)建、修改、裝配等操作,從而實現某些特定功能設計的自動化。SolidWorks API的對象模型是一個自上而下的層次結構,Sldworks是其中的最高級對象,必須先對其進行訪問,然后才能訪問層次結構中的下一級對象,以此類推。SolidWorks二次開發(fā)的工具主要有Visual Basic、Visual C++和Delphi等編程語言。其中,Visual Basic是一種可視化應用程序的編程語言,語法規(guī)則簡單,而且SolidWorks軟件所提供的宏錄制功能是在VBA的環(huán)境下實現的,與Visual Basic語法規(guī)則幾乎一致;另一方面,使用VB語言可以簡單快捷地建立強大的數據庫,因而我們選擇Visual Basic作為開發(fā)工具。
參數化設計和變型零部件的三維外形建模是SolidWorks二次開發(fā)應用的兩個主要方面,解決了同結構、不同尺寸零件的大批量設計問題以及具有非標準表面零部件的三維設計難題[2]。本文主要通過SolidWorks的二次開發(fā),根據模型參數的變化,動態(tài)地獲得所需零件的三維實體模型及裝配體。基于SolidWorks二次開發(fā)的參數化建模方法主要有編程法和尺寸驅動法兩種。
編程法就是將模型的建立過程完全利用Visual Basic編程語言和SolidWorks API函數表達在應用程序中,利用程序來順序地驅動設計過程,模型的創(chuàng)建流程類似于手工建模。在編程法中,設計過程的所有約束和關系式都包含在程序代碼中。這種方法無需模型庫的支持,適用于參數較多或變型設計的零部件產品的參數化建模,但要求編程人員非常熟悉SolidWorks API函數。
尺寸驅動法是利用設計參數和三維模型的相關性,在三維模型結構保持不變的情況下,將零部件模型的尺寸標注視為變量,給予變量不同的尺寸值,就會得到一系列結構類型相同而尺寸不同的零部件模型。模型的創(chuàng)建實質就是對基準模型的參數化重建,這種方法節(jié)省了模型建立的過程,執(zhí)行效率更高,但需要模型庫的支持,模型的設計變量是模型與程序之間的聯系紐帶。
選用以上任一種二次開發(fā)方法,都需要使用SolidWorks API函數和編寫大量的程序代碼。采用Visual Basic對SolidWorks進行二次開發(fā),就可以利用SolidWorks中的宏錄制功能,獲得相應的宏操作代碼,將其復制添加到主程序對應部分,再將有關常量換成相應的變量,經過編輯修改調試來達到程序的要求。
使用VB對SolidWorks API進行二次開發(fā)時,每個工程中必須包含SolidWorks 2012Constant Type Library。這個類型庫包含所有公開的API接口以及它們包含的用于SolidWorks自動操作的可使用成員[3]。只有在VB工程中引用了該類型庫,才可以建立SolidWorks應用對象,創(chuàng)建新的零件或裝配圖,其連接代碼如下:

程序中模型的創(chuàng)建需要大量數據的支持,本文采用Access 2007創(chuàng)建參數化設計所需的數據庫,并且以DTⅡ(A)手冊中提供的數據表為依據,以直接錄入的方式添加數據。采用ADO技術對數據庫進行訪問[4],ADO是Microsoft提出的一種應用程序接口,也是COM的一部分。ADO的對象模型主要包括Connection(數據庫連接對象)、Recordset(數據集對象)和Command(命令對象)三個對象,使VB程序可以方便地實現對數據庫的訪問。在工程中引用Microsoft ActiveX Data Objects 6.1Library,聲明并創(chuàng)建數據庫連接對象,然后建立如下數據庫連接:

在零部件模型的裝配過程中主要運用了數學變換陣理論,通過矩陣變換可以確定或移動一個零部件在裝配體中的物理位置[5]。裝配體的零部件可以是單獨的零件,也可以是已裝配好的子裝配體。而配合關系是指零部件的表面或邊與參考集合體(基準軸、基準面)的約束關系,用于調整零部件在裝配體中的位置和方向,限制零部件的自由度。配合關系可以分為標準配合、高級配合以及機械配合,其中,常用到的標準配合又包括角度、距離、鎖定、同軸心、垂直、重合、平行、相切等8種配合類型。
在設計零部件的時候,需要預先考慮到該零部件在裝配體模型中與其他零部件之間的配合關系,并根據實際情況,在適當的位置添加基準軸和基準面,便于后期的裝配。裝配完畢后,干涉檢查是一項非常重要的環(huán)節(jié),用于檢查各個零部件之間的干涉情況。
輸送機普通輥子主要包括軸、輥皮和軸承座等零部件。本文以輸送機普通輥子的軸為例說明基于VB的SolidWorks二次開發(fā)的具體過程。輥子軸外形簡單,所以選用尺寸驅動的方法進行二次開發(fā)更加方便快捷。
(1)確定建模需要定義的軸的參數,并分析軸的設計關系。需要確定的參數主要是驅動各種特征的驅動尺寸[6],包括描述特征外形的定形尺寸和確定特征位置的定位尺寸。DTⅡ(A)手冊中已經給出普通輥子軸的設計關系和部件型譜,分別如圖1和表1所示,可以確定軸的規(guī)格參數主要有5個:長度L+2f、直徑d、f、h、b。

圖1 輥子外形尺寸參數

表1 輥徑為Φ108mm輥子的部分部件型譜
(2)運用SolidWorks軟件創(chuàng)建輥子軸的三維模型,并將其中的參數尺寸名稱重新命名,以更好地表達特征,例如,軸的直徑用d表示。
(3)依據手冊所提供的數據,在Microsoft Office Access 2007中建立模型尺寸數據庫“普通輥子參數尺寸表.accdb”。
(4)建立尺寸驅動用戶界面,編寫程序連接SolidWorks和Access數據庫,利用已經建立好的數據庫表中的數據,選擇輥子的直徑D和長度L,可以快捷地進行數據庫查詢,從而驅動SolidWorks中三維模型的建立,實現尺寸數據與模型變量的一一對應,還可以根據實際需求讀取尺寸數據、對數據進行修改保存。以下是將變量參數賦予軸尺寸的部分代碼:

輥子零部件模型建立后,將它們插入到裝配體文件中,實現輸送機普通輥子的自動裝配。其中,主要用到的SolidWorks API有:AssemblyDoc.AddComponent5(向裝配體文件中添加零部件)、AssemblyDoc.Extension.SelectByID(選擇實體元素)、AssemblyDoc.AddMate3(建立配合關系)。普通輥子裝配流程如圖2所示。
輸送機普通輥子的裝配運行結果如圖3所示。用同樣的技術原理和方法建立輥子內部軸承、脹套、密封圈等部件的三維模型,生成完整的輥子三維總裝圖,其內部結構如圖4所示。

圖2 普通輥子裝配流程圖
本文基于三維設計開發(fā)技術,通過分析輸送機輥子的外形特征,利用Visual Basic對SolidWorks進行二次開發(fā),實現了帶式輸送機普通輥子的三維參數化建模及智能裝配,在產品系列化設計、智能裝配方面具有工程實際意義。設計人員可以依據該原理對SolidWorks進行其他更加復雜的二次開發(fā),完成機械產品整機系統(tǒng)的三維模型設計,可縮短產品設計周期,提高產品開發(fā)效率。

圖3 輥子裝配三維圖

圖4 輥子總裝圖內部結構
[1]徐國權,黃志超.基于SolidWorks的參數化設計二次開發(fā)研究[J].機械設計與研究,2007,23(1):68-70.
[2]曾鋒,鐘治初,姚山.SolidWorks API二次開發(fā)方法與應用[J].嘉應學院學報(自然科學版),2011,29(11):21-25.
[3]葉修梓,陳超祥.SolidWorks高級教程:二次開發(fā)與API[M].北京:機械工業(yè)出版社,2009.
[4]盛利,張亮有,謝立新.SolidWorks二次開發(fā)精確草繪問題的分析與探討[J].現代制造工程,2014(4):68-71.
[5]于洋,賀棟,魏蘇麒.基于SolidWorks二次開發(fā)的智能裝配技術研究[J].機械設計與制造,2011(3):60-62.
[6]田文濤,賀小華.基于VB技術的SolidWorks二次開發(fā)與應用[J].計算機工程與科學,2009,31(7):65-67.