收縮包裝 (ShrinkWrap)

ShrinkWrap 可讓您從網格、NURBS 幾何物件、SubD 和點雲建立包覆的網格。 要使用檔案進行 3D 列印,它必須是單一的封閉網格。無論給予的幾何物件數量和類型如何,收縮包裝 (ShrinkWrap) 都可以建立一個封閉的網格。在本教學中,我們將了解收縮包裝的工作原理以及它如何大幅減少準備 3D 列印模型的時間。

範例 1 - 由球體製成的戒指環

rendering

下載並開啟 01-spheres-ring.3dm

ring spheres

請注意,該檔案由多個未連接的球體組成。若要將設計準備為 3D 列印的單一網格,請執行 ShrinkWrap 指令並選取 54 個球體。螢幕上將顯示以下對話框:

Shrinkwrap dialog 1

最重要的設定是目標邊緣長度。此設定會決定網格包覆物件的細密程度。收縮包裝會根據模型大小進行估計,以便讓第一次的預覽顯示合理的結果,但在大多數的情況下,該數值應該要再更小才能獲得足夠準確的包覆網格。

收縮包裝單位
在本範例中,檔案的單位設定為公釐。這表示當目標邊緣長度為 1 時,網格邊緣的尺寸大約為 1 公釐。 較小的數值可以建立更精確的網格,但代價是計算時間更長。最佳設定取決於您的模型和用於最終輸出的 3D 列印機。例如,如果您印表機的解析度為 0.1 公釐,那麼使用更小的單位尺寸是沒有意義的,因為無論如何該細節都會在列印過程中遺失。

請檢視預覽隱藏輸入物件的選項,可以注意到網格相當粗糙:

ring wrapped coarse

若要獲得更好的網格,請將目標邊緣長度降低至 0.1。請注意預覽如何更新為更緊密包覆物件的高密度網格:

ring wrapped fine

隱藏網格邊緣可以更好地顯示物件的外觀,取消勾選建立網格框線選項即可執行此操作。

ring wrapped

您可以看到產生的網格仍然需要一些細節處理,並且可能需要透過平滑迭代的設定,將凹凸不平的邊緣進行平滑的處理。設定的數值越高,形狀越平滑,凸的尖角會修掉,凹角則會被填滿。下面的動畫是平滑迭代設定 0 到 100 之間的過程。

soomthing

收縮包裝的功能並不是只侷限於 NURBS 物件。現在,我們將在輸出中加入一個托架,並調整單位和平滑度,即可獲得最終結果。 開啟 Prong 圖層。這是一個 SubD 物件。選取球體和托架並再次執行 ShrinkWrap 指令,這次目標邊緣長度設定為 0.05 並將平滑迭代設定為 5:

Shrinkwrap dialog 2

得到的結果是一個封閉的網格,這樣就可以為脫蠟鑄造進行 3D 列印。

spheres with prong result

範例 2 - 逆向工程 SLC

下載並解壓縮和開啟 ring_slc.zip

slc file

如果仔細檢視檔案,您會看到該檔案是由網格製成的多個切片組成,這意味著這些曲線都是多重直線。為了要收縮包裝這些曲線,我們首先要將曲線的點抽離到點雲中。

在不選取曲線的情況下,執行 ExtractPt 指令並將指令行的輸出選項設定為點雲。現在選取曲線並按 結束指令。

pointcloud

選取前面建立的點雲並執行 ShrinkWrap 指令,進行以下設定:

shrinkwrap pointcloud

請注意,擴張頂點和點的選項已自動勾選,這功能會增加每個點的體積,這也表示包覆物件的大小會根據選擇的目標邊緣長度而增加。為了彌補這種增加,我們可以將偏移設定為負數值。

資訊
填補輸入物件的洞也已自動勾選,但對於收縮包裝點雲時不會產生影響。此功能將在下一個範例中派上用場。

得到的結果是一個可供 3D 列印的封閉網格:

Alt text

範例 3 - 對不完整的掃描執行收縮包裝

在此範例中,我們解釋如何建立可用的封閉形狀,從遺失數據的掃描開始。

下載並開啟 shoelast.3dm

3d scans

3DFace

想要製作封閉的網格,可以使用收縮包裝封閉孔,但尺寸有限。所以輸入物件準備得越好,設定目標邊緣長度的效果就可以越精確。 加入 SubD 面可以粗略地封閉孔洞。開啟 SubD 工具的標籤,左側邊欄的 3DFace 工具可以建立補洞的面。開啟頂點物件鎖點,透過鎖點到網格開始製作補洞的面,再透過點的編輯進行雕刻和細化的操作。從最大的孔洞開始,然後檢查收縮包裝掃描的物件和 SubD 補面之間的情況。 add subd surfaces

所有孔洞大致封閉之後,請執行 ShrinkWrap 指令並進行以下設定:

dialog

shrinkwrap

我們可以使用收縮包裝的結果作為 Quadremesh (重建為四角網格) 的基礎,進一步將形狀細節化。 在執行 Quadremesh 之前,可以先製作一條參考曲線,在 Quadremesh 使用它建立邊緣循環。在 視圖繪製一條如下圖所示的曲線。確保曲線和網格有些微的相交 (不能完全只在網格上方)。

side curve for surface

使用 ExtrudeCrv 在兩個方向擠出該曲線,使其與網格完全相交。然後,執行 MeshIntersect 指令讓結果與網格相交。

得到的結果是一條鋸齒狀的 1 階曲線。執行 Rebuild ,勾選刪除輸入物件並將曲線重建為 3 階、100 個控制點。 現在執行 Fair 公差設定為 100 使曲線平滑:

faired curve

執行 Quadremesh 指令並在對話框內按選取曲線按鈕,選取整平的曲線。將曲線影響變更為建立邊緣循環,勾選轉換為 SubD

dialog

我們現在將透過兩種方式細化 SubD 的形狀。按住 (在 Mac 上為 ) 並雙擊距離曲線最近的邊緣循環:

select edgeloop

選取這些邊緣之後,執行 SubDCrease 指令並將整個循環的權重設為 100。

下一個步驟是展平最接近我們建立的曲面的區域,以和收縮包裝的結果相交。開啟 SubD 的控制點 ( PointsOn / F10) 並在 視圖,使用 Lasso 選取指示的點:

selected points

開啟 guidesurface 圖層,在控制點仍在選取的情況下,將點 Pull 拉回到 guidesurface。 透過一些點的編輯,我們可以進一步細化形狀達到以下結果: quadremesh

其它教學

完成
恭喜您完成本教學!如果您有任何問題,請在論壇提問或發送郵件至 gijs@mcneel.com