【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即可。

【Abaqus 3D打印建模】之 極小曲面 II --python生成極小曲面的圖1

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

【Abaqus 3D打印建模】之 極小曲面 II --python生成極小曲面的圖2

從圖中可以看到,如果僅去極小曲面上的一個(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á)式如下:

【Abaqus 3D打印建模】之 極小曲面 II --python生成極小曲面的圖3

即模型中每一個(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),如下圖所示:

1.png

今天介紹怎么用python生成上述極小曲面并輸出為stl文件。

  1. 安裝包:需要mayavi、vtk、traits及numpy等依賴(lài)包,可以從python第三方庫(kù)下載,或者從https://pan.baidu.com/s/17Aa-Qv6YqvVLXjVqgW1b4A,(br5n)下載安裝;
  2. 需要用到mayavi的mlab函數(shù),實(shí)際上建模思路跟matlab完全一樣,即先建立點(diǎn)陣區(qū)域,再?gòu)闹蝎@取滿(mǎn)足極小曲面方程的點(diǎn)。
  3. 生成曲線(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()
D.png

顯式曲線(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()
C.png

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.png

3、可以加厚,并不需要額外的CAD軟件輔助;

4、xyz的范圍可以自定義,同時(shí)根據(jù)需求輸入曲面表達(dá)式可以生成任何曲面(幾乎)。

4.png

歡迎咨詢(xún)討論

以下內(nèi)容為付費(fèi)內(nèi)容,請(qǐng)購(gòu)買(mǎi)后觀看

   9人購(gòu)買(mǎi)

隱式、顯式極小曲面生成腳本及 stl轉(zhuǎn)換腳本

App下載
技術(shù)鄰APP
工程師必備
  • 項(xiàng)目客服
  • 培訓(xùn)客服
  • 平臺(tái)客服

TOP

10
25
10