劉 方,劉 煒
(1.江蘇聯合職業技術學院 無錫交通分院,江蘇 無錫 214151;2.江蘇科技大學 能源與動力工程學院,江蘇 鎮江 212003)
柴油機作為應用最為廣泛的內燃機,由于結構形狀復雜,技術要求高,加工難度大,傳統的設計和加工之間的信息傳遞多停留在二維的紙質文件上,導致企業的工作效率較低。隨著數字化、信息化的高科技發展,計算機輔助設計和制造的引入,三維建模和虛擬仿真技術普遍應用于產品研發和設計領域。在研發的過程中,不同尺寸的產品需要重復大量的建模工作來進行仿真分析,不僅勞動強度大,工作效率低,還存在一定的失誤率,浪費了人力、物力和財力。鑒于此,探索一種高效、簡單的建模方法來提高產品的設計和制造水平是亟待解決的問題。本文以柴油機箱體為例,進行基于SolidWorks尺寸驅動參數化建模的二次開發,探討一種簡便的建模方法來提升建模效率。
SolidWorks是一款操作簡單、功能強大的機械三維工程軟件[1],是一個基于參數化特征的實體建模系統,提供了二次開發的環境和開放的數據結構,有上百個API(Application Program Interface,應用程序接口)函數,這些函數就是OLE或COM接口。OLE(Object Linking and Embedding)是指對象的嵌入與鏈接,應用程序之間可以通過OLE數據嵌入或鏈接的方法來共享數據;COM(Component Object Model)作為軟件互相通信的一種方式,是組件對象模型接口,定義了標準的構件組建的方法。用戶可應用VBVBAVCDelphi等編程語言對SolidWorks進行二次開發,建立適合自己需要的SolidWorks功能模塊,實現產品的三維建模、裝配檢驗、加工仿真、有限元分析、運動仿真、數控加工和加工工藝的制定,從而提高產品的設計效率和提升設計質量[2]。
參數化設計在當今CAD應用技術中占有重要地位[3],工作人員可以根據產品的形狀和尺寸,通過參數化設計快速草擬出零件圖。變量設計以參數化設計為前提,通過變量設計思路可以實現機構設計與動態設計的運動仿真模擬等。SolidWorks尺寸驅動的參數化建模是設計變量與編程技術相結合的方式,以SolidWorks環境中建立的典型結構模型為基礎,用設計變量作為程序與模型的聯系紐帶。該方法通過少量的變量化參數來控制模型,從而實現快速、準確的圖形設計。
尺寸驅動參數化建模方法在建好模型的基礎上調用設置參數的函數實現尺寸修改。程序的修改只需要修改自定的尺寸,但如果這樣直接修改,上面的孔的位置等細節特征都還在原有的位置,因此需要通過添加相關約束條件,使草圖完全定義,實現尺寸聯動。圖1為尺寸驅動參數化建模的基本流程圖。
使用尺寸驅動法參數建模的方法需要在事先建好的模型基礎上進行,因此首先需要建立柴油機箱體的實體模型。以CZ 380型柴油機為例進行尺寸驅動參數化建模。打開SolidWorks軟件,根據測繪得到的CZ 380柴油機箱體尺寸,利用軟件建立該箱體的實體基礎模型,如圖2所示。

圖1 尺寸驅動參數化建模的基本流程圖

圖2 CZ 380柴油機箱體模型圖
打開VB.NET,以箱體底座的長、寬以及箱體高度為設計目標,分別創建以字母A、B、C為標識的Lable控件以及實參輸入框的TextBox控件,以同樣的方法再創建一組零件名輸入框控件和一個Button控件并取名“OK”,最后插入模型照片。然后通過SolidWorks API函數將文本框與箱體的這三個參數尺寸相關聯,改變文本框的輸入數值,即可驅動SolidWorks改變模型的形狀。注意零件重建窗體中三個初始值是建模時的尺寸值,作為重建模型輸入值的參考。重建模型的尺寸不應與初始值相差太大,否則可能引起程序崩潰。零件的窗體界面如圖3所示。

圖3 創建零件對話框
在“A”“B”“C”文本框中分別輸入數值310、350、180,定義新零件名稱為“Xiangti1”,如圖4所示。單擊“OK”按鈕,軟件將驅動SolidWorks對模型進行重建,系統將自動生成與文本框中輸入的數值一致、零件名為“Xiangti1”的模型,如圖5所示。

圖4 重建模型參數

圖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'定義目標修改尺寸為參數類型
Sub swSetParameter()
Try'定義D1,D2,D3為目標修改尺寸
D1=swModel.Parameter("D1@基準面3")
D2=swModel.Parameter("D1@草圖1")
D3=swModel.Parameter("D2@草圖1")
′獲取錄入的TextBox數值并賦值給形參
D1.Value=TextBoxA.Text
D2.Value=TextBoxB.Text
D3.Value=TextBoxC.Text′
Catch ex As Exception
MsgBox("請輸入正的數值!")
End Try
End Sub
本文以柴油機箱體為例,對基于尺寸驅動參數化建模過程從建模思想流程、應用程序窗口設計、程序語言和模型展示等方面進行了詳細說明,通過更改柴油機箱體相關尺寸,使建模過程得以簡化。尺寸驅動的簡化模型方法適合于批量修改零件尺寸需求,建模方法簡單高效,可應用在更多零件的參數化修改工作,從而通過SolidWorks二次開發技術,標準化、參數化實現模型簡化任務。