当前位置:服务支持 >  软件文章 >  APDL命令提取单元面积:高效数据处理技巧

APDL命令提取单元面积:高效数据处理技巧

阅读数 24
点赞 0
article_banner

问题描述

如下图的2D平面网格模型,如何一次性提取所有单元的面积,并将单元编号和对应的面积写出到文本文件。

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 !设置边的网格数                     
lesize, 4, , , 2, 1
lesize, 2, , , 4, 1             
lesize, 3, , , 4, 1
amesh, 1 !面网格划分
/pnum, elem, 1
/replot

方法一

1
2
3
4
5
6
7
8
9
10
11
12
13
*get, ENUM, elem, 0, count !获取单元个数,置于参数ENUM
*get, EMIN, elem, 0, num, min !获取最小单元编号,置于参数 EMIN  
*get, EMAX, elem, 0, num, max !获取最大单元编号,置于参数 EMAX  
*dim, EAREA, array, ENUM, 2 !定义一个数组,用于存放单元的编号和面积  
k = 1  
*do, i, EMIN, EMAX
*if, esel(i), eq, 1, then !判断单元编号对应的单元是否存在  
*get, Ai, elem, i, area !获取单元i的面积(仅对面单元)  
EAREA(k,1) = i !将单元i的编号存入数组  
EAREA(k,2) = Ai !将单元i的面积存入数组  
k = k+1
*endif
*enddo

但是此方法存在一个问题,命令流将提取单元编号从EMIN到EMAX的所有单元面积,而不能保证单元编号对应的单元属于当前选择的单元集合。例如,本例中选择单元1、2和12,执行上述命令流时,程序仍然会提取单元编号从1到12一共12个单元的面积。

方法二

针对方法一存在的不足,笔者进行了改进,整体思路如下:
1、采用单元个数作为循环控制变量;

1
*do, i, 1, ENUM

2、采用 elnext() 函数获取下一个单元编号;

3、将单元编号和单元面积存入数组后,采用*vwrite命令将数组写入文本文件;
本例写出的单元编号和单元面积结果如下

02.png

特别说明:*vwrite命令不能在命令流窗口中运行,而必须在ANSYS Batch模式下运行。

小结

经笔者改进的方法二,可在ANSYS中一次性提取任意数量、编号不连续平面单元的面积,并将结果保存到文本文件,方便后续的绘图或是统计工作。


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删
相关文章
QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空