符 莎
(中山市技師學(xué)院,中山 528403)
在現(xiàn)代產(chǎn)品設(shè)計中,為了達(dá)到特殊的功能或視覺造型效果,經(jīng)常會使用重復(fù)元素進(jìn)行設(shè)計。例如,電器產(chǎn)品的散熱孔設(shè)計一般會采用鏤空的圓孔重復(fù)排列,手握式工具的把手通常會用凸起的圓點(diǎn)排列以達(dá)到防滑的效果等。在SolidWorks、Creo等工程軟件中實(shí)現(xiàn)類似的效果,一般會采用陣列等方式。在工程軟件中,陣列一般是指以單個設(shè)計特征作為源進(jìn)行線性、圓周或其他形式的排列,使源特征大量重復(fù)出現(xiàn),并按照某種規(guī)則排列。陣列工具非常方便,方式多樣,基本上可以滿足產(chǎn)品設(shè)計的需求。但是,陣列工具產(chǎn)生的設(shè)計結(jié)果往往較為生硬,且陣列工具存在一定缺陷,一旦特征重復(fù)數(shù)量過高,或源特征、草圖較為復(fù)雜時,操作將會非常緩慢,甚至可能文件報錯導(dǎo)致軟件最終崩潰。如果需要對陣列的源特征和參數(shù)進(jìn)行修改,則需要花費(fèi)大量時間,導(dǎo)致效率低[1]。針對上述問題,需要對SolidWorks進(jìn)行二次開發(fā)[2],協(xié)同外部工具,實(shí)現(xiàn)更復(fù)雜多變的類似陣列效果。不僅能夠達(dá)到基本的陣列效果,而且在形式上更加多變。
SolidWorks中提供了豐富的陣列工具,包含線性陣列、圓周陣列、曲線驅(qū)動陣列、草圖驅(qū)動陣列、表格驅(qū)動陣列、填充陣列及變量陣列等,其中線性陣列和圓周陣列較為常用。圖1為以圓孔為源特征的幾種基本陣列效果。

圖1 SolidWorks中以圓孔為源特征的幾種基本陣列
這類陣列效果相對單一,僅對圓孔這一源特征按照規(guī)則進(jìn)行簡單的重復(fù)。從圖2的音箱產(chǎn)品圖中可以看出,它采用了線性陣列和圓周陣列,設(shè)計內(nèi)容相對呆板,并不能滿足設(shè)計需求。

圖2 基本陣列產(chǎn)品案例
在現(xiàn)代產(chǎn)品設(shè)計中,人們對產(chǎn)品形式的個性化需求越來越高。越來越多的產(chǎn)品設(shè)計會在產(chǎn)品的造型、材料、表面工藝上做更多創(chuàng)意,使產(chǎn)品能夠在眾多同類產(chǎn)品中脫穎而出[3]。本文針對SolidWorks陣列結(jié)果相對單調(diào)的情況,以圖2的音箱產(chǎn)品為例,借助外部工具Grasshopper(簡稱GH)協(xié)同,使設(shè)計結(jié)果更加自然,并產(chǎn)生多種設(shè)計方案以供選擇。
GH是一種基于Rhino平臺的可視化編程語言,具備兩大優(yōu)勢:一是通過可視化的程序流,使計算機(jī)自動生成可視化結(jié)果;二是大量具有邏輯的演化過程被程序循環(huán)運(yùn)算代替,參數(shù)的修改直接反映在最終模型結(jié)果上,大大提高了設(shè)計師的工作效率[4]。如圖3所示,程序可迅速獲得隨機(jī)的陣列效果,相對原始的圓形陣列而言更自然和有機(jī)[5]。

圖3 陣列形式的變形
SolidWorks與GH協(xié)同設(shè)計的技術(shù)流程如圖4所示。

圖4 協(xié)同設(shè)計流程
(1)在SolidWorks中選擇要進(jìn)行設(shè)計的面,使用展開工具展開該面,并將展開圖以DXF格式導(dǎo)出。一般情況下,展開面可以為平面、投影曲面、圓錐曲面以及樣條回轉(zhuǎn)曲面等。
(2)將展開圖導(dǎo)入Rhino平臺,打開GH工具,通過程序塊連接方式進(jìn)行可視化編程,并不斷調(diào)整參數(shù),獲得多組滿意的設(shè)計圖形,以DXF格式導(dǎo)出圖形。
(3)在SolidWorks中重新導(dǎo)入新生成的圖形,通過包覆工具將圖形閉合至所選的面上,選擇浮雕、蝕刻或刻畫3種模式完成設(shè)計。
通過技術(shù)流程的分析可以看出,實(shí)現(xiàn)該技術(shù)主要有3個環(huán)節(jié),其中2個環(huán)節(jié)在SolidWorks平臺上進(jìn)行,1個環(huán)節(jié)利用GH工具完成。在SolidWorks平臺中完成的內(nèi)容需要進(jìn)行二次開發(fā),以便用戶快速操作[6]。
最終需要在SolidWorks中采用包覆工具對模型進(jìn)行處理,因此在前期準(zhǔn)備過程中需要選擇包覆工具支持的曲面類型,即能夠?yàn)檎归_的曲面和為輸出DXF格式的展開圖提供基準(zhǔn)面。編寫以下代碼以供用戶創(chuàng)建基準(zhǔn)面,展開選擇的曲面,并借助工程圖工具將展開圖以工程圖文件DXF格式導(dǎo)出。
設(shè)置基準(zhǔn)面的程序代碼為


程序編寫完畢后需生成單獨(dú)的工具圖標(biāo),以供用戶直接使用。
不同于傳統(tǒng)編程工具,GH是一種基于Rhino平臺運(yùn)行的可視化編程語言,主要通過連接預(yù)先提供好的各類算法模塊形成程序流,最終完成二維圖形或三維模型的設(shè)計。GH提供了大量算法模塊,可以產(chǎn)生不同的造型結(jié)果,目前大量應(yīng)用于產(chǎn)品設(shè)計和建筑設(shè)計。本文以圖2的音箱產(chǎn)品圓周曲面為基礎(chǔ)進(jìn)行造型設(shè)計。為導(dǎo)入的音箱側(cè)面圓柱面圖形增加如圖5所示的程序模塊,并設(shè)置“孔洞數(shù)”“孔洞隨機(jī)值”“重構(gòu)曲線控制點(diǎn)數(shù)”“重構(gòu)曲線控制點(diǎn)權(quán)重”“曲線縮放值”等參數(shù),用以生成不同形式的曲線。可以看出,調(diào)整參數(shù)生成的不同曲線如圖6所示。

圖5 可視化編程

圖6 不同參數(shù)生成的結(jié)果
這一環(huán)節(jié)主要由用戶選擇曲面,導(dǎo)入GH生成的DXF文件,并將圖形包覆在所選的曲面上,默認(rèn)為蝕刻方式。用戶獲得結(jié)果后,仍可以切換為其他包覆模式。編寫以下代碼實(shí)現(xiàn)導(dǎo)入文件及包覆功能。
在第一個環(huán)節(jié)中生成的基準(zhǔn)面上導(dǎo)入DXF文件的程序代碼為


程序編寫完畢后生成單獨(dú)的工具圖標(biāo),以供用戶直接使用,至此面向SolidWorks的二次開發(fā)完成。用戶可以在SolidWorks一鍵導(dǎo)出圖形,在GH中形成多種圖形方案,然后在SolidWorks一鍵導(dǎo)入圖形,最終生成產(chǎn)品的多種方案,效果如圖7所示。

圖7 產(chǎn)品多方案設(shè)計結(jié)果
GH工具利用參數(shù)化思想可以快速生成大量不同的圖形結(jié)果,與其協(xié)同設(shè)計可以大大提高SolidWorks的工作效率。該技術(shù)流程可適用于各類工程設(shè)計軟件工具,具有較好的可拓展性,對現(xiàn)代產(chǎn)品設(shè)計具有較高的參考價值。