ANSYS使用APDL数组实现节点坐标大小排序,并返回其对应的节点编号
注:节点组件node_cm中的所有节点都在一条直线上,即所有节点坐标的三个分量有两个是相同的,假设节点组件在空间中的位置平行于x轴,y,z坐标为常数,分别为node_y,node_z
/prep7
cmsel,s,node_cm !选择一个节点组件
*get,firstnodenum,node,0,num,min !获取最小的节点编号
*get,totalnodenum,node,0,count !获取节点总数
!一维数组node_bh存储每一个模型节点的编号
*dim,node_bh,array,totalnodenum,1
node_bh(1,1)=firstnodenum
x=firstnodenum
*do,i,2,totalnodenum
x=ndnext(x)
node_bh(i,1)=x
*enddo
!一维数组node_x存储每一个模型节点的x坐标
!一维数组sort_x与node_x中包含的元素均相同
!不同的仅仅是sort_x在node_x的基础上对节点x坐标值从小到大进行了排序
*dim,sort_x,array,totalnodenum
*dim,node_x,array,totalnodenum
*do,i,1,totalnodenum
node_x(i,1)=nx(node_bh(i,1))
*enddo
*vscfun,xmax,max,node_x
*do,i,1,totalnodenum
*vscfun,sort_x(i,1),min,node_x
*do,ii,1,10
*if,sort_x(i,1),eq,node_x(ii,1),then
node_x(ii,1)=xmax !这里所有的node_x均被赋值为其最大元素值(略显冗长,但是可以顺利实现排序功能)
*exit
*endif
*enddo
*enddo
!一维数组node_xbh与node_bh的区别
!一维数组node_bh存储每一个模型节点的编号,按照节点编号的大小排列在数组中
!一维数组node_xbh存储每一个模型节点的编号,按照节点x坐标值的大小排列在数组中
*dim,node_xbh,array,totalnodenum,1
*do,i,1,totalnodenum
node_xbh(i,1) = node(sort_x(i,1),node_y,node_z) !将排好序的节点坐标值还原为节点编号
*enddo
!至此,使用APDL数组实现了对节点坐标大小排序,并返回其对应的节点编号,由一维数组node_xbh存储
小白学习笔记,希望大家多提建议,如果感兴趣,欢迎私信交流……!
版权声明:本文为weixin_43717845原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。