0 引(yǐn)言
SolidWo rks 是基於Window s 平台(tái)、采(cǎi)用Paraso lid圖(tú)形(xíng)核(hé)心的一套三維CAD 軟件, 它支持參數化和特征造型技術, 能夠使用戶方便、快捷地創建任何複雜形狀的實(shí)體, 並且可以實現實體的參(cān)數化驅動。由於其界麵(miàn)友好(hǎo)、操作方便(biàn)、簡單易學, 目前(qián)已成為微機平台上流行的三維(wéi)設計(jì)軟件。更為重要的是, SolidWo rks提(tí)供了大量(liàng)的API( Applicat ion Prog ram Inter face, 應(yīng)用程序(xù)接口) 函數用於二次開發, 這些API 函數是SolidWo rks 的OLE( Object Linking and Embedding ,對象的嵌入與鏈接) 或COM ( Component ObjectModel, 組件對象模(mó)型) 接口, 使用戶能夠直接訪問SolidWo rks, 並可以使用多種高級語言, 如VB、VBA、VC 等(děng)對其進行二(èr)次開(kāi)發。
由於VB( Visual Basic) 是運(yùn)行在Windows 環境下的可視化編程語言, 具有語言規則簡單、功能齊全、使用簡捷的優點[ 1] , 已有很多科研工作者利用VB 語言對So lidWorks 進行了(le)二次開發[ 2~4] , 但大多(duō)停留在介紹開發的使用方法上, 對於Sol idWorks 在箱體類零件二次開發應用方麵的研究鮮有(yǒu)報道。箱類零件一般多用於支(zhī)撐和裝置其(qí)它零件, 結構形狀(zhuàng)複雜, 並且種類繁多, 結(jié)構差(chà)異很(hěn)大, 其結構以箱壁、筋板和框架為主, 工作表麵以平台和(hé)凸台為主。作者根據(jù)箱類零件特點, 用SolidWorks 對(duì)其進行三維建模, 並(bìng)采用高級(jí)語(yǔ)言VB 等進行編(biān)程, 達到(dào)參數(shù)化驅動(dòng)的目的, 實現箱體(tǐ)類零件的參數化設計, 使箱體設計更加規(guī)範、便捷和高效。
SolidWorks 二次開發關鍵技術及方法[ 5]本文主要通過編寫Visual Basic 程序來對SolidWo rks 軟件進行二次開發, 采用的技術方案是: Visual Basic+ Access+ SolidWor ks API, 其主要過程(chéng)如下:
( 1) 在Micro sof t Access 中建立箱體類零件設計中所(suǒ)需的表格數據庫, 供在箱體類零件設計中程序查詢使用。
( 2) 在So lidWor ks 中實現對箱體類零件的造型(xíng)。用SolidWo rks 創建箱體類零件三維模型(xíng)時(shí), 把建模(mó)的全過程錄(lù)製成宏文件(jiàn), 找出宏文件中與模型生成(chéng)有關的關(guān)鍵(jiàn)函數, 並確定其中的(de)關鍵常數, 弄清關鍵常數的變化對實體建模的影響(xiǎng), 將關鍵常數用變量代替, 這樣就建立了SolidWor ks 中的箱體類零件的參數(shù)化模型(xíng)。
( 3) 使用V B 語言編製應用程序界麵, 當進行箱體類零件設計(jì)時, 設計者通(tōng)過(guò)應用程序(xù)界麵錄入初始參數, 程序(xù)將自(zì)動計算出上述宏文件中(zhōng)所需相關參數, 編(biān)譯程序並生成可執行程序(xù)供SolidWorks 程序調用。
( 4) 完成可執行應用程序後, 使用SolidWor ks 中的宏操作命令將應用程序嵌入SolidWor ks 中, 實現二者的鏈接(jiē)。
通過(guò)以上四步就完成了So lidWorks 的二次開發。
以下是(shì)作者就二次開發中(zhōng)所用到的關鍵技術(shù)和方法進行的歸納與總結。
1. 1 OLE 和COM 技術
SolidWo rks 的二次開發分為兩種: 一種是基於OLE 技術的, 可以開發ex e 形式的程序(xù); 另(lìng)一種是基於COM 的, 可以生成* . dll 格式的文件, 作為(wéi)SolidWo rks 的插件在Sol idWorks 中被加載運用。OLE技術, 即對象的嵌入與鏈接技術, 使應用程序間能夠通過數據嵌入(rù)或鏈接(jiē)的方(fāng)式來共享數據。含有嵌(qiàn)入或鏈接文檔數據的應用程序, 稱之為容器程序; 提供文檔數據編輯的應用程序, 稱之為服務器程序。通過(guò)OLE 技術, 許(xǔ)多(duō)麵向對象的(de)應用程序可以與SolidWo rks 通(tōng)訊, 從而直接操縱Sol idWorks, 編製(zhì)用戶化程序滿足設計需要。COM 技術, 即(jí)組件對象(xiàng)模型, 定義了標準的構建組件的方法, 是軟件組件互相(xiàng)通訊的一種方式。它是一種二進製的網絡標準, 允許任(rèn)意兩個組件互相通訊。COM 不是一個特(tè)殊類型的(de)應用程(chéng)序(xù), 而是一個可以用來(lái)為任何類型的應用程序構建組件的普遍的模型。
1. 2 SolidWorks API 函數
SolidWo rks API 是SolidWorks 的OLE 應用程序開發接口, 為用戶提供了(le)完全麵向對象(xiàng)的類體係。它包括以下幾個方麵: 對象的類(lèi)型(xíng); 對象的屬性; 對象的方法。開發者通過操縱對象的屬性和調用對象的方法建立自己的應用程序, 開發者可以在通用(yòng)的開發平台如VB、VBA 、VC 等上(shàng)開發使用這些類的程序, 也可(kě)以在自己的程序中派生這(zhè)些類(lèi)的子類, 生成(chéng)這些類的對象, 對對象進行操作, 設置或修改對(duì)象的屬性, 從而訪問So lidWorks 的數據庫、圖形係統和係統(tǒng)界麵。
1. 3 VB 程序與SolidWorks 接口(kǒu)的實現
VB 程(chéng)序與SolidWo rks 接口的實現是箱體類零件參數化建模的(de)關鍵(jiàn)。將箱體類零件建(jiàn)模的過程(chéng)錄製成宏文件, 將宏(hóng)複製(zhì)到VB 中, 在(zài)VB 環境中對宏文件進行修改編輯, 加入如下語句, 並將其中的路徑修改為SolidWo rks 的安裝路徑:
Set swApp = C reat eObject ( " SldWorks . Applicat ion")
Set Part= sw App. Act iveDoc
sw App. LoadFile2" C : \ Pr ogr am
Files \ SolidWorks \ l an g \ chinese-simpl if ied \ T ut or ial \
Part . prtdot ", ""
Set Part= sw App. Act iveDoc
SetPart= sw App. New Documen t ( " C: \ ProgramFiles\ Sol idWork s
\ lang\ ch ines e- s implif ied\ Tut orial\ Part . p rtd ot ", 0, 0# , 0# )
這樣就實現了VB 與SolidWorks 的鏈接, 在VB 中(zhōng)編寫的程序就可以在SolidWor ks 環(huán)境中運行了(le)。
1. 4 數據庫的建(jiàn)立與讀取
數據庫所提供的服務是整個係統的關鍵, 本文是(shì)以V B 默認的Access 數(shù)據庫來存儲各種相關變量參數的。將複(fù)雜(zá)多樣的數據用嵌入和鏈接的(de)方式內置於數(shù)據庫中, 建(jiàn)立一個關係型數據庫, 然後在VB 應用程(chéng)序中通(tōng)過數據控件和數據庫相鏈接, 采用ADO 的方式讀取數據庫。
ADO 是Microsof t 數據庫應用程序開發的新接口, 是建立在OLE DB 之(zhī)上的(de)高層數據庫訪問技術。使用ADO 技術在(zài)VB 中檢索和讀(dú)寫數據的程序如下:
` 定義ADO 對象
Dim ss As St ring
Ss= App. Path & " \ "
Set con = New ADODB. Connect ion
Con. Connect ionS trin g= " Provider= Microsof t . jet . OLEDB. 4. 0; "
&" Persis t S ecu rit y
Inf o= Fal se; "" &" M ode= read: " &_ " Dat asou rce= " & s s &" :
\ 箱體類零件(jiàn). mdb; "
Con. Open ": \ 箱體類零件. mdb "
` 打開數據庫
2 箱體類零件的三維建模
在應用程序的開發中, 為(wéi)了讓設計者能夠根據自身經驗更好地實時控製整個箱體類零件設計過程和進度, 采用了對話框的(de)形式來完成計算(suàn)機和人之間的信息交流。以閥體為例(lì), 設計過程中的信(xìn)息交流界麵構成見圖1。整個(gè)應用程序的(de)運行結果——閥體零件的三維實體(tǐ)造型見圖2。
3 結論
閥(fá)體三(sān)維實體(tǐ)的成功建立表明用VB 對SolidWo rks 的二次開(kāi)發在箱體類零件(jiàn)參數化設計的應用(yòng)是行之有效的。從上述設計過程(chéng)可以看出, 參數化設計與(yǔ)傳統設(shè)計相比, 其最大的(de)特(tè)點是實現了整(zhěng)個(gè)設計(jì)過程(chéng)的自(zì)動化, 更為重要的是它能夠設計出一族而非(fēi)單一的零件模型, 這樣大大提(tí)高了工作效率, 也使得操作更加簡單方便(biàn)。
如果(guǒ)您(nín)有機(jī)床行業、企業相關新聞稿件發表,或進行資訊合作,歡迎聯係本網編輯部, 郵(yóu)箱:skjcsc@vip.sina.com