劉 方,劉 煒
(1.江蘇聯(lián)合職業(yè)技術學院 無錫交通分院,江蘇 無錫 214151;2.江蘇科技大學 能源與動力工程學院,江蘇 鎮(zhèn)江 212003)
柴油機作為應用最為廣泛的內(nèi)燃機,由于結構形狀復雜,技術要求高,加工難度大,傳統(tǒng)的設計和加工之間的信息傳遞多停留在二維的紙質(zhì)文件上,導致企業(yè)的工作效率較低。隨著數(shù)字化、信息化的高科技發(fā)展,計算機輔助設計和制造的引入,三維建模和虛擬仿真技術普遍應用于產(chǎn)品研發(fā)和設計領域。在研發(fā)的過程中,不同尺寸的產(chǎn)品需要重復大量的建模工作來進行仿真分析,不僅勞動強度大,工作效率低,還存在一定的失誤率,浪費了人力、物力和財力。鑒于此,探索一種高效、簡單的建模方法來提高產(chǎn)品的設計和制造水平是亟待解決的問題。本文以柴油機箱體為例,進行基于SolidWorks尺寸驅(qū)動參數(shù)化建模的二次開發(fā),探討一種簡便的建模方法來提升建模效率。
SolidWorks是一款操作簡單、功能強大的機械三維工程軟件[1],是一個基于參數(shù)化特征的實體建模系統(tǒng),提供了二次開發(fā)的環(huán)境和開放的數(shù)據(jù)結構,有上百個API(Application Program Interface,應用程序接口)函數(shù),這些函數(shù)就是OLE或COM接口。OLE(Object Linking and Embedding)是指對象的嵌入與鏈接,應用程序之間可以通過OLE數(shù)據(jù)嵌入或鏈接的方法來共享數(shù)據(jù);COM(Component Object Model)作為軟件互相通信的一種方式,是組件對象模型接口,定義了標準的構件組建的方法。用戶可應用VBVBAVCDelphi等編程語言對SolidWorks進行二次開發(fā),建立適合自己需要的SolidWorks功能模塊,實現(xiàn)產(chǎn)品的三維建模、裝配檢驗、加工仿真、有限元分析、運動仿真、數(shù)控加工和加工工藝的制定,從而提高產(chǎn)品的設計效率和提升設計質(zhì)量[2]。
參數(shù)化設計在當今CAD應用技術中占有重要地位[3],工作人員可以根據(jù)產(chǎn)品的形狀和尺寸,通過參數(shù)化設計快速草擬出零件圖。變量設計以參數(shù)化設計為前提,通過變量設計思路可以實現(xiàn)機構設計與動態(tài)設計的運動仿真模擬等。SolidWorks尺寸驅(qū)動的參數(shù)化建模是設計變量與編程技術相結合的方式,以SolidWorks環(huán)境中建立的典型結構模型為基礎,用設計變量作為程序與模型的聯(lián)系紐帶。該方法通過少量的變量化參數(shù)來控制模型,從而實現(xiàn)快速、準確的圖形設計。
尺寸驅(qū)動參數(shù)化建模方法在建好模型的基礎上調(diào)用設置參數(shù)的函數(shù)實現(xiàn)尺寸修改。程序的修改只需要修改自定的尺寸,但如果這樣直接修改,上面的孔的位置等細節(jié)特征都還在原有的位置,因此需要通過添加相關約束條件,使草圖完全定義,實現(xiàn)尺寸聯(lián)動。圖1為尺寸驅(qū)動參數(shù)化建模的基本流程圖。
使用尺寸驅(qū)動法參數(shù)建模的方法需要在事先建好的模型基礎上進行,因此首先需要建立柴油機箱體的實體模型。以CZ 380型柴油機為例進行尺寸驅(qū)動參數(shù)化建模。打開SolidWorks軟件,根據(jù)測繪得到的CZ 380柴油機箱體尺寸,利用軟件建立該箱體的實體基礎模型,如圖2所示。
圖1 尺寸驅(qū)動參數(shù)化建模的基本流程圖
圖2 CZ 380柴油機箱體模型圖
打開VB.NET,以箱體底座的長、寬以及箱體高度為設計目標,分別創(chuàng)建以字母A、B、C為標識的Lable控件以及實參輸入框的TextBox控件,以同樣的方法再創(chuàng)建一組零件名輸入框控件和一個Button控件并取名“OK”,最后插入模型照片。然后通過SolidWorks API函數(shù)將文本框與箱體的這三個參數(shù)尺寸相關聯(lián),改變文本框的輸入數(shù)值,即可驅(qū)動SolidWorks改變模型的形狀。注意零件重建窗體中三個初始值是建模時的尺寸值,作為重建模型輸入值的參考。重建模型的尺寸不應與初始值相差太大,否則可能引起程序崩潰。零件的窗體界面如圖3所示。
圖3 創(chuàng)建零件對話框
在“A”“B”“C”文本框中分別輸入數(shù)值310、350、180,定義新零件名稱為“Xiangti1”,如圖4所示。單擊“OK”按鈕,軟件將驅(qū)動SolidWorks對模型進行重建,系統(tǒng)將自動生成與文本框中輸入的數(shù)值一致、零件名為“Xiangti1”的模型,如圖5所示。
圖4 重建模型參數(shù)
圖5 重建模型圖
′引入SolidWorks、System相關模塊(省略)
Public Class Form1
Dim swApp As New SldWorks′定義類型
...... ′省略一般變量聲明
Sub initSW() ′初始化
Try
swModel=swApp.ActiveDoc
swModelDocExt=swModel.Extension
swFeatureMgr=swModel.FeatureManager
swMgr=swModel.SelectionManager
swSketchMgr=swModel.SketchManager
Catch ex As Exception
MsgBox("請先打開SolidWorks!")
End Try
End Sub
Sub createPart1(ByVal Name As String)
swApp.OpenDoc2(System.AppDomain.CurrentDomain.BaseDirectory+"createpart2016.SLDPRT", 1, True, False, False, 0) '打開相對目錄下的零件
initSW()′初始化sw
swSetParameter()′修改尺寸
status = swModelDocExt.SaveAs("C:UsersAdministratorDesktop"+Name+".sldprt",swSaveAsVersion_e.swSaveAsCurrentVersion,SaveAsOptions_e.swSaveAsOptions_Silent, Nothing, 1, 1)
′另存為桌面上的零件
End Sub
Dim D1 As Dimension,D2 As Dimension,D3 As Dimension'定義目標修改尺寸為參數(shù)類型
Sub swSetParameter()
Try'定義D1,D2,D3為目標修改尺寸
D1=swModel.Parameter("D1@基準面3")
D2=swModel.Parameter("D1@草圖1")
D3=swModel.Parameter("D2@草圖1")
′獲取錄入的TextBox數(shù)值并賦值給形參
D1.Value=TextBoxA.Text
D2.Value=TextBoxB.Text
D3.Value=TextBoxC.Text′
Catch ex As Exception
MsgBox("請輸入正的數(shù)值!")
End Try
End Sub
本文以柴油機箱體為例,對基于尺寸驅(qū)動參數(shù)化建模過程從建模思想流程、應用程序窗口設計、程序語言和模型展示等方面進行了詳細說明,通過更改柴油機箱體相關尺寸,使建模過程得以簡化。尺寸驅(qū)動的簡化模型方法適合于批量修改零件尺寸需求,建模方法簡單高效,可應用在更多零件的參數(shù)化修改工作,從而通過SolidWorks二次開發(fā)技術,標準化、參數(shù)化實現(xiàn)模型簡化任務。