基于Matlab实现三维随机曲面建模

文摘   科学   2024-11-17 13:42   北京  

已知常规的建模软件无法实现结构随机性,借助于代码实现随机性又很难转换为三维模型

故小编今日分享基于Matlab实现三维随机曲面建模的方法。这或许是打通复杂三维结构建模屏障的一个有效的方法。

步骤:在Matlab建立随机三维曲面,将曲面的数据矩阵转化为可以编辑为点云的格式,输出ply格式的点云文件,在Geomagic将点云文件封装,并通过曲面编辑工具将三维模型导出为igs格式,将igs文件导入Solidworks进一步修饰,最后导出为x_t格式的文件。最后我们用该三维模型进行了有限元仿真

具体实现方法我们先在Matlab平台上建立一个随机三维曲面。核心函数为interp2(),这是一个二维插值函数,主要是在规定的范围内插入若干随机点。

x=1:1:6;y=1:1:6;temps=rand(6,6)*20+60;mesh(x,y,temps);[xi,yi]=meshgrid(1:0.1:6,1:0.1:6);zi=interp2(x,y,temps,xi,yi,'spline');mesh(xi,yi,zi)

然后,我们要将结果数据编辑为.ply格式的点云文件,该格式的数据格式为N*3矩阵,即每行存储一个三维空间点坐标。而我们得到的数据格式为51*51的矩阵:

现将xi、yi、zi值分别提取存储到新的矩阵xyzPoints中。主要进行遍历即可。

a=1;b=1;[c,d]=size(xi);for i=1:1:c*d    xyzPoints(i,1)=a;    if i/c == round(i/c)     a=a+1;    end    xyzPoints(i,2)=b;    b=b+1;    if b==c+1        b=1;    end    xyzPoints(i,3)=zi(xyzPoints(i,1),xyzPoints(i,2));end

新生成的xyzPoints的矩阵格式变成了N*3。

然后将xyzPoints输出为.ply格式的文件,这是点云文件的通用格式,也是从点到实体的重要一步。

ptCloud = pointCloud(xyzPoints);pcshow(ptCloud);pcwrite(ptCloud, 'xyz.ply')

此时会输出点云的图像,用来验证生成的xyzPoints数据是否如预期所料。


在当前工作目录下会出现一个名为xyz.ply的文件。

我们需要打开Geomagic Studio软件,这是一个用来修饰三维模型的软件,将xyz.ply导入进去,出现了若干个点。

然后我们将这些点封装起来,原理就是点连成线线连成面。采样的点间距用来控制以什么样的分辨率采集可连成直线的点,如果这个值很大,相邻的点就无法连成直线,将影响最终的效果,所以这个值尽量小。

封装完成后,我们得到了这个曲面,可能会出现一些瑕疵,我们利用填孔工具修补即可。

现在这个图形并未完全成为实体,表面使用三角形面片连接而成的,还有很多棱角。我们需要进行一系列操作才能保存为三维格式。首先精确曲面

然后自动曲面化,参数默认即可。

然后拟合曲面

拟合后的曲面相对于之前的曲面来说表面更光滑了。然后我们将此模型保存为.igs格式

保存时会出现这样的对话框。点击确定即可。

我们将.igs格式的文件导入Solidworks,可以看到模型的表面已经重新被划分了曲面,没有三角形面片的痕迹了。将此模型保存为Abaqus软件可以识别的三维格式.x_t。

Abaqus中导入x_t文件

然后进行一系列常规操作。施加载荷、划分网格等。

最后运行结果。

可以看出,通过这样建立的模型完全可以在有限元软件中使用

启示:我们在研究一些仿生的结构时往往需要随机孔洞或梯度孔洞模型,这些孔洞在Solidworks中直接画的话很复杂,而且不易控制。基于Matlab代码可以实现对孔洞多参数的修改,也更容易控制形状或梯度。

本文只是抛砖引玉,更复杂的模型也可以这样构造。

关注小时光年,更多科研知识持续更新中!需要科研插图优化服务+v:Dr_Lou_BME2020

往期回顾
爆肝65副人体运动解剖图谱,你的论文绝对用得上                                                       
Visio实例(二)|物体坐标系的高级画法                                                                       
Visio实例(三)|制作高清矢量的电子签名                                                                  
Visio实例(一)|箱型图制作与效果优化                                                       

博硕科研绘图
在读博士的科研经历,专注分享论文写作和科研画图的相关知识。
 最新文章