ANSYS使用 APDL 数组存储每一个荷载子步下的后处理参数值
利用数组获取每一个荷载子步下的后处理参数变化,本文以 所有单元x方向应力之和 为例
/prep7
allsel,all
esel,s,real,,6,8 !选择实常数6,7,8的单元,即弹簧单元
cm,elem_tanhuang,elem
cmsel,s,elem_tanhuang,elem
*get,firstnum,elem,0,num,min !单元 的最小单元编号
*get,totalnum,elem,0,count !单元总数
!创建数组,存放每一个单元的编号
*dim,elembh,array,totalnum,1
elembh(1,1)=firstnum
jjj=firstnum
*do,i,2,totalnum
jjj=elnext(jjj)
elembh(i,1)=jjj
*enddo
*get,hezaibu_num,active,0,solu,ncmls !获取总荷载步数
*dim,zibu_num,array,hezaibu_num,1
*do,mm,1,hezaibu_num
set,mm
*get,zibu_num(mm,1),active,0,solu,ncmss !得到相应荷载步下的子步数
*enddo
*dim,zongzibu,array,hezaibu_num,1
xx=zibu_num(1,1)
zongzibu(1,1)=xx
*do,i,2,hezaibu_num
xx=zibu_num(i,1)+xx
zongzibu(i,1)=xx
*enddo
zongshu=zongzibu(hezaibu_num,1) !得到所有子步数的总和,也就是所有不同工况的总数
!定义一个数组ffxx,用于存放 所有单元x方向应力之和
*dim,ffxx,array,zongshu,1
tt = 0
*do,mm,1,hezaibu_num!荷载步数循环
set,mm
*do,nn,1,zibu_num(mm,1) !荷载子步数循环
set,mm,nn !设置当前的第mm荷载步下的第nn荷载子步数
allsel,all
cmsel,s,elem_tanhuang,elem
etable,xf,f,y
*dim,xforcelem,array,totalnum,1
*do,i,1,totalnum
*get,xforcelem(i,1),elem,elembh(i,1),etab,xf
!获取每个单元X方向内力,并将其存入xforcelem
*enddo
*dim,xforce,array,totalnum,1
xforce(1,1)=xforcelem(1,1)
!这段只是想把每个单元内力累加求和,目标就是一个值,所以这样写有点冗长了,但是没想到更好的方法
*do,i,2,totalnum
xforce(i,1)=xforce(i-1,1)+xforcelem(i,1)
*enddo
tt=tt+1 !这个tt的作用只是计数,给ffxx数组编号
ffxx(tt,1) = xforce(totalnum,1)
!给ffxx数组赋值,获取每一个核载子步下的 单元x方向应力之和
*enddo
*enddo
/post26
nsol,2,1,u,y
!这里随意定义一个的节点变量,但是一定先定义,具体内容无所谓(可查看帮助文档VPUT函数,V前面没有*的那个)
vput,ffxx(1),3
!将 单元x方向应力之和 转化为变量3
prod,6,1,,,,,,(230*1000/11)/(100*340)
xvar,3
plvar,6
!荷载——x方向单元总应力曲线
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删