孫惠娟 尹 洋 湯積仁 秦軍軍
(西華大學機械工程與自動化學院,四川 成都 610039)
SolidWorks軟件是在總結和繼承了大型機械CAD軟件的基礎上,在Windows環境下實現的第一個機械CAD軟件。各企業在實際的產品設計中大多要對通用CAD軟件進行二次開發,建立適合自己的專用模塊。SolidWorks的突出特點是:三維參數化特征造型,特征管理員功能,全相關的數據管理,它功能豐富、操作簡單、維護方便、學習周期短、應用開發方便,與多家CAM、CAE軟件有緊密接口。本文通過運用Delphi對SolidWorks進行二次開發來實現復雜的高速主軸三維成型及虛擬裝配體的過程,使用ACESS數據庫對高速主軸的相關參數進行傳遞和管理,提高了設計的效率與正確率。
SolidWoks為用戶提供了幾百個二次開發接口(SolidWorks API)[1,2],凡支持 COM 編程的開發工具,如Visual C++、Visual Basic、Delphi等均可用于SolidWorks的二次開發。SolidWorks API是 Solid-Works的OLE編程接口,為程序員提供了完全面向對象的類體系,程序員可以在自己的程序中,派生這些類的子類,生成這些類的對象,對對象進行操作,運行對象的方法,設置或修改對象的屬性,從而訪問 Solid-Works的數據庫、圖形系統和系統界面。SolidWorks的API對象涵蓋了全部的 SolidWorks的數據模型,進行二次開發時,調用 SolidWorks中的 API函數,可以完成零件各特征的建立、修改、刪除和壓縮等各項控制,零件特征信息的提取,如特征尺寸的設置與提取,特征所在面的信息提取及各種幾何和拓撲信息,零件的裝配信息,零件工程圖紙中的各項信息等。圖1所示為SolidWorks API的部分對象體系。
組件對象模型(Component Object Model,COM)[1]是由Microsoft公司在Windows操作系統中創建的一種二進制的網絡標準,是組件(即應用程序)間的接口。它允許兩個組件互相通信,而不論其運行于任何計算機(只要聯網),采用任何操作系統(只要支持COM)以及該組件隸屬于任何語言。另外,COM還引用了面向對象的思想,對象鏈接與嵌入(Object Linking and Embedding,OLE2)是第一個用COM架構的軟件系統。

本文使用面向對象語言Delphi[3]對SolidWorks進行二次開發。Delphi是Borland公司開發的一種可視化應用程序開發工具,其基礎語言為對象Pascal。它提供了一種快速的編譯器,它具有高性能的32位本地優化代碼編譯器,其應用程序可以直接運行,能夠最終生成可單獨執行的DLL與EXE文件。另一方面,使用Delphi可方便迅速地建立強大的數據庫應用程序。Delphi的數據庫應用程序可以和Paradox、Sybase、Microsoft SQL Server、Informix、InterBase 和 ODBC 數據源等一起使用。
(1)在 Delphi編程環境下,單擊菜單欄中的“Project(工程)”、“Import Type Library”命令,彈出“Import Type library”對話框。
(2)在“Import Type library”對話框中選擇“Sld-Works 2007 Type Liaray(Version f.0)”選項,單擊“Create Unit”按鈕,Delphi將在其import子目錄下生成該類型庫Object Pascal文件SldWorks_TLB.pas,然后就可以利用此文件進行二次開發了。
(3)在Delphi環境下新建一個工程,加入相關代碼,生成.exe文件或.dll文件,然后編譯運行即可。注意要將第二步中生成的SldWorks_TLB.pas文件添加到工程中。
主軸參數化系統結構如圖2所示。首先需要對主軸進行設計并計算出所有相關尺寸參數存入數據庫,以備以后對SolidWorks進行二次開發時調用。用戶在主程序界面,通過相應的操作,程序即可自動從數據庫中取出相關尺寸數據,調用相關SolidWorks API生成實體并調用零件庫在的零件生成虛擬裝配圖。

本文選用ACESS數據庫對高速主軸的相關參數進行傳遞和管理。圖3為數據庫顯示和本例的設計界面。其中namei為尺寸的名稱,datai為尺寸的數值。在應用程序中通過數據控件和數據庫建立連接,根據需要得到相應的數據信息來進行主軸三維圖形的繪制。

在Delphi環境下,創建如圖3所示的窗口,主要有三個控件:DBGrid1、Button1、Button2。主軸參數表DBGrid1中存放經過計算得到的主軸相關尺寸參數,當用戶單擊“生成三維圖形”按鈕時,主程序就會啟動SolidWorks軟件,并從表中提取主軸相關參數進行三維圖形的繪制[3],單擊“查看裝配圖”按鈕可以查看進行虛擬裝配后的圖形。
Button1Click過程的作用是啟動 SolidWorks繪圖平臺,并設置好繪圖環境;DrawPart過程的作用是引用數據庫中的數據記錄,以及調用 SolidWorks API函數功能進行零件圖的繪制。Button2的作用是從標準零件庫零件三維圖形中找到相應的零件進行虛擬裝配。
Button1Click過程的代碼和 DrawPart過程的部分代碼如下:


用戶單擊“生成三維圖形”按鈕后程序運行結果如圖4所示。用戶單擊“查看裝配圖”按鈕后系統自動從標準零件庫零件三維圖形中找到相應的零件進行裝配,裝配體如圖5所示。


介紹了在Delphi的集成開發環境下,通過調用SolidWorks API函數進行二次開發,實現機械零件參數化設計的方法。可以參考該方法對SolidWorks進行其他較為復雜的二次開發,建立適合用戶需要的、專用的SolidWorks功能模塊。通過實例表明,用戶通過對SolidWorks的二次開發可以提高產品的設計和開發效率。
1 殷國富,徐雷,胡曉兵.SolidWorks 2007二次開發技術[M].北京:機械工業出版社,2007.
2 (美)SolidWorks公司.SolidWorks API二次開發[M].北京:機械工業出版社,2005.
3 何鵬飛.Delphi 7程序設計教程[M].北京:清華大學出版社,2003.
4 張海蓮,馬琳.Delphi 7組件應用實例[M].北京:電子工業出版社,2003.