This shows you the differences between two versions of the page.
Both sides previous revision Previous revision | Previous revision | ||
zh-tw:rhino:booleanfaq [2015/09/14] |
zh-tw:rhino:booleanfaq [2022/09/16] (current) yoko_kadotani |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== 布林運算 問與答 ====== | ||
+ | > **摘要:** // | ||
+ | ======簡介====== | ||
+ | 在Rhino中,布林運算指令可節省大量的時間在架構物件上,但對於初學者來說,操作常常無故失敗而且很難了解為何失敗。希望透過問與答的解釋可以有點幫助,如果不想閱讀下列所有的資訊,也可以試著參照John Brock對於[[rhino: | ||
+ | **// | ||
+ | * **交集**兩個或兩個以上的物件; | ||
+ | * **分割**物件的交叉部分; | ||
+ | * **差集** (丟棄)不要的部分; | ||
+ | * **聯集**物件。 | ||
+ | |||
+ | 你可以用布林運算做任何事情,也可以依序”手動”操作以上四個指令,使用布林操作只是在工作中利用一個過程使速度加快….。 | ||
+ | |||
+ | 因此,必須牢記的是**// | ||
+ | |||
+ | =====布林操作失敗...===== | ||
+ | |||
+ | 為什麼布林會失敗? | ||
+ | |||
+ | 兩個封閉物件(“實體”)的交點處應該至少有一個完整封閉的交點曲線(例如: | ||
+ | |||
+ | > **注意:** // | ||
+ | |||
+ | 因此,經由上面的解釋,如果布林操作失敗,第一件事情應該檢查物件的相交處,選擇你的物件接著叫出相交處。首先,查看螢幕上相交處曲線,確認正確與否,有沒有可見的缺口、多餘的分割或者有任何看起來奇怪的東西? | ||
+ | |||
+ | =====相交處問題,解決方案及限制===== | ||
+ | |||
+ | 在模型相交處造成缺口或者其他問題的原因是甚麼? | ||
+ | |||
+ | 如果相交處應該為封閉,但是卻沒有,選擇相交處曲線,接著利用 **標示曲線起點(CrvStart)**指令在曲線的開始處放置一個點,正常來說,這點會落在缺口處的一邊,在螢幕上利用**縮放(Zoom)**檢查可看到的缺口處,為何會有一個缺口? | ||
+ | |||
+ | 如果已經在能力範圍內將物件修復到最好的狀況,但仍進無法利用Rhino自動產生而得到一個封閉的曲線,也許就該回頭用“手動操作”。也許需要加入或修改一些segment、編輯一些點、刪除一些重疊的segment或者其他類似的調整才能得到想要的相交曲線或是封閉物件。一旦有了這樣的曲線,可以試著單獨修剪物件,將多重曲面炸開與相交曲線進行修剪。剪除不需要的部分接著將其他部分結合。 | ||
+ | |||
+ | //<color blue> | ||
+ | |||
+ | <color brown> | ||
+ | |||
+ | <color brown> | ||
+ | |||
+ | <color brown> | ||
+ | |||
+ | <color brown> | ||
+ | |||
+ | <color brown> | ||
+ | |||
+ | =====必要時必須利用" | ||
+ | |||
+ | <color brown> | ||
+ | |||
+ | **[[http:// | ||
+ | |||
+ | **[[http:// | ||
+ | |||
+ | 以下這個例子是一個實體無法利用原始實體下去建構模型,因此在這地方,了解曲面編輯技術是必須的。 | ||
+ | |||
+ | *主要的問題是側邊曲面恰巧無法共用主要實體物塊,當布林運算失敗時,可依據上面連結中的曲面編輯技術中的描述來進行。 | ||
+ | |||
+ | *下載[[http:// | ||
+ | {{: | ||
+ | |||
+ | ---- | ||
+ | ======布林功能在開放物件中的運算====== | ||
+ | |||
+ | 如上所述,布林運算也可在開放物件中執行,但因為物件並非封閉,因此我們必須了解兩件事情。如果你只有兩個物件,Rhino V4 提供了一個工具使以下的流程更容易些,查看指令: | ||
+ | |||
+ | =====曲面方向===== | ||
+ | |||
+ | 首先,了解曲面法線和方向的概念是必須的,每一個表面物件都有”sided-ness”,稱為”front-side”及”backside”。在Rhino裡稱為”方向”(direction), | ||
+ | |||
+ | 每一個曲面都可翻轉其法線方向(例如: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | > **注意:** // | ||
+ | |||
+ | 當曲面結合,Rhino會試著使物件的曲面法線”一致”,也就是說,Rhino會試著使所有曲面有同樣的法線方向性。因此當結合開放性的表面時,仍然只有一個法線方向性,而不會有各種不同的方向。 | ||
+ | |||
+ | > **實驗:** // | ||
+ | |||
+ | 當一個物件在Rhino系統中被封閉,程式會自動將所有的面翻轉向外,系統會假定內部的任何東西已經不被在乎,因為物件是封閉的(實體)。封閉多重曲面無法使物底的法線面內內部(試著操作**Dir**指令看看)。如果一個封閉的多重曲面的法線被反轉了,那代表這物件並不是真的封閉,或者代表著系統出現了無法預期的錯誤。 | ||
+ | |||
+ | > **實驗2: | ||
+ | |||
+ | =====曲面方向性如何影響布林運算===== | ||
+ | |||
+ | 現在已經了解了關於表面法線及方向,為什麼這部分在布林運算裡面是重要的呢? | ||
+ | |||
+ | 布林運算對於”實體”(封閉的多重曲面)是可預測的,因為所有面的法線都是指向外部;而對於開放的多重曲面,結果似乎是無法預測的,因為我們沒有辦法在沒有使用**Dir**指令的情況下去立即判斷知道哪一邊是物體的前或後。 | ||
+ | |||
+ | > **注意:** // | ||
+ | |||
+ | > **小技巧: | ||
+ | |||
+ | 想像一下簡單的”開放”布林運算,有一個”實體”封閉多重曲面與一個單一平面相交,簡單地利用各種形式來建立這個物體,之後使用**切斷平面**指令(**CutPlane**),接著畫出一條任意方向的切斷線穿過此物體。 | ||
+ | |||
+ | 試著使用**布林差集**(BD),首先先選擇實體接著再選擇用來切割的平面,實體的兩邊會有一邊被切斷刪除,而且破洞會被平面填補起來,但是是哪一邊會被去除呢? | ||
+ | |||
+ | 除非在曲面上使用**Dir**指令,否則無法得知哪一面會刪除。先看看面的法線方向,接著做差集的動作,而後回到上一步,扭轉法線方向,再做一次差集,可以發現面的法線方向那一面是會被留下來的。 | ||
+ | |||
+ | 一般來說,如果要在開放曲面及實體物件之間做布林差集的動作,開放曲面的法線方向所指向的一側,則該側的實體將會被保留。 | ||
+ | |||
+ | {{: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | 在V4中,[[rhino: |