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