張麗輝
前言
Rhinoceros是以NURBS 為理論基礎(chǔ)的 3D 建模軟件,是一款超強(qiáng)的三維建模工具,可以建立、編輯、分析及轉(zhuǎn)譯 NURBS,以直線(xiàn)、圓弧、圓圈、正方型等基本數(shù)學(xué) 2D 圖形來(lái)做仿真,非常適合運(yùn)用于教育學(xué)習(xí)、游戲設(shè)計(jì)及工業(yè)設(shè)計(jì)領(lǐng)域。
但是在實(shí)際建模中常常出現(xiàn)運(yùn)算差集失敗的現(xiàn)象,本文試圖探討其形成原因及對(duì)策。
一、犀牛(Rhinoceros )軟件特介紹
Rhino提供所有NURBS功能,豐富的輔助工具,如實(shí)時(shí)渲染、層的控制、對(duì)象的顯示狀態(tài)等。Rhino可以定制自己的命令集;還提供命令行的輸入方法,用戶(hù)可以輸入命令的名稱(chēng)和參數(shù)。 Rhino可以輸出許多種格式的文件。可以直接輸出NURBS模型到3DMax、Softimage3D等軟件中,另外也可以把NURBS轉(zhuǎn)換為多邊形組成的物體,供其他軟件調(diào)用。
二、犀牛(Rhinoceros )優(yōu)點(diǎn)
1、“體積”小,大小才幾十兆,硬件要求也很低。占用內(nèi)存較小, Rhino全部安裝完畢才區(qū)區(qū)20幾 兆。功能卻很多,能夠?qū)崿F(xiàn)很多領(lǐng)域的建模需要。
2、操作簡(jiǎn)單。犀牛工具菜單欄設(shè)置,視窗設(shè)計(jì)十分直觀,運(yùn)用起來(lái)十分快捷自如,切換視圖方便。
3、強(qiáng)大的曲線(xiàn)建模方式,能夠讓人在很短時(shí)間能完成模型創(chuàng)造。
犀牛的NURBS建模方式可以輕松建立比較漂亮的曲面。
4、可以快速完成設(shè)計(jì)師的概念設(shè)計(jì),無(wú)關(guān)尺寸的快速原型也可快速建模。Rhino在設(shè)計(jì)初期用來(lái)記錄想法概念,能夠快速的表達(dá)設(shè)計(jì)師的想法創(chuàng)意,使用起來(lái)比較自由。
三、犀牛(Rhinoceros )缺點(diǎn)
1、利用Rhino不能生成帶有注釋和標(biāo)識(shí)的二維圖形。
2、雖然它帶有一些有用的渲染功能,但是犀牛不能達(dá)到真實(shí)的渲染效果。不過(guò),我們可以在建完模型后,導(dǎo)出文件到Keyshot里進(jìn)行渲染,形成逼真效果。
四、布爾運(yùn)算介紹
布爾運(yùn)算包括:并集,交集,差集,分割是用來(lái)編輯實(shí)體(封閉曲面)的工具;和數(shù)學(xué)中集合的并集∪,交集∩,差集,差不多。
1、實(shí)體布爾運(yùn)算:以?xún)蓚€(gè)物件做布爾運(yùn)算,可以預(yù)覽各種可能的布爾運(yùn)算結(jié)果。
2、曲線(xiàn)布爾運(yùn)算:修剪、分割、組合有重疊區(qū)域的曲線(xiàn)。
3、網(wǎng)格布爾運(yùn)算: 以一個(gè)物件減去另一個(gè)物件、以?xún)蓚€(gè)物件交集的部分建立另一個(gè)物件或?qū)蓚€(gè)物件合并為單一體積的網(wǎng)格物件。
五、布爾運(yùn)算差集失敗解析
在設(shè)計(jì)建模過(guò)程中,常常出現(xiàn)布爾運(yùn)算差集失敗現(xiàn)象。
布爾差集是以一組多重曲面/曲面減去另一組多重曲面/曲面與它交集的部分。步驟如下:選取要被減去的曲面或多重曲面,按 Enter。選取要減去其它物件的曲面或多重曲面,按 Enter。
以下是幾個(gè)可能造成布爾運(yùn)算失敗的原因:
1、曲面的法線(xiàn)方向不正確
布爾運(yùn)算以物件的法線(xiàn)方向決定物件要?jiǎng)h除或保留的部分,當(dāng)您想做布爾運(yùn)算差集卻得到布爾運(yùn)算聯(lián)集的結(jié)果是因?yàn)榍娴姆ň€(xiàn)方向不正確的關(guān)系,這種情形通常發(fā)生在以開(kāi)放的物件進(jìn)行布爾運(yùn)算時(shí)。請(qǐng)使用 Dir 指令檢查物件的法線(xiàn)方向,必要時(shí)可以使用反轉(zhuǎn)選項(xiàng)變更曲面的法線(xiàn)方向。封閉的物件的法線(xiàn)方向一定朝外,所以不會(huì)有這樣的問(wèn)題。
2、兩個(gè)物件交集處的有控制點(diǎn)重疊在一起 (匯集點(diǎn))
曲面一個(gè)邊緣上的所有控制點(diǎn)重疊在同一個(gè)位置稱(chēng)為匯集點(diǎn)。在 Rhino 里,圓錐體的頂點(diǎn)、球體的兩極、三個(gè)邊的未修剪曲面都有匯集點(diǎn),手動(dòng)將控制點(diǎn)移動(dòng)到同一個(gè)位置也可以形成匯集點(diǎn)。
當(dāng)兩個(gè)物件的交集處有匯集點(diǎn)時(shí)可能會(huì)造成布爾運(yùn)算失敗。
如:圓錐體的頂點(diǎn)和立方體的角位于同一個(gè)位置,這樣的情形會(huì)造成布爾運(yùn)算失敗。
3、物件可能有某部分的曲面重疊或正切
當(dāng)兩個(gè)曲面有部分重疊時(shí),例如:兩個(gè)立方體只有兩個(gè)面互相接觸,這種情形只能做聯(lián)集,無(wú)法做差集與交集。
4、非流形的邊緣
除了重疊的曲面可能造成布爾運(yùn)算失敗以外,非流形的邊緣也是原因之一。組合三個(gè)網(wǎng)格面或曲面的邊緣稱(chēng)為非流形邊緣。
六、布爾運(yùn)算差集失敗解決方法:
1、匯集點(diǎn)導(dǎo)致的運(yùn)算失敗可以將物件炸開(kāi)為個(gè)別的曲面,使用 Intersect 指令計(jì)算不同曲面之間的交線(xiàn),再以建立的交線(xiàn)修剪或分割曲面,最后再將曲面重新組合在一起。也可以將面偏移或者移動(dòng)少許距離.(偏移或移動(dòng)的距離要大于軟件公差,保證加工精度。如果過(guò)大可以在操作成功后再減回相應(yīng)的數(shù)據(jù)。)
2、用線(xiàn)框顯示所操作的對(duì)象,然后再做布爾運(yùn)算(或裁減,分割),如果失敗,軟件自動(dòng)將問(wèn)題區(qū)域顯示為紅色,可將問(wèn)題區(qū)域分割開(kāi)來(lái)(即分成兩部分),再作布爾運(yùn)算,然后抽取問(wèn)題區(qū)域面單獨(dú)處理,縫合,再補(bǔ)丁上去,此法可解決大部分布爾運(yùn)算失敗的問(wèn)題。
3、相對(duì)形狀比較復(fù)雜(爛面)布爾運(yùn)算失敗時(shí),可將部件全部抽取成相同類(lèi)型曲面,然后再縫合成實(shí)體。這種方法,可應(yīng)付幾乎所有加減失敗的問(wèn)題,但也最麻煩,實(shí)在沒(méi)辦法的情況下才建議采用。
4、修復(fù)幾何體。文件-導(dǎo)出-修復(fù)幾何體。內(nèi)定公差為0.5,有時(shí)可適當(dāng)調(diào)大些。指定導(dǎo)出的PRT名。然后打開(kāi)導(dǎo)出的PRT檔案再進(jìn)行布爾操作即可。這個(gè)操作簡(jiǎn)單,實(shí)用性強(qiáng)??山鉀Q半數(shù)布爾出錯(cuò)問(wèn)題。推薦為首選操作。
結(jié)語(yǔ)
犀牛軟件只有我們熟練掌握它的各項(xiàng)命令及其特點(diǎn),才能熟練建出理想的模型。布爾運(yùn)算在建模中的實(shí)際應(yīng)用。
參考文獻(xiàn):
[1]吳春燕,劉冰.西安石油大學(xué)學(xué)報(bào)(自然科學(xué)版).2005,(05)
德宏師范高等專(zhuān)科學(xué)校 678400