Ansys?

本文介紹瞭如何在Ansys中提取節點、單元、約束及載荷信息,以供Matlab等程序讀取,進行有限元分析計算。

工具/原料

Ansys

Matlab

方法/步驟

在Ansys中建立一簡單的有限元模型,本文以平面應力問題為例。

建立兩個三角形單元的模型(長度500,高度250)

①單元Plane42

②材料:E=210e3 MPa;NU=0.3;實常數=25(單元厚度)

Ansys 中提取節點、單元、約束及載荷等信息

施加約束,加載載荷

①約束節點1,4的所有位移

②在節點2,3施加x方向集中力9375N

Ansys 中提取節點、單元、約束及載荷等信息

建立一文本文件(如文件名為0003getNodeElement.txt),輸入如下代碼:

*GET, ELEMENTNUM,ELEM,0,COUNT*GET, NODENUM,NODE,0,COUNT *CFOPEN,3nodes-TriangleElement,txt !!輸出文件*VWRITE,NODENUM%6I*DO, I,1,NODENUM,1 *VWRITE, I, NX(I),NY(I)%7I%12.6F%12.6F*ENDDO *VWRITE, ELEMENTNUM%6I*DO, I,1,ELEMENTNUM,1*GET,m_num,ELEM,I,ATTR,MAT *VWRITE, I,NELEM(I,1),NELEM(I,2),NELEM(I,3),m_num%7I%7I%7I%7I%7I*ENDDO*CFCLOS

在Ansys中輸入該文件,及可在當前目錄下得到包含節點及單元信息的文本文件3nodes-TriangleElement.txt。

Ansys 中提取節點、單元、約束及載荷等信息

在Ansys中用Dlist和Flist命令列出約束和載荷信息,保存為文本文件。

Ansys 中提取節點、單元、約束及載荷等信息

合併前面兩部生成的文本文件,結果如下:

4 1 0.000000 0.000000 2 500.000000 0.000000 3 500.000000 250.000000 4 0.000000 250.0000002 1 1 3 4 1 2 1 2 3 11 1 210000 0.300000 24 1 1 0.00000000 0.00000000 1 2 0.00000000 0.00000000 4 1 0.00000000 0.00000000 4 2 0.00000000 0.00000000 2 2 1 9375.00000 0.00000000 3 1 9375.00000 0.00000000

在Matlab中讀入這些數據,以供有限元分析計算。

建立一.m文件,代碼如下:

filename='3nodes-TriangleElement.txt'; fid = fopen( filename, 'r' ) ; % 讀取節點座標 node_number = fscanf( fid, '%d', 1 ) ; gNode = zeros( node_number, 2 ) ; for i=1:node_number dummy = fscanf( fid, '%d', 1 ) ; gNode( i, : ) = fscanf( fid, '%f', [1, 2] ) ; end % 讀取單元定義 element_number = fscanf( fid, '%d', 1 ) ; gElement = zeros( element_number, 4 ) ; for i=1:element_number dummy = fscanf( fid, '%d', 1 ) ; gElement( i, : ) = fscanf( fid, '%d', [1, 4] ) ; end % 讀取材料信息 material_number = fscanf( fid, '%d', 1 ) ; gMaterial = zeros( material_number, 3 ) ; for i=1:material_number dummy = fscanf( fid, '%d', 1 ) ; gMaterial( i, : ) = fscanf( fid, '%f', [1,3] ) ; end % 讀取邊界條件 bc1_number = fscanf( fid, '%d', 1 ) ; gBC1 = zeros( bc1_number, 3 ) ; for i=1:bc1_number gBC1( i, 1 ) = fscanf( fid, '%d', 1 ) ; gBC1( i, 2 ) = fscanf( fid, '%d', 1 ) ; gBC1( i, 3 ) = fscanf( fid, '%f', 1 ) ; dummy=fscanf( fid, '%f', 1 ) ; end % 讀取節點力 nf_number = fscanf( fid, '%d', 1 ) ; gNF = zeros( nf_number, 3 ) ; for i=1:nf_number gNF( i, 1 ) = fscanf( fid, '%d', 1 ) ; gNF( i, 2 ) = fscanf( fid, '%d', 1 ) ; gNF( i, 3 ) = fscanf( fid, '%f', 1 ) ; dummy=fscanf( fid, '%f', 1 ) ; end % 關閉文件 fclose( fid ) ;

讀入完成後在工作空間將生成包含節點、單元、約束和載荷的數組。

以用於有限元計算

Ansys 中提取節點、單元、約束及載荷等信息

相關問題答案