check_objects.pngCheck

 

可以在哪裡找到這個指令?

check_objects.png工具列

menuicon.png功能表

ctrlplus.png快速鍵

Check 指令

回報選取的物件的資料結構錯誤。

步驟

number-1.png選取物件。

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

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

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

check_objects.pngCheckNewObjects

 

可以在哪裡找到這個指令?

check_objects.png_rightbuttononly.png工具列

menuicon.png功能表

ctrlplus.png快速鍵

CheckNewObjects 指令

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

請參考:McNeel Wiki: Bad objects

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

讀取 .3dm 檔案時

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

讀取其它模型檔案時

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

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

number_onestep.gif如果您在讀取 3DM 以外的檔案類型 (例如:IGES、STEP...) 時 Rhino 建立了損壞的物件,請將該檔案寄至 tech@mcneel.com

執行 Rhino 指令時

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

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

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

number-1.png請說明警告對話框彈出時您所執行的指令。

number-2.png復原

number-3.png選取與該指令作業相關的所有物件,將它們匯出至另一個檔案。

number-4.png將檔案寄至 tech@mcneel.com

請說明這個錯誤發生時您執行的指令與使用的選項。

NURBS 分析

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

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

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

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

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

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

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

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

檢查模型時第一個會用到的是 Check 指令,如果模型無法通過指令的檢查,它會列出一些錯誤,您可以依照列出的錯誤修復模型。但,可以通過檢查的模型並不一定百分之百沒問題。模型損壞的部分 (例如:自交的曲面) 可能會造成指令作業的效率降低,也難以自動偵測。Check 令並不會檢查這類的錯誤,但可以檢查物件的整體資料結構是否正確。

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

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

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

避免模型發生錯誤

通常需要避免建立微小的邊緣。

不要使用有非常短的曲線連接其它的兩條曲線。

組合兩個曲面時,兩個曲面明確的以邊緣對邊緣相接。

分析工具有:

列出物件的資料結構

檢查物件

選取所有無法通過檢查的物件

網格分析

附註:某些 STL/SLA 印表機在列印含有許多很長的網格面的網格物件時會發生問題,可能使列印速度變慢、產生奇怪的列印結果或造成印表機記憶體不足。網格修復精靈可以用來修正網格在做 STL/SLA 列印時可能發生的問題。請參考:抽離/摺疊網格面/頂點

退化的網格面

可以使用 CullDegenerateMeshFaces 指令將它刪除。

長度為 0 的邊緣

長度為 0 的網格邊緣通常是因為退化的網格面而產生的,也可以使用 CullDegenerateMeshFaces 指令將它刪除。

非流形的網格邊緣

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

外露的網格邊緣

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

重複的網格面

可以使用 ExtractDuplicateMeshFaces 指令將它抽離。

網格面的法線方向不一致

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

未相接的網格

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

孤立的網格頂點

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

文字視窗選項

複製全部

將文字視窗裡的所有文字複製到剪貼簿。

另存新檔

將文字視窗裡的內容儲存成文字檔。

關閉

關閉視窗。

請參考

分析物件。