簡體   English   中英

如何剪切現有的3D曲面網格以使用對稱性

[英]How to cut existing 3D Surface Mesh in order to use symmetry

我目前正在研究結構力學問題,我需要切割現有的3D表面網格,以便在MATLAB或GMSH中使用對稱性。

第一次嘗試:我通過首先刪除負x軸上的所有節點來獲得對稱性; 然后使用delaunayTri()來獲得3D四面體網格。 之后,我使用freeboundry() matlab函數來獲取表面網格。 使用這種方法,一些節點被忽略,因此我失去了實際的幾何形狀(即3d中的雙凹形狀)和對稱性。

第二次嘗試:我通過首先刪除負x軸上的所有節點來獲得對稱性; 然后在文件交換中使用AlphaHull() matlab函數,該函數使用alpha形狀算法。 在這里,我必須定義一個名為alpha radius的標量參數,其值會影響曲面網格的質量,但沒有明確定義的范圍,因此我不能自動化更大的網格; 更重要的是,在3D表面網格內部產生了一些殘余表面或四面體網格。

附件是3個文件(在一個zip文件中):

  1. 原始GMSH文件;
  2. 提取的節點坐標和
  3. 從GMSH文件中提取的元素連接數組(txt格式)。

https://www.dropbox.com/s/7xwkyvqy13k5o33/get_symmetry.zip?dl=0

注意:我不希望在新的對稱性中添加額外的節點,因為當前節點坐標和連接在我的計算中非常重要, 但如果是強制的,可能會引入額外的節點。 不過,我會感謝任何協助和/或建議。

先感謝您。 期望的對稱性

您可以使用此peuso算法首先定義網格和平面之間的交集

  1. 定義網格的egde矩陣(例如,行由構成邊的節點索引組成)
  2. 計算網格和平面的每個節點之間的有符號距離
  3. 找到一個正距離和一個負距離的egde
  4. 計算邊和平面之間的交叉點以創建新節點
  5. 找到具有交叉邊和三角形的三角形(通常情況下,您需要創建三個三角形)
  6. 刪除節點不在平面右側的所有三角形

我認為你可以在stackoverflow中找到每個步驟的slution

然后

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM