无缘啊无缘 发表于 2021-5-28 07:11:44

3D打印建模之 极小曲面 I --Matlab生成极小曲面

1.介绍
3D打印技术可以制造各种复杂结构,在减重、隔热等方面有着广泛应用。其中有一类非常有趣的结构,被称极小曲面(minimal surface):是指平均曲率为 0 的曲面 ,如下面是两种极小曲面。由于较为光滑过度,这种结构一般比较稳定,在首饰制造、隔热放热及减重设计方面有着很好的前途。
https://img.jishulink.com/upload/202105/17adc304aa4e497d9e137f11508c5079.png
可以看到,上述两种极小曲面是可以用数学方程表达出来,左边的可被称作 隐式极小曲面,因为想通过解方程在建立其几何模型非常难。右边的是显式方程确定的,因为x、y、z都可以独立表达,这种显式极小曲面在很多CAD软件都可以实现,说到仿真软件,spaceclaim 就能直接生成。今天跟大家分享左边这种隐式极小曲面的生成方法之 Matlab。2.隐式极小曲面生成方法
左边这种虽然无法直接生成,但不是没有办法;其中很多软件都可以实现:1、犀牛(rhino)的grasshopper,可以生成模型、优化网格并输出为stl等abaqus可支持的格式;想必搞建筑设计的朋友对此非常熟悉;网上(如b站)也有视频教程,在此不作详细介绍。2、Matlab之 isosurface 函数,详情自行查询。其思路是先建立一个由xyz做成的点集,再用把这些点的坐标依次带入 目标函数f的表达式中,得到v=f(x,y,z)的值;最后对比v与c的值,满足条件即满足了原目标函数f。如下面是简单的代码:**** Hidden Message *****其实只有前四行代码是用来生成极小曲面的,后几行是视觉效果之类的。那么,对于做仿真的人来讲,只有图片肯定不行,至少得转换成stl格式或obj格式或inp等 abaqus支持的格式,此时需要把matlab生成的顶点、面、连接顺序等信息写入为 stl或obj格式或inp(abaqus可支持obj导入)。本文的重点就是怎么生成这类曲面的stl或obj文件,本人参考stl文件的格式写了个脚本(附件),可以直接生成stl文件,效果如下:曲面https://img.jishulink.com/upload/202105/256c0c045a704f8486cdf6812b97ba0d.png
断面封闭的曲面
https://img.jishulink.com/upload/202105/4404ab4e814e412fb0f4b8c893975b35.png****上述封闭曲面为空心曲面,若要用实体,需用CAD软件进行实体转换
虽然上述stl文件导入后在abaqus中可以正常计算,但网格划分有些不好。怎么有画网格?大家可以提提高见。据我所知,由于此类曲线很难转化为 几何模型,只能通过网格优化软件或 一些算法实现网格重新划分。下面是通过软件优化后的网格:https://img.jishulink.com/upload/202105/372eded6b1c24c23922821ab412da2ef.jpg
3.其他说明
matlab生成了曲面后,在abaqus中阵列后根据需求进行仿真即可;由于是曲面,需要采用壳单元。如果不想用壳单元,希望 加厚为实体单元 怎么办?1、通过rhino等软件的网格偏移功能;2、用matlab或python加厚(另需脚本),下次说明。https://img.jishulink.com/upload/202105/cba31a6b400f4428a130b8dc748a66fb.jpg
更多详情见MATLAB极小曲面生成及转stl代码
欢迎咨询讨论:欢迎咨询讨论:QQ180280578、微信allisforA



Andywe1 发表于 2022-6-27 14:41:48

学习一下:handshake
页: [1]
查看完整版本: 3D打印建模之 极小曲面 I --Matlab生成极小曲面