利用APDL命令提取單元面積

問題描述

如下圖的2D平面網(wǎng)格模型,如何一次性提取所有單元的面積,并將單元編號和對應(yīng)的面積寫出到文本文件。

01.png

建立上圖模型的APDL命令流如下

1
2
3
4
5
6
7
8
9
10
/prep7
et, 1, shell63 !定義單元類型
rectng, 0, 20, 0, 20 !建立一個正方形,邊長20
lesize, 1, , , 2, 1 !設(shè)置邊的網(wǎng)格數(shù)                     
lesize, 4, , , 2, 1
lesize, 2, , , 4, 1             
lesize, 3, , , 4, 1
amesh, 1 !面網(wǎng)格劃分
/pnum, elem, 1
/replot

方法一

1
2
3
4
5
6
7
8
9
10
11
12
13
*get, ENUM, elem, 0, count !獲取單元個數(shù),置于參數(shù)ENUM
*get, EMIN, elem, 0, num, min !獲取最小單元編號,置于參數(shù) EMIN  
*get, EMAX, elem, 0, num, max !獲取最大單元編號,置于參數(shù) EMAX  
*dim, EAREA, array, ENUM, 2 !定義一個數(shù)組,用于存放單元的編號和面積  
k = 1  
*do, i, EMIN, EMAX
*if, esel(i), eq, 1, then !判斷單元編號對應(yīng)的單元是否存在  
*get, Ai, elem, i, area !獲取單元i的面積(僅對面單元)  
EAREA(k,1) = i !將單元i的編號存入數(shù)組  
EAREA(k,2) = Ai !將單元i的面積存入數(shù)組  
k = k+1
*endif
*enddo

但是此方法存在一個問題,命令流將提取單元編號從EMIN到EMAX的所有單元面積,而不能保證單元編號對應(yīng)的單元屬于當(dāng)前選擇的單元集合。例如,本例中選擇單元1、2和12,執(zhí)行上述命令流時,程序仍然會提取單元編號從1到12一共12個單元的面積。

方法二

針對方法一存在的不足,筆者進行了改進,整體思路如下:
1、采用單元個數(shù)作為循環(huán)控制變量;

1
*do, i, 1, ENUM

2、采用 elnext() 函數(shù)獲取下一個單元編號;

3、將單元編號和單元面積存入數(shù)組后,采用*vwrite命令將數(shù)組寫入文本文件;
本例寫出的單元編號和單元面積結(jié)果如下

02.png

特別說明:*vwrite命令不能在命令流窗口中運行,而必須在ANSYS Batch模式下運行。

小結(jié)

經(jīng)筆者改進的方法二,可在ANSYS中一次性提取任意數(shù)量、編號不連續(xù)平面單元的面積,并將結(jié)果保存到文本文件,方便后續(xù)的繪圖或是統(tǒng)計工作。

登錄后免費查看全文
立即登錄
App下載
技術(shù)鄰APP
工程師必備
  • 項目客服
  • 培訓(xùn)客服
  • 平臺客服

TOP

3
1