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