前言
ansys中选择某区域内的所有单元很容易,但由于一些特殊情况需要获取区域内某些或所有单元,情况一复杂就没有那么简单了,本文主要介绍如何获取区域内所有单元编号并存于数组中,以便过后访问和查看。
一、案例模型
几何模型(向量标示,语句为/DEVICES,VECTOR,1)
有限元模型
融合并压缩所有单元编号
nummrg,all
numcmp,all
二、操作流程
图中一共有几百个单元,要想获取中间区域(面2)中所有单元编号,分为以下几步。
1.获取前先设置好相关参数
*set,nn,2 !设置参数nn等于2,定位中间面编号
esel,all !选择所有单元
*get,emax,elem,,num,max !获取最大单元编号
asel,s,area,,nn !选择面2区域
esla !选择依附于面2的单元
*get,nse,elem,,count !获取中间区域的单元数
*dim,ne,,nse !定义一个维数等于单元数的数组
选择结果如图所示
2.读入数据
an=0 !定义参数,用于计算单元数
*do,I,1,emax !对所有单元进行循环
*if,esel(i),eq,1,then !判断单元i是否被选择
an=an+1
ne(an)=i !把单元保存于数组中
*endif
*enddo
其中 *if,esel(i),eq,1 是判断第i个单元是否被选中,因为前面我们已经通过命令 esla 将面2中的单元选中,如果esel(i)等于1的话,那就说明第i个单元就是面2中的单元。
结果展示
总结
选择上图左边是数组维数,右边是单元编号,因为中间区域单元编号刚好是1-43号单元,所以就显得一 一对应,如果区域内单元不连续的话,就会更明显了。