ANSYS使用APDL数组实现节点坐标大小排序,并返回其对应的节点编号

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存储

小白学习笔记,希望大家多提建议,如果感兴趣,欢迎私信交流……!

  • 4
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值