SolidWorks的參數化功能有多種實現方式,,本文詳細介紹了利用Excel表格驅動SolidWorks模型的方法:通過Excel輸入參數,,利用Excel表格ActiveX控件,、方便的數據計算能力,結合SolidWorks方程式及宏功能,,實現對SolidWorks模型尺寸修改及更新,。
參數化設計方法就是將模型中的定量信息變量化,使之成為任意調整的參數,。對于變量化參數賦予不同數值,,就可得到不同大小和形狀的零件模型。
用CAD方法開發(fā)產品時,,產品設計模型的建立速度是決定整個產品開發(fā)效率的關鍵,。如果該設計是從概念創(chuàng)意開始,則產品開發(fā)初期,,零件形狀和尺寸有一定模糊性,,要在裝配驗證、性能分析之后才能確定,這就希望零件模型具有易于修改的柔性;如果該設計是改型設計,,則快速重用現有的設計數據,,不啻為一種聰明的做法。無論哪種方式,,如果能采用參數化設計,,其效率和準確性將會有極大的提高。
在CAD中要實現參數化設計,,參數化模型的建立是關鍵,。參數化模型表示了零件圖形的幾何約束、尺寸約束和工程約束,。幾何約束是指幾何元素之間的拓撲約束關系,,如平行、垂直,、相切和對稱等;尺寸約束則是通過尺寸標注表示的約束,,如距離尺寸、角度尺寸和半徑尺寸等;工程約束是指尺寸之間的約束關系,,通過定義尺寸變量及它們之間在數值上和邏輯上的關系來表示,。
在參數化設計系統(tǒng)中,設計人員根據工程關系和幾何關系來指定設計要求,。要滿足這些設計要求,,不僅需要考慮尺寸或工程參數的初值,而且要在每次改變這些設計參數時維護這些基本關系,。即將參數分為兩類:其一為各種尺寸值,,稱為可變參數;其二為幾何元素間的各種連續(xù)幾何信息,稱為不變參數,。參數化設計的本質是在可變參數的作用下,,系統(tǒng)能夠自動維護所有的不變參數。因此,,參數化模型中建立的各種約束關系,,正是體現了設計人員的設計意圖。
SolidWorks是典型的參數化設計軟件,,參數化功能非常強大,,并且實現方法多種多樣。筆者今天介紹一種通過Excel表格對模型參數進行驅動的方法,,其特點是充分利用Excel表格強大的公式計算,、直觀的參數輸入、方便的數據維護功能,,來實現產品的參數化,、系列化設計,。如圖1所示Excel表格,展示的是一個壓力容器的法蘭參數,。表中直觀地將不同法蘭用不同顏色體現,,并對應相同顏色塊的參數。該參數采用下拉列表的方式,,直接選取即可,,最后只需要點擊右下角的“更新法蘭參數”,SolidWorks中的模型便實時得到更新,。
當然,,根據模型參數的需要,,該表格還可以做得更加復雜,,還是以該壓力容器為例,大家知道壓力容器的設計是有嚴格規(guī)范的,,那么就可以將這些規(guī)范體現在表格中,,利用Excel公式功能實現。如圖2,,同樣只需要更改幾個關鍵參數,,點擊更新按鈕,SolidWorks中的相應模型參數便實時得到更新,。
下面筆者介紹一下這個功能的實現方法,,在此筆者用一個最簡單的長方體模型作為例子進行介紹。
1.建立模型
首先用SolidWorks建立如下模型:一個長方體,,長寬高分別為100mm,、40mm和50mm。如圖3,。
2.編輯尺寸名稱
這個過程需要強調的是,,需要將尺寸名稱顯示出來??砂聪旅娣椒ú僮鳎汗催x注解中的“顯示特征尺寸”,,并將“查看尺寸名稱”按鈕激活,如圖4,,結果如圖5,。
3.定義尺寸之間的邏輯關系
在此我們定義“高”是“寬”的1.5倍。注意,,該步驟可選,,因為可以將邏輯關系在Excel表格中定義,如圖6,。
4.生成Excel文件
本例中,,驅動變量是“長”,,“寬”和“高”均直接或間接由“長”得到。根據這個要求,,該表格設計成由驅動列表,、參數定義和參數說明三部分組成,如圖7,。
5.利用名稱管理器定義參數區(qū)域
選中“參數”工作表中的“長”下面的所有數值表格,,然后點擊公式欄中的“名稱管理器”,新建一個名稱為“長”,, 引用位置為剛才選中表格范圍的名稱內容,,如圖8。
6.引用參數區(qū)域
這是為了將驅動尺寸與設定好的參數進行關聯調用,,采用下拉框來實現,,如圖9。
7.設置尺寸參數之間的關系
這一步可以充分利用Excel表格方便的公式計算功能,,如圖10,。
8.定義ActiveX控件按鈕
切換到“開發(fā)工具”選項卡(此前要確保在“Excel選項→常用”中將開發(fā)工具選項卡激活),激活“設計模式”,,在該選項卡中,,點擊“插入→ActiveX控件→命令按鈕”,繪制一個按鈕,,并修改該按鈕的顯示名稱為“更新尺寸”,。如果你喜歡,也可以將該按鈕的樣式顏色修改一下,,效果如圖11,。
9.修改按鈕的代碼內容
雙擊該按鈕,在彈出窗口的代碼中加入驅動SolidWorks尺寸參數的內容,。需要說明的是,,該代碼形式固定,需要更改的只是箭頭所指的變量傳遞部分語句,,其中,,前面括號中是在SolidWorks中的模型尺寸名,后面括號中是Excel表格中相應的單元格名稱,。注意,,代碼中數值單位是m,而本例模型中單位是mm,,因此在代碼中數值要除以1000,。另外,按鈕名稱不要弄錯,,一定要與控件名稱一致(注意不是顯示名稱),。需要指出的是,,長方體需要長、寬和高三個參數,,而我們只定義了2個參數“長,、高”,這是因為,,“寬”的參數SolidWorks的方程式中定義了,。如圖12。
通用代碼內容如下,,其中,,紅色部分可直接復制重用到其他例子中。
Private Sub CommandButton1_Click()
Dim swApp As Object
Dim Part As Object
Dim Gtol As Object
Dim longstatus As Long
Dim boolstatus As Boolean
Set swApp = CreateObject(“SldWorks.Application”)
Set Part = swApp.ActiveDoc
‘Values for calcualtions are in meters
Part.Parameter(“長@Sketch1”).SystemValue=Range(“A4”).Value/1000
Part.Parameter(“寬@Extrude1”).SystemValue=Range(“B4”).Value/1000Part.EditRebuild
End Sub10.保存該文件為特定格式
請注意,,操作過程中必須保存為Excel2003的格式(xls),,或者Excel2007的xlsm(啟用宏的工作簿)格式。要想正確運行該按鈕,,還需要注意下面兩點:①將“開發(fā)工具” 選項卡中的“設計模式”關閉,。②將該Excel文件啟用宏及激活ActiveX控件功能。這些內容是Excel文件的基本操作,,在此不再贅述。
11.測試參數驅動是否正確執(zhí)行
修改參數,,點擊“更新按鈕”,,SolidWorks中的模型會即時更新,注意SolidWorks中模型要處于打開狀態(tài),??梢钥吹剑恍枰薷?ldquo;長”這一個參數,,便可以驅動SolidWorks中長方體的3個尺寸變換,,如圖13所示。
12.將驅動文件嵌入到SolidWorks的活頁夾
最后,,可以將相關文檔嵌入到SolidWorks的活頁夾,,具體方法是:右鍵點擊SolidWorks的活頁夾,選擇“添加附加件”,,選中需要添加的文件即可(可采用鏈接或嵌入方式均可),。
至此,這種借助SolidWorks宏功能以及Excel控件等方法的表格驅動詳細介紹完了,。在采用這種方法的時候,,要想獲得更好的效果,一定要清楚要解決的問題的具體情況,,并理解該方法針對參數設置關鍵地方,。其關鍵點是:大量需要做的工作是提煉獨立變量,,將其他變量通過某種關系表達出來,而表達的方法具體有很多種,,可以靈活處理,。比如本例,全部變量有3個(長,、寬和高),,表格傳遞給SolidWorks模型的變量是2個(長和寬),而通過手工調整的獨立變量只有一個(長),。那么一個獨立變量如何實現三個變量聯動呢?本例中,,將一個變量“寬”與“長”建立關聯,在表格中通過關系 式體現,,將另一個變量“高”與“寬”關聯,,在SolidWorks的方程式中體現。當然,,“高”,、“寬”與長的關系,可以都放在SolidWorks的方程式中,,這樣表格只需要傳遞“長”這一個變量;也可以都體現在表格中,,那么表格需要傳遞全部三個變量給SolidWorks。
上述方法可直觀方便地維護數量繁多,、關系復雜的產品參數,,不過可以作為變量的僅僅是尺寸,如果產品改型涉及到幾何拓撲或零部件替換的問題,,就不那么容易維護了,。
令人振奮的是,SolidWorks2011版解決了這個問題,。在參數化功能增強方面,,其方程式功能增加了壓縮和解壓縮的操作(圖14),可以方便地維護產品幾何拓撲的變化,。這個功能的巧妙利用,,使參數化設計提升了一個級別,即實現設計自動化的功能,。同時,,其新功能支持記事本的參數讀入,該功能使設計者可以設置全局變量,,驅動多個零部件的參數,。