Ansys 中提取节点、单元、约束及载荷等信息

作者:落知秋 | 创建时间: 2023-05-12
本文介绍了如何在 Ansys中提取节点、单元、约束及载荷信息,以供 Matlab等程序读取,进行有限元分析计算。...
Ansys 中提取节点、单元、约束及载荷等信息

操作方法

在Ansys中建立一简单的有限元模型,本文以平面应力问题为例。 建立两个三角形单元的模型(长度500,高度250) ①单元Plane42 ②材料:E=210e3 MPa;NU=0.3;实常数=25(单元厚度)

施加约束,加载载荷 ①约束节点1,4的所有位移 ②在节点2,3施加x方向集中力9375N

建立一文本文件(如文件名为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中用Dlist和Flist命令列出约束和载荷信息,保存为文本文件。

合并前面两部生成的文本文件,结果如下: 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 ) ;

读入完成后在工作空间将生成包含节点、单元、约束和载荷的数组。 以用于有限元计算

点击展开全文

更多推荐