【Abaqus 3D打印建模】之 極小曲面 II --python生成極小曲面
***請(qǐng)注意,附件僅為現(xiàn)式和隱士極小曲面生成和輸出為stl的python代碼,并不包括加厚***
***有加厚的需求,請(qǐng)看其他算例。加厚后輸出的stl,也是空心封閉的殼,不是實(shí)心的實(shí)體***
0.算例
上一個(gè)帖子介紹了怎么用matlab建立極小曲面,詳情見(jiàn)Matlab創(chuàng)建極小曲面。
下面是個(gè)簡(jiǎn)單的算例,在y方向壓縮極小曲面之Gyroid,幾何模型建立方法見(jiàn)下文,建立后陣列并有畫(huà)網(wǎng)格導(dǎo)入abaqus即可。

為了對(duì)比該極小曲面的應(yīng)力水平,采用同樣的材料做了單軸壓縮,兩種情況對(duì)比如圖所示:

從圖中可以看到,如果僅去極小曲面上的一個(gè)點(diǎn)作為其應(yīng)力應(yīng)變,其曲線(xiàn)甚至比實(shí)心立方體還高,顯然這是不合理的。出現(xiàn)這種現(xiàn)象的主要原因是,此類(lèi)細(xì)觀結(jié)構(gòu)或變形不均勻時(shí),不能取一個(gè)點(diǎn)代表整個(gè)模型,不然很可能會(huì)出現(xiàn)較大的誤差。對(duì)此問(wèn)題,細(xì)觀力學(xué)有些方法,比如作用力反作用力法,體積平均法等,但也有人認(rèn)為對(duì)于細(xì)觀結(jié)構(gòu),作用力反作用力法 不太合理。體積平均法的簡(jiǎn)單表達(dá)式如下:

即模型中每一個(gè)單元的應(yīng)力(應(yīng)變)對(duì)單元體積積分后,除以模型整個(gè)體積。上述應(yīng)力應(yīng)變曲線(xiàn)也證實(shí),采用該方法能夠得到較為真實(shí)的數(shù)據(jù)。
那么,怎么通過(guò)體積平均法獲得數(shù)據(jù)呢? 在計(jì)算結(jié)束后,需要通過(guò)python腳本對(duì)數(shù)據(jù)進(jìn)行處理,輸出中需要EVOL(單元體積)以便獲得各個(gè)單元的體積。
1.介紹
之前已經(jīng)介紹過(guò)什么是極小曲面,同時(shí)根據(jù)表達(dá)式定義為 隱式 和顯式 極小曲面,主要區(qū)別是 隱式極小曲面一般只有一個(gè)方程,不容易將x,y,z獨(dú)立表達(dá)出來(lái),如下圖所示:

今天介紹怎么用python生成上述極小曲面并輸出為stl文件。
- 安裝包:需要mayavi、vtk、traits及numpy等依賴(lài)包,可以從python第三方庫(kù)下載,或者從https://pan.baidu.com/s/17Aa-Qv6YqvVLXjVqgW1b4A,(br5n)下載安裝;
- 需要用到mayavi的mlab函數(shù),實(shí)際上建模思路跟matlab完全一樣,即先建立點(diǎn)陣區(qū)域,再?gòu)闹蝎@取滿(mǎn)足極小曲面方程的點(diǎn)。
- 生成曲線(xiàn)的代碼:
隱式曲線(xiàn)代碼:
import numpy as np from numpy import mgrid,pi,cos,sin,sinh,cosh from mayavi import mlab import mayavi x, y, z =mgrid[-pi:pi:10j,-pi:pi:10j,-pi:pi:10j]v=cos(x)+cos(y)+cos(z) iso=mlab.contour3d(x, y, z, v,contours=[0]) mlab.axes() mlab.show()
顯式曲線(xiàn)代碼:
import numpy as np from numpy import mgrid,pi,cos,sin,sinh,cosh from mayavi import mlab import mayavi,vtk u,v=mgrid[-2*pi:2*pi:40j,-10:10:200j] x=u*cos(v) y=u*sin(v) z=(2/3)*v iso= mlab.mesh(x, y, z) mlab.axes() mlab.show()
2.導(dǎo)入abaqus
無(wú)論是python還是matlab,不提供直接轉(zhuǎn)換為abaqus可支持的格式,因此還是需要相應(yīng)的腳本去轉(zhuǎn)換,思路就是把上述過(guò)程中生成的點(diǎn)坐標(biāo)信息按照stl文件格式寫(xiě)入即可。
至于加厚,如前面解釋過(guò),需要其他CAD軟件輔助或自己編個(gè)小腳本即可。
附件包括隱式和顯式曲線(xiàn)生成代碼及轉(zhuǎn)換stl格式的腳本。
3.下期預(yù)告
無(wú)論是用matlab還是python,都需要額外的腳本,或甚至要安裝些依賴(lài)包,眾所周知,python的某些安裝包,如上面的traits安裝起來(lái)其實(shí)挺麻煩的。基于以上的考慮,本人做了個(gè)簡(jiǎn)單的軟件,下期跟大家分享。
由于并非程序猿出身,基于python打包的,把其他亂七八糟的庫(kù)打包進(jìn)去了,大概在200M左右。但不需要安裝,直接運(yùn)行即可。其特點(diǎn)包括:
1、解壓即可運(yùn)行;
2、內(nèi)置典型極小曲面,直接可以生成,并可以輸出stl或各種圖片格式以及eps等多種格式;
3、可以加厚,并不需要額外的CAD軟件輔助;
4、xyz的范圍可以自定義,同時(shí)根據(jù)需求輸入曲面表達(dá)式可以生成任何曲面(幾乎)。

歡迎咨詢(xún)討論
以下內(nèi)容為付費(fèi)內(nèi)容,請(qǐng)購(gòu)買(mǎi)后觀看
9人購(gòu)買(mǎi)
隱式、顯式極小曲面生成腳本及 stl轉(zhuǎn)換腳本
工程師必備
- 項(xiàng)目客服
- 培訓(xùn)客服
- 平臺(tái)客服
TOP




















