【Abaqus 3D打印建模】之 極小曲面 I --Matlab生成極小曲面
***請注意,附件包括matlab生成極小曲面及斷面封閉空心殼的腳本***
***腳本已更新!!!若需要多種加厚方式,請關(guān)注其他算例***
熱及減重設(shè)計ng>1.介紹
3D打印技術(shù)可以制造各種復(fù)雜結(jié)構(gòu),在減重、隔熱等方面有著廣泛應(yīng)用。其中有一類非常有趣的結(jié)構(gòu),被稱極小曲面(minimal surface):是指平均曲率為 0 的曲面 ,如下面是兩種極小曲面。由于較為光滑過度,這種結(jié)構(gòu)一般比較穩(wěn)定,在首飾制造、隔熱放熱及減重設(shè)計方面有著很好的前途。
可以看到,上述兩種極小曲面是可以用數(shù)學(xué)方程表達出來,左邊的可被稱作 隱式極小曲面,因為想通過解方程在建立其幾何模型非常難。右邊的是顯式方程確定的,因為x、y、z都可以獨立表達,這種顯式極小曲面在很多CAD軟件都可以實現(xiàn),說到仿真軟件,spaceclaim 就能直接生成。
今天跟大家分享左邊這種隱式極小曲面的生成方法之 Matlab。
2.隱式極小曲面生成方法
左邊這種雖然無法直接生成,但不是沒有辦法;其中很多軟件都可以實現(xiàn):
1、犀牛(rhino)的grasshopper,可以生成模型、優(yōu)化網(wǎng)格并輸出為stl等abaqus可支持的格式;想必搞建筑設(shè)計的朋友對此非常熟悉;網(wǎng)上(如b站)也有視頻教程,在此不作詳細介紹。
2、Matlab之 isosurface 函數(shù),詳情自行查詢。其思路是先建立一個由xyz做成的點集,再用把這些點的坐標依次帶入 目標函數(shù)f的表達式中,得到v=f(x,y,z)的值;最后對比v與c的值,滿足條件即滿足了原目標函數(shù)f。如下面是簡單的代碼:
i=1;j=1; f=@(x,y,z)sin(x).*cos(y)+sin(y).*cos(z)+sin(z).*cos(x) [x,y,z]=meshgrid(-i*pi:0.05*pi:j*pi); %該區(qū)域中所有的 xyz坐標 v=f(x,y,z);c=isosurface(x,y,z,v,0) %找到v=0的等值面 h=patch(c); isonormals(x,y,z,v,h); set(h,'facecolor','g','edgecolor','b') grid oncamlight;lighting gouraud;
其實只有前四行代碼是用來生成極小曲面的,后幾行是視覺效果之類的。
那么,對于做仿真的人來講,只有圖片肯定不行,至少得轉(zhuǎn)換成stl格式或obj格式或inp等 abaqus支持的格式,此時需要把matlab生成的頂點、面、連接順序等信息寫入為 stl或obj格式或inp(abaqus可支持obj導(dǎo)入)。本文的重點就是怎么生成這類曲面的stl或obj文件,本人參考stl文件的格式寫了個腳本(附件),可以直接生成stl文件,效果如下:
曲面
斷面封閉的曲面

****上述封閉曲面為空心曲面,若要用實體,需用CAD軟件進行實體轉(zhuǎn)換 或 用abaqus的mesh模塊中tri to tet 填充為實體
雖然上述stl文件導(dǎo)入后在abaqus中可以正常計算,但網(wǎng)格劃分有些不好。怎么有畫網(wǎng)格?大家可以提提高見。據(jù)我所知,由于此類曲線很難轉(zhuǎn)化為 幾何模型,只能通過網(wǎng)格優(yōu)化軟件或 一些算法實現(xiàn)網(wǎng)格重新劃分。下面是通過軟件優(yōu)化后的網(wǎng)格:
3.其他說明
matlab生成了曲面后,在abaqus中陣列后根據(jù)需求進行仿真即可;由于是曲面,需要采用殼單元。
如果不想用殼單元,希望 加厚為實體單元 怎么辦?
1、通過rhino等軟件的網(wǎng)格偏移功能;
2、用matlab或python加厚(另需腳本),下期說明。
4.下期預(yù)告
可能有人會問,python行不行,答案是肯定的,但需要安裝一些庫,比如mayavi等,下次跟大家分享。下面是一篇文獻,將極小曲面matlab的生成法。有興趣的朋友可以看看:
Muna_Patterson_Minimal_Surfaces_Matlab_TechRep_V1.pdf
歡迎咨詢討論
以下內(nèi)容為付費內(nèi)容,請購買后觀看
20人購買
1、matlab生成極小曲面腳本(包括封閉曲面) 2、案例中網(wǎng)格優(yōu)化后的極小曲面stl文件
工程師必備
- 項目客服
- 培訓(xùn)客服
- 平臺客服
TOP




















