Site Tools


白皮書:IGES

Rhinoceros® IGES檔的疑難排解

註:本文件解說原本只針對Rhino V2的工具,雖然這些工具仍出現在Rhino V3,V4及V5,您可能已經發展出不同技術來修復麻煩的檔案。請在此分享您的經驗與技巧。 - John Brock

利用Rhino為IGES檔排解疑難

Rhino檔案轉換並清理寫得不好的IGES檔案的功能非常強大。您可能已經收到,您的客戶或供應商從實體建模程式讀入的不正確的IGES檔。 通常這是由格式不正確的IGES檔、消失或是重複的曲面、縫隙或重耊、錯誤的曲面修剪資訊所造成。

在修復過程中沒有任何放寬公差可以自動修復這些問題。經過漫長等待後您得到了未完成的實體、消失的曲面,或者什麼也沒有看到。 您需要的結果取決於匯入並使用這些數據,這時候該怎麼辦?

Rhino具有能夠克服這些問題的工具。只要一點練習與解決問題的能力,您可以將這些問題解決,竟將數據匯入您的實體建模程式。所需時間與努力取決於碰到的問題以及IGES檔的大小。

還好,只要稍加練習,大部分的IGES檔案都能夠被快速的修復。不過當然也有些問題需要花上數天的時間,但只要有Rhino,您就有工具修復最困難的IGES檔案問題,並且繼續進行您的工作計畫。

由於Rhino是支援實體的曲面建模程式,所以並不需要IGES資料組成的封閉實體。 Rhino會盡量讀取模型中的有效資訊,也就是讀取所有的點、曲線、曲面的數據並跳過損壞的物件。 Rhino通常在IGES匯入過程便自動讀取並修復問題,使用者只需要另存新的IGE檔並讀進應用程式中即可。如果並未自動修復,可以利用Rhino替換消失的曲面、修復失敗的修剪曲線,平撫斷續的曲面,並且匯出一個實體模型至您的應用程式。

一般來說,您可以挽救大部分IGES檔案中的資料。但有時候您沒有選擇,只能改變檔案裡的某些部份。就算在最極端的案例中,Rhino還是有工具可以獲取isoparms、選取斷面以及能夠替換無法使用的曲面並保留原始設計的邊緣曲線。

一般對策

修復IGES檔案的一般對策取決於每一個不同的檔案,假以時日您會發現特定產生IGES檔的程式,或不同使用者所造成的IGES檔案問題模式。

修復IGES檔案指南

  1. 開啟IGES檔。
  2. 隱藏或刪除額外的數據資料 - 利用SelDup指令找到重複的實體並將多餘的一次移到另一個圖層,並將其關閉。稍後您可能還是需要用到它們。
  3. 利用SelCrv以及SelPt來選取以及隱藏曲線與點。 - 利用 SelSrf選取所有的曲面,再進行反選。這會將任何曲線或點凸顯出來,刪除不在曲面或接近曲面的曲線。請仔細檢查曲面上剩餘的曲線,這些可能是剩下的不完整修剪曲線。將它們移到另一個圖層供以後使用。這樣留在螢幕上留下的就只是曲面了。
  4. 使用Shade模式以及目視檢驗模型- 是如您想像那樣嗎? 是否有明顯缺少曲面? 曲面有超出至它們應該到的位置嗎? 可以用來修復它們的修剪曲線有可能已經儲存在步驟3。
  5. 檢驗壞掉的曲面- 用CheckSelBadObjects指令確認在模型中的某些曲面是否定義上有問題。 它們可能有控制點堆疊、壞掉的邊緣曲線或是其他問題。 將這些曲面移到一個壞掉曲面的圖層,稍後清除掉。
  6. 在檔案屬性中檢視單位以及建模絕對公差的設定 - 這些數據合理嗎? 大部分產生IGES的程式都需要使用者自行設定,否則沒有辦法與單位及公差設定符合匹配。 Rhino在匯出過程中會自動匹配設定。自由造型曲面建模需要建模智能容限妥協。NURBs 曲線是一連串多項式表達段落,再由段落之間乘載連續數據的節點所組成。公差值越嚴格,曲線更複雜,那麼系統性能就會受到影響。但計算合宜公差值高密度曲線是沒有用的,如果您下游廠商不支援的話。
  7. 組合曲面 - 組合時,相鄰邊會被標記如果他們都在某特定建模公差範圍內。如果它們在公差範圍之外,就不會被組合。 組合這個動作並不會改變幾何的結構,只是標記夠接近符合的邊緣。看看指令列的結果,您有得到想要數量的多邊形曲面嗎? 有時匯入IGES檔案後會出現雙重曲面,通常其中一個是完整的,另一個會缺少內部修剪。所以當組合(Join)的時候您無法控制選擇哪兩個曲面。如果你覺得正面臨這樣的問題,嘗試組合兩個裸露邊緣。如果附近應該有裸露邊緣但並未出現,請將結合動作復原(undo),並且選擇複製曲面。將比較不完整的曲面刪除後,再試著組合。
  8. 查看是否有裸露邊緣 - 裸露邊緣就是未與其他組合的邊緣。 在組合的過程中,他們特定建模公差距離還要更遠。 有可能是一開始的建模造成如此粗糙的品質,或者是因為匯入IGES檔中有個錯誤的公差設定、或是雙重曲面等。 如果執行ShowNakedEdges指令時出現很裸露邊緣,試試看回復組合程序,並且放寬絕對公差。有可能原始建模的公差放得比較寬鬆,而匯出設定並不確實。 註:沒有實際重構模型是無法改善曲面間的適當公差的。
  9. 組合裸露邊緣或是重新建模 - 組合裸露邊緣可能是好壞參半的事,這是一個抉擇,並且有可能造成下游的問題。如果您組合邊緣的目的是稍後匯入一個實體或網格操作,如STL檔案,那麼JoinEdge指令通常不會造成任何問題。 但如果您將會切割範圍以及大部分的曲線採取,那麼切割範圍在碰到超出公差時組合的裸露邊緣,就會出現縫隙。 要跨距的縫隙在組合前就已經顯示。如果縫隙比您的兩倍公差設定還要少,那請放心進行後續操作吧。如果縫隙太大太寬,請編輯或是重新建立曲面來減少縫隙。JoinJoinEdge並不會改變曲面幾何結構,他們只對相符的邊緣做出明確標示,而且需要特定或是重新定義公差。
  10. 修復壞掉的曲面 - 一次修理一個壞掉的曲面就好了,然後將它們加入主要多邊形。以下為破壞性最小、最激進、以及造成失敗的問題列表:
    1. 重建邊緣
    2. 分開修剪曲線並重新裁剪
    3. 重新建立曲面
    4. 替換曲面 - 從周圍曲面採取邊緣、從壞掉的曲面中切出工作範圍,用收集來的曲線來建立替代壞掉的曲面。
  11. 查看是否有壞掉的物件 -有時候檢查過的組合曲面,結果是在失敗的多邊形曲面裡。 通常這是邊緣中的細小片段,或是比建模公差還要短的修剪曲線。提取連續曲面,檢視它們,編輯邊界曲線並消除那些細小片段,再連結回去。當得到一個封閉多邊形曲面,並通過檢視並無其他裸露邊緣,就表示工作完成了! 在組合以及固定曲面的過程中,時常執行檢視會是一個很有用的方法。
  12. 匯出 - 現在您已經清理並修復IGES檔,已經可以輸出為IGES、Parasolid、STEP或ACIS等檔案以匯入您的應用程式。 這些不同格式各有差異,程式支援的程度也各有差異。 實驗這些支援的程式並找出最適合您需要的。

從一個乾淨的檔開始

有句老話這麼說 預防重於治療 ,這句話也適合用在IGES檔上。如果可以的話花點時間在原始應用程式中樞出一個乾淨的檔案。這會省去後續大量的清理工作,很可惜的並不總是能這麼順利。有兩種常見的建立IGES數據資料的程式 - CATIA以及Pro/Engineer。以下程序與設定將IGES匯入其他程式的麻煩降到最低。

CATIA

以改進修剪曲線來準備模型並從CATIA輸出,以下為我們的客戶(Black & Decker/DeWalt)在CATIA內執行使用的步驟,以降低下游的清理工作。

1. 要準備轉移的模型,從Volume開始下手。

 SOLID + EXTRACT + VOLUME

2. 清理模型並忽略所有無關的幾何。

 KEEP + SELECT + GEOMETRY + ELEMENT 並選取"VOLUME"。

3. 重新計算邊界曲線:將NO-SHOW裡的舊邊界提取出來。

 ERASE + NOSHOW  YES:SWAP. 鍵入 **SPC - **SUR 及 YES:SWAP  to reture.

4. ERASE並鍵入SPC- VOL

5. CURVE1 + BOUNDARY 並且鍵入 *FAC

6. 執行/CLN 來檢查錯誤。

7. 模型現在已經準備好做IGES的輸出了。

Pro/Engineer

將Pro/E 檔案最佳化輸出至files into Rhino

在Pro/Econfig.pro檔利用以下設定,或者在輸出前另存為rhino.pro 檔。

{@ IGES_OUT_ALL_SRFS_AS 128

IGES_OUT_SPL_CRVS_AS_126 YES

IGES_OUT_SPL_SRFS_AS_128 YES

IGES_OUT_TRIM_XYZ YES

IGES_OUT_MIL_D_28000 NO

IGES_OUT_TRM_SRFS_AS_143 NO

IGES_OUT_TRIM_CURVE_DEVIATION DEFAULT

INTF_OUT_BLANKED_ENTITIES NO

INTF3D_OUT_EXTEND_SURFACE YES

INTF3D_OUT_FORCE_SURF_NORMALS YES

IGES_IN_106_F2_AS_SPLINE NO

IGES_IN_DWG_LINE_FONT YES

IGES_IN_DWG_PNT_ENT YES

IGES_IN_DWG_COLOR YES

FIX_BOUNDARIES_ON_IMPORT YES

Pro/E file exchange


成功將Rhino檔案與Pro/E交換的資訊。

Softimage 檔的轉換


成功將Rhino檔案與Softimage轉換的資訊。

SOLIDWORKS IGES 檔案轉換


成功將Rhino檔案與SOLIDWORKS轉換

zh-tw/rhino/troubleshootingiges.txt · Last modified: 2018/02/06 by yoko_kadotani