布林運算疑難排解

布林運算指令也可以用於單一曲面或開放的多重曲面,但布林運算的結果與曲面的法線方向有關,當結果不如預期時,Dir 指令可以用來檢查曲面的法線方向,要反轉曲面的法線方向可以使用 DirFlip 指令。

您可以先用 Join 指令將數個單一曲面組合成多重曲面。

網格物件的布林運算的操作方式與 NURBS 布林運算相同。

附註:網格布林運算的輸入物件可以是曲面或網格,但結果都是網格物件。

布林運算為什麼會失敗?

以下是幾個可能造成布林運算失敗的原因:

round_bullet.gif曲面的法線方向不正確。

round_bullet.gif兩個物件交集處的有控制點重疊在一起 (匯集點)。

round_bullet.gif物件可能有某部分的曲面重疊或正切。

曲面法線

布林運算以物件的法線方向決定物件要刪除或保留的部分,當您想做布林運算差集確得到布林運算聯集的結果是因為曲面的法線方向不正確的關係,這種情形通常發生在以開放的物件進行布林運算時。請使用 Dir 指令檢查物件的法線方向,必要時可以使用反轉選項變更曲面的法線方向。封閉的物件的法線方向一定朝外,所以不會有這樣的問題。

匯集點

曲面一個邊緣上的所有控制點重疊在同一個位置稱為匯集點。在 Rhino 裡,圓錐體的頂點、球體的兩極、三個邊的未修剪曲面都有匯集點,手動將控制點移動到同一個位置也可以形成匯集點。

當兩個物件的交集處有匯集點時可能會造成布林運算失敗。

重疊的曲面

當兩個曲面有部分重疊時,例如:兩個立方體只有兩個面互相接觸,這種情形只能做聯集,無法做差集交集

非流形的邊緣

除了重疊的曲面可能造成布林運算失敗以外,非流形的邊緣也是原因之一。

非流形的邊緣

組合三個網格面或曲面的邊緣稱為非流形邊緣。

non-manifoldedges-002.png
圖中是以ShowEdges指令醒目提示的多重曲面的非流形邊緣。

替代方法

如果兩個物件無法做布林運算,您可以使用其它的方法得到同樣的結果。

在上面的範例裡,圓錐體的頂點和立方體的角位於同一個位置,這樣的情形會造成布林運算失敗。

您可以將物件炸開為個別的曲面,使用 Intersect 指令計算不同曲面之間的交線,再以建立的交線修剪分割曲面,最後再將曲面重新組合在一起。