我目前正在研究结构力学问题,我需要切割现有的3D曲面网格,以便在 MATLAB或GMSH 中使用对称性。
第一次尝试: 我通过首先删除负x轴上的所有节点来获得对称性;然后使用delaunayTri()
来获得3D四面体网格。之后,我使用freeboundry()
matlab函数来获取表面网格。使用这种方法,一些节点被忽略,因此我失去了实际的几何形状(即3d中的双凹形状)和对称性。
第二次尝试: 我通过首先删除负x轴上的所有节点来获得对称性;然后使用来自文件交换的AlphaHull()
matlab函数,该函数使用alpha形状算法。在这里,我必须定义一个名为alpha radius的标量参数,其值会影响曲面网格的质量,但没有明确定义的范围,因此我不能自动化更大的网格; 更重要的是,在生成的3D表面网格中存在一些残留的表面或四面体网格。
附件是3个文件(在一个zip文件中):
https://www.dropbox.com/s/7xwkyvqy13k5o33/get_symmetry.zip?dl=0
注意:我不希望在新的对称性中添加额外的节点,因为当前节点坐标和连接在我的计算中非常重要,但是如果必须的话,可能会引入额外的节点。我会但是感谢任何帮助和/或建议。
提前谢谢你。
答案 0 :(得分:1)
您可以先使用此peuso算法
定义网格与平面之间的交点我认为您可以在stackoverflow中找到每个步骤的slution
然后