利用APDL命令選擇橢球面上的節(jié)點(diǎn)
2017-09-15 by:CAE仿真在線 來(lái)源:互聯(lián)網(wǎng)
問(wèn)題的背景:筆者在利用Workbench的二次開(kāi)發(fā)功能實(shí)現(xiàn)某模型的參數(shù)化建模、分網(wǎng)、加載時(shí),由于workbench開(kāi)發(fā)接口的限制,需要結(jié)合DM模塊、MAPDL模塊、Mesh模塊、FEM模塊以及Mechnical模塊。
在結(jié)合這些模塊的時(shí)候,為了實(shí)現(xiàn)參數(shù)化一鍵加載,需要在Mechnical模塊通過(guò)APDL和XML(ACT技術(shù))完成加載功能,而Mechnical模塊里面的模型其實(shí)只有節(jié)點(diǎn)和單元,因此,在Mechnical模塊添加的APDL命令只能是對(duì)節(jié)點(diǎn)或者單元進(jìn)行操作。
該模型有圓柱面和橢球面,圓柱面的節(jié)點(diǎn)其實(shí)比較好通過(guò)APDL選取,利用圓柱坐標(biāo)系即可,但是橢球面上的節(jié)點(diǎn)則無(wú)法直接選取。
至此,問(wèn)題便產(chǎn)生了,如何利用APDL在只有節(jié)點(diǎn)和單元的模型上選取橢球面上的節(jié)點(diǎn)。
局部模型如下所示。
圖1 單元模型
圖2 節(jié)點(diǎn)
筆者所想選取的節(jié)點(diǎn)是圖2中的最內(nèi)層的節(jié)點(diǎn),該群節(jié)點(diǎn)所對(duì)應(yīng)的幾何模型是一個(gè)標(biāo)準(zhǔn)的橢球形,橢球形狀參數(shù)比為2:2:1。
該問(wèn)題最大的障礙便是沒(méi)有幾何,只有節(jié)點(diǎn)和單元,如果有幾何的話,那么可以直接通過(guò)參數(shù)選擇面,再選擇依附在面上的節(jié)點(diǎn)即可。
如何解決該問(wèn)題?
首先,筆者嘗試通過(guò)在前期劃分網(wǎng)格時(shí)添加一種額外的單元,mesh200,這是一個(gè)比較特殊的單元,有興趣的可以查查資料,先將該面單獨(dú)用mesh200進(jìn)行網(wǎng)格劃分,之后對(duì)全部模型采用solid185進(jìn)行劃分。
劃分完成后,模型導(dǎo)入Mechnical模塊,可以通過(guò)單元類型的方式直接選出所要的節(jié)點(diǎn),而且選擇過(guò)程非常非常的方便和快捷。但是,mesh200單元只是用于網(wǎng)格劃分,不支持載荷和約束,也即是無(wú)法在這些節(jié)點(diǎn)上加載,這對(duì)于最終問(wèn)題就顯得無(wú)效了。
顯然,該方法雖然能夠選出所要的節(jié)點(diǎn),但是卻不能解決加載的問(wèn)題,只能放棄。
至此,筆者只能?chē)L試采用橢球本身的位移約束方程來(lái)選擇了。
眾所周知,標(biāo)準(zhǔn)橢球的方程為:
在本次模型中,a=c=2b=Ri,因此,本模型的橢球面方程為:
也即是,橢球面上節(jié)點(diǎn)的(x,y,z)坐標(biāo)肯定是滿足上述方程的,那么可以通過(guò)讀取節(jié)點(diǎn)的坐標(biāo)值,代入上述方程計(jì)算,判斷是否滿足,如果滿足,那么就是所需要的節(jié)點(diǎn),不滿足就不是。
基于此原則,可以寫(xiě)出APDL命令的思路:
獲取總節(jié)點(diǎn)數(shù)目
循環(huán)遍歷
獲取當(dāng)前的最小節(jié)點(diǎn)號(hào)
獲取該節(jié)點(diǎn)的三個(gè)坐標(biāo)值
計(jì)算橢球方程
邏輯判斷
如果該節(jié)點(diǎn)滿足橢球方程,則存入數(shù)組
舍棄當(dāng)前節(jié)點(diǎn)
之后,通過(guò)遍歷存儲(chǔ)的數(shù)組,可以選出所有滿足橢球方程的節(jié)點(diǎn)。
具體的APDL實(shí)現(xiàn)過(guò)程如下:
alls,all
csys,0
nsel,r,ext
nsel,r,loc,y,0,Body_Ri/2
tol=1e-6
j=0
*get,Total_node,node,0,count
*Dim,inner_node,array,Total_node,1
*do,i,1,Total_node,1
*get,node_min,node,0,num,min
ux=nx(node_min)
uy=ny(node_min)
uz=nz(node_min)
temp=(ux**2+uz**2+4*uy**2)/Body_Ri**2-1
abs_temp=abs(temp)
*if,abs_temp,lt,tol,then
j=j+1
inner_node(j)=node_min
*endif
nsel,u,,,node_min
*enddo
alls,all
nsel,r,,,inner_node(1)
*do,k,2,j,1
nsel,a,,,inner_node(k)
*enddo
注:定義了一個(gè)較小的變量tol=1e-6,主要是考慮可能存在一定的誤差,是節(jié)點(diǎn)的坐標(biāo)不能完全符合橢球方程,這個(gè)屬于正?,F(xiàn)象,稍加考慮即可。
最終運(yùn)行該段APDL代碼,可以選出所需要的最內(nèi)層的節(jié)點(diǎn),如下所示。
圖3 選擇節(jié)點(diǎn)
利用esln命令,選出該群節(jié)點(diǎn)所存附的單元,如圖4所示,所見(jiàn)就一層單元。
圖4 節(jié)點(diǎn)存附的單元
相關(guān)標(biāo)簽搜索:利用APDL命令選擇橢球面上的節(jié)點(diǎn) Ansys有限元培訓(xùn) Ansys workbench培訓(xùn) ansys視頻教程 ansys workbench教程 ansys APDL經(jīng)典教程 ansys資料下載 ansys技術(shù)咨詢 ansys基礎(chǔ)知識(shí) ansys代做 Fluent、CFX流體分析 HFSS電磁分析 Abaqus培訓(xùn)