获取某区域内所有单元编号
前言一、案例模型二、操作流程1.获取前先设置好相关参数2.读入数据结果展示
总结
前言
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号单元,所以就显得一 一对应,如果区域内单元不连续的话,就会更明显了。