Check

Check 指令可檢查選取的物件的資料結構是否有錯誤。

步驟

1. 選取物件。

這個指令會回報物件資料的正確性。

這個指令是檢測潛在幾何資料錯誤的主要工具。

2. 刪除並重建有錯誤的物件。

CheckNewObjects

CheckNewObjects 指令可在物件建立、修改、匯入時自動檢查物件的資料結構是否有錯誤。

說明

Rhino 會在下列幾種情形檢查物件是否有錯誤。

讀取 .3dm 檔案時

當讀取 .3dm 檔案時發現損壞的物件,模型讀取完成後會在指令視窗提示"建立了 N 個損壞的物件 (讀取 ***.3dm 時)"。

讀取其它模型檔案時

當檔案匯入程式在匯入檔案時發現損壞的物件,模型讀取完成後會在指令視窗提示"建立了 N 個損壞的物件 (讀取 ***.3dm 時)",不會彈出警告對話框。

開啟 3DM 以外的檔案類型時偵測到損壞物件:

4 If you are reading an IGES, STEP, or other file that is not a Rhino .3dm file, and Rhino creates a bad object, please email the file you are importing to tech@mcneel.com.

執行 Rhino 指令時

如果指令在執行中建立了損壞的物件,指令完成後指令行會提示"<指令名稱> 建立了 N 個損壞的物件",並彈出警告對話框。

建模時建立了損壞的物件:

如果 Rhino 在一般建模過程中彈出檢查新物件對話框,您可能遇到了 Rhino 的程式錯誤,請將這個問題回報給我們知道:

1. 請說明警告對話框彈出時您所執行的指令。
2. 復原
3. 選取與該指令作業相關的所有物件,將它們匯出至另一個檔案。
4. 將檔案寄至 tech@mcneel.com
5. 請說明這個錯誤發生時您執行的指令與使用的選項。

NURBS 分析

有時候模型可能會損壞,損壞的部分可能會造成錯誤。

Rhino 的某些工具可能建立損壞的曲面,例如以自交的封閉曲線建立平面時,Rhino 並不會阻止您這麼做,但是建立的平面在後續的作業會發生問題。

當一個修剪的微小邊緣與另一個曲面的大邊緣組合時,微小邊緣可能會變成一個點造成錯誤。

有一些技巧可以提高模型的有效性。

以一段非常短的曲線連接一條修剪曲線的兩個端點將它封閉 (不是將一個端點移動到另一個端點) 可能會產生錯誤。

有時候微小的邊緣可能由其它指令作業產生,例如:布林運算,當兩個物件只有非常小的交集時可能產生微小的邊緣。

修剪邊緣非常短或自交是造成錯誤的最大原因。

Rhino 有一些工具可以檢查模型是否有這些錯誤。

The first one to try is the Check command. If your model doesn't pass Check, then it will list some specific problems. You can just use the list to indicate that you might need to tune up the model. If a model passes Check, it doesn't automatically mean that it is 100 percent properly structured, though. Some bad model parts, like having surfaces that fold back on themselves or self-intersect, are very time consuming and difficult to automatically detect, and Check does not check for those things. But it can check the general overall structure of the object.

修復損壞物件的流程通常是炸開取消修剪、重新修剪、再次組合。如果物件有很多小邊緣,您可能需要使用 SplitEdge 指令分割部分的邊緣,使要組合的邊緣有相同的結構,再使用 JoinEdge 將相對的邊緣組合。

當很大的物件與很小的物件相鄰時,Join 指令可能無法正確判斷是否要組合這兩個物件,這種情形可以使用 JoinEdge 指令來處理。

這些工具都在分析功能表裡的邊緣工具裡,當模型嚴重損壞時,您可能需要使用到這裡的許多工具。

避免模型發生錯誤

通常需要避免建立微小的邊緣。
不要使用有非常短的曲線連接兩條曲線。
組合兩個曲面時,兩個曲面明確的以邊緣對邊緣相接。

分析工具有:

列出物件的資料結構
檢查物件
選取所有無法通過檢查的物件

網格分析

Notes

Some STL/SLA printers have problems if meshes contain many long, thin facets. These can slow the printer's slicing process down, produce odd printed results, and run the printer out of memory.
The MeshRepair command may be useful when tuning up meshes for STL/SLA printing.

面積為 0 的面

可使用 CullDegenerateMeshFaces 指令刪除。

長度為 0 的邊緣

長度為 0 的網格邊緣通常是面積為 0 的網格面造成的,也可以使用 CullDegenerateMeshFaces 指令刪除。

非流形的邊緣

可使用 CullDegenerateMeshFaces 指令,再以 ExtractNonManifoldMeshEdges 指令修復。

外露的邊緣

網格可以有外露邊緣存在,但是會在快速原型輸出時發生問題。ShowEdges 指令可找出物件的外露邊緣。FillMeshHoleFillMeshHolesMatchMeshEdge 指令可用來消除外露的邊緣。

重複的面

可使用 ExtractDuplicateMeshFaces 指令抽離。

網格面的法線方向不一致

可使用 UnifyMeshNormals 指令統一網格面的法線方向。

未相接的網格

可使用 SplitDisjointMesh 指令分割成為個別的網格。

孤立的網格頂點

孤立的網格頂點通常不會造成問題,並且沒有指令可以將它刪除。

請參考

分析物件

Rhino Wiki: Bad objects