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