Posted on 2022-04-14 10:20
eryar 閱讀(1850)
評論(0) 編輯 收藏 引用 所屬分類:
2.OpenCASCADE
OpenCASCADE 曲面展開
eryar@163.com
Abstract: There is a common need in industries dealing with sheet material products (shipbuilding in the sphere of vessel design, construction, aerospace, manufacturing (for example, in clothes fitting software), etc.) to accurately calculate the shape of a sheet material blank to be used for production of a particular detail of the product (a plate).
Keywords: BRep, Unfolding, Developable Surface
1 Introduction
這幾天發(fā)布了OpenCASCADE中投影相關的理論實現(xiàn),很多人問到了曲線包覆Wrap的功能。在Solidworks中叫Wrap,其效果如下圖所示:


其要求曲線保持形狀和長度不變。看上去和投影操作類似,實際上原理是不同的,包覆Wrap更像是模型的圖片貼圖,把一個二維圖片貼到三維曲面表面。
其實OpenCASCADE有一個收費模塊叫Unfolding Component,已經實現(xiàn)此功能。OpenCASCADE的付費模塊是不開源組件,但是可以聯(lián)系官方試用。
2 Unfolding Component
曲面展開在制造業(yè)中應用廣泛,如造船中的船體曲面鋼板展開才能加工,如制衣中的服裝打版,還有建筑中的通風管道板材的加工等。
在機械或設備中,常有用金屬板材制作成各種形狀的制件。為了方便加工制造,往往要畫出它們的放樣圖。例如建筑上用到的通風管道都是用鐵皮制成的。制造時,一般先按零件圖的尺寸,在板材上畫成1:1的視圖;然后根據(jù)實樣圖畫出放樣圖,再經下料、彎卷、焊接而成。畫放樣圖的關鍵問題是把制件的表面展開。所謂立體表面展開是指:將立體表面的真實形狀和大小順次連續(xù)地展開在一個平面內。由展開得到的圖形,叫做展開圖。畫展開圖時,如果考慮設計和加工制造的要求,就是放樣圖。這些概念在造船中同樣適用。
畫立體表面展開圖的一個基本問題是如何求出立體表面的實形?即曲面與平面的一個映射關系。

https://www.opencascade.com/components/unfolding-component/

OpenCASCADE的Unfolding部件的功能如下:
3D曲面展開的過程是與生產中將平面板加工成曲面板相反的過程。如果模型的曲面是可展曲面(Developable Surface),那么曲面板完全可以通過彎曲得到,這種情況下展開的結果也沒有變形(Distortions)。
若模型的曲面是不可展開曲面(Not Developable Surface),即在曲面的一些區(qū)域的高斯曲率非0(i.e. has non-zero Gaussian curvature in some areas)。展開結果盡量產生變形。

可以看到展開后,還可以將展開得到的平面與原曲面建立映射Map。有這個功能的話,對于前面提到的曲線包覆有了一個處理思路:
首先,將要包覆的曲面展開成平面;
其次,將要包覆的曲線投影到展開平面上;
最后,將展開平面上的投影線映射回曲面,即可以得到包覆線。
這樣就可以保證曲線的形狀和長度保持不變。這個思路是我的個人建議,歡迎大家討論交流,可能會有更好的辦法。
3 Unwrap Mesh
如果只是想將曲面展開,F(xiàn)reeCAD中提供了曲面展開的實現(xiàn),在MeshPart工作區(qū)中選擇Meshes->Unwrap Mesh或Unwrap Face,可以將網格或曲面展開。


對曲面展開算法感興趣的可以查看FreeCAD中相關功能的源碼。