对单元进行排序
- 前言
- 一、划分网格
- 二、单元排序
- 1.引入库
- 2.读取结果
- 预期结果
- 实际结果
- 总结
前言
通过do命令与if命令的配合使用,来对图中面单元进行排序。
一、划分网格
finish /clear /prep7 blc4,,,9,9!建立一个四边形 et,1,13!单元类型为plane13 esize,,3!网格尺寸 amesh,all如图所示
示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。
二、单元排序
1.引入库
allsel,all*get,emax,elem,,num,max!获取最大单元编号*get,d,elem,,count!获取单元数*dim,ne,,d*dim,ex,,d*dim,ey,,d*dim,eorder,,d!建立四个维数为d的数组 mine=0!定义一个参数*do,j,1,d esel,u,elem,,mine!每次选择时减去编号为mine的单元*get,c,elem,,count!重新获取新选择区域的单元数 ii=0!设置一个参数,用于计算单元个数*do,I,1,emax*if,esel(i),eq,1,then!判断单元是否被选择 ii=ii+1ne(ii)=i!将单元编号存于数组*endif*enddo!结束循环,具体可参考上一篇笔记*do,I,1,c*get,ey(i),elem,ne(i),cent,y!得到第i号单元y坐标*get,ex(i),elem,ne(i),cent,x!得到第i号单元x坐标*enddo miny=1e10minx=1e10!定义两个较大的数*do,I,1,c*if,ex(i),lt,minx,then!判断单元x坐标是否小于minx miny=ey(i)minx=ex(i)mine=ne(i)*else*if,ex(i),eq,minx,then*if,ey(i),lt,miny,then!判断单元y坐标是否小于miny miny=ey(i)minx=ex(i)mine=ne(i)*endif*endif*endif*enddo!结束循环eorder(j)=mine!将判断后的坐标值最小单元号存于数组*enddo2.读取结果
预期结果
先按照x坐标最小,当x坐标相同是,y坐标最小的原则,结果依次应该是1、4、7、2、5、8、3、6、9
实际结果
输入命令
*status,eorder!显示排序后的结果
与预期结果一致。
总结
看到这里有的人可能会说,这几个单元的排序就需要这么多的命令,那复杂的实体单元是不是更复杂?其实并不是这样的,这是一整套的排序命令,复杂的实体单元与这差不多,只是多了一个Z方向的有关命令。