====== 使用圖塊 ====== Rhino 4與5的圖塊基本上是一樣的。但Rhino 5提供額外功能跟指令,可以在[[http://www.rhino3d.com/new/large|這裡]]找到。 > **摘要:** //圖塊提供一個檔案中管理重複物件的方法。// =====使用圖塊的優點包括:===== * 如果是更改定義圖塊幾何的圖塊引例,您可以更改任何數量的物件複本。 * 物件可以從外部檔進行更新。 * 重複單一定義引例並不會將檔案大小增加太多,因為只有一個實際定義保存在檔案裡。 所有引例都引用一個原始定義。 Rhino有一些簿記即顯示的技巧,在其他位置和方向做顯示。 =====圖塊如何運作:===== 當您在Rhino從目前檔案中從幾何以[[http://docs.mcneel.com/rhino/5/help/zh-tw/index.htm#commands/block.htm|Block]] 指令建立圖塊,Rhino會將以選的幾何換至為圖塊//引例//。 它將會在檔案中儲存圖塊定義 (您選取用來定義圖塊的幾何)。您可以用[[http://docs.mcneel.com/rhino/5/help/zh-tw/index.htm#commands/insert.htm|Insert]]指令來插入任意數量的引例。 已存在的圖塊定義可以從下拉清單中的[[http://docs.mcneel.com/rhino/5/help/zh-tw/index.htm#commands/insert.htm|Insert]]來插入對話。 如果您插入另一個3dm檔案為圖塊引例,類似的事情將發生。 圖塊定義會被當前檔案儲存。 您在螢幕上看到的是幾何的//引例//。 不同在於如果定義追溯至外部檔,是可以被更新,就像外部檔有改變時,引例也跟著改變。 這可以通過[[http://docs.mcneel.com/rhino/5/help/zh-tw/index.htm#commands/blockmanager.htm|BlockManager]]做到。 在這兩種情況下,要讓圖塊定義存在檔案中並不需要放置任何實際的引例到檔案裡。這就是為什麼有時候刪除圖層會發生問題。 如果某圖塊定義用到了圖層,您沒有辦法刪除它。 當一個圖塊的所有引例被刪除時,就會出現這個狀況。請用 [[http://docs.mcneel.com/rhino/5/help/zh-tw/index.htm#commands/purge.htm|Purge]]指令來刪除所有未使用的圖塊定義。 要針對檔案中某一圖塊更新所有圖塊引例,您需要重新定義圖塊。 [[http://docs.mcneel.com/rhino/5/help/zh-tw/index.htm#commands/explode.htm|炸開]]圖塊引例。 - 對物件進行更改。 - 利用[[http://docs.mcneel.com/rhino/5/help/zh-tw/index.htm#commands/block.htm|Block]] 指令重新阻止使用相同名稱的物件。 \\ 您將看到一個警告對話方塊,以確認對定義的更改。 - 或是您可以利用不同一組物件來重新定義圖塊。 ==== 範例嘗試 ==== - **//做一個立方體//**並利用 [[http://docs.mcneel.com/rhino/5/help/zh-tw/index.htm#commands/block.htm|Block]] 指令來定義圖塊。 - 將它命名為**Box1**。 \\ 將插入點放在框中的一角。 \\ 之後,這已經不是一個立方體,看起來像是,但如果將其選取並查看[[http://docs.mcneel.com/rhino/5/help/zh-tw/index.htm#commands/properties.htm|屬性(Properties)]] > 詳情,您就會看到圖塊引例。 - [[http://docs.mcneel.com/rhino/5/help/zh-tw/index.htm#commands/explode.htm|炸開]]圖塊。 - 再次檢查[[http://docs.mcneel.com/rhino/5/help/en-us/index.htm#commands/properties.htm|屬性(Properties)]]。 \\ 已經變回立方體,而不是那個命名為**Box1**的圖塊。 - 刪除立方體。 - 現在請利用 [[http://docs.mcneel.com/rhino/5/help/zh-tw/index.htm#commands/insert.htm|Insert]] 指令。 - 在下拉清單裡的[[http://docs.mcneel.com/rhino/5/help/zh-tw/index.htm#commands/insert.htm|插入(Insert)]] 對話找到 **Box 1**. \\ 這就是當初建立圖塊時做的圖塊定義。 - 將其作為圖塊引例並[[http://docs.mcneel.com/rhino/5/help/zh-tw/index.htm#commands/insert.htm|插入(Insert)]] ,然後複製引例。 **//在Rhino 4中重新定義圖塊://** - 選擇**Box1**其中一個引例。 - 將其[[http://docs.mcneel.com/rhino/5/help/zh-tw/index.htm#commands/explode.htm|炸開]]還原為一個普通的立方體。 - [[http://docs.mcneel.com/rhino/5/help/zh-tw/index.htm#commands/explode.htm|修剪(Fillet)]]立方體的邊緣。 - 現在請利用 [[http://docs.mcneel.com/rhino/5/help/zh-tw/index.htm#commands/block.htm|Block]]指令。 - 選取修剪過的立方體並選擇一個插入點。 - 選擇**Box1**為新圖塊的名字。 \\ Box1的所有引例現在都成為修剪過的立方體。\\ 它們有可能移動了如果您在新定義上選擇的插入點跟原始的不一樣。 **//在Rhino 5中重新定義圖塊://** \\ 在Rhino 5 您可以使用[[http://docs.mcneel.com/rhino/5/help/zh-tw/index.htm#commands/blockedit.htm|BlockEdit]]指令。 - 在圖塊引例上雙點擊以啟動BoxEdit。 - [[http://docs.mcneel.com/rhino/5/help/zh-tw/index.htm#commands/blockedit.htm|BlockEdit]]對話框將會出現。 - 添加和刪除物件,並重設插入點。 - 您現在可以在圖塊中直接做幾何編輯。 - 關閉 [[http://docs.mcneel.com/rhino/5/help/zh-tw/index.htm#commands/blockedit.htm|BlockEdit]] 以儲存此模型中圖塊引例的所有更改及更新。 - 選取"x"或ESC來取消重新定義。 - **//建立球體。//** - 建立**[[http://docs.mcneel.com/rhino/5/help/zh-tw/index.htm#commands/block.htm|圖塊]]** 並選取一個插入點。 - 將立方體命名為**Box1**. \\ 修剪過的立方體現在都是球體了。 =====外部圖塊引用===== 外部檔案的圖塊定義可以經由編輯及儲存外部檔來更新,接著在[[http://docs.mcneel.com/rhino/5/help/zh-tw/index.htm#commands/blockmanager.htm|BlockManager]] 更新定義。 定義用的是絕對路徑,所以您無法移動圖塊定義中使用的外部檔案並且更新。 但目前定義並不在意原始檔案是否移動了,目前定義就是在目前的檔案裡。 ==== 範例嘗試 ==== - **做一個立方體**,然後儲存檔案。 - 開一個新檔,命名為**[[http://docs.mcneel.com/rhino/5/help/zh-tw/index.htm#commands/insert.htm|Insert]]**。 \\ 利用 **檔案(File)** 來找到立方體的檔案。 - 將其作為一個圖塊引例的插入。 - 將此圖塊做幾個副本 - 嘗試一下縮放、旋轉。 - 在Rhino的另一個引例中,開啟立方體的檔案並修改邊緣。 - 建立球體。 - 儲存檔案。 - 回到有插入圖塊的檔案,並啟動[[http://docs.mcneel.com/rhino/5/help/zh-tw/index.htm#commands/blockmanager.htm|BlockManager]] 指令。 \\ 您會看到有插入立方體檔案的引用。 - 在清單中選取並按一下**更新**。這個檔案裡的引例現在應該都是修剪過的立方體與一個球體 ** 有關圖層的註解:** * 在所有情況下,圖塊定義中物件的圖層在引例中。 * 關閉任何部分圖塊引例使用的圖層,將會關閉Rhino視窗中那個部分的圖塊引例。 * 關閉插入引例的圖層將會導致關閉整個圖塊,不管其他圖層是不是仍被這個圖塊使用中。 ======進階技巧====== **[[developer:scriptsamples/superexplodeblock|SuperExplodeBlock 腳本]]**\\ (現在已經是 V4[[zh-tw:labs:rhinolabstools|Rhino Labs 工具]],並且是V5中的指令) **[[developer:scriptsamples/countblocks|計算圖塊腳本]]**