nsort,u,x,0,1 !可自行Help查看nsort使用方法
*get,Uxmax,sort,0,max !最大值获取
*get,Uxmaxd,sort,0,imax !最大值对应的编号获取
2)获取梁单元应力极值、内力极值,以轴向应力、弯矩为例
allsel,all
Etable,ZYL,smisc,31 !采用单元表获取轴向应力
Esort,etab,ZYL,0,0 !对单元表进行排序
*get,ZYL_max,sort,0,max !最大值获取
*get,ZYL_num,sort,0,imax !最大值对应的单元编号获取
!============
Etable,WJ,smisc,2 !采用单元表获取弯矩
Esort,etab,WJ,0,0 !对单元表进行排序
*get,WJ_max,sort,0,max !最大值获取
*get,WJ_num,sort,0,imax !最大值对应的单元编号获取
*请注意:上述命令流中,获取应力、内力等均是采用梁单元的 I 端结果,当然也可以按J端的结果进行查看,例如轴应力对应的选项是Smisc,编号31对应的是I端的结果,编号36对应的是J端的结果,具体可查看单元Help了解。在实际运用中,同学们可分别对比I端和J端的结果,一般不会相差很大,但若是单元长度较长,或者梁单元本身有线荷载情况下,应分别作图对比,最后结果取包络即可。
/post26
!获取103号节点X方向位移时程.
Nsol,2,103,U,x
!获取总的荷载数,以确定需要定义数组的维度
*get,WD,active,0,solu,ncmls
*dim,Ux2,array,WD
!将变量转为数组
VGET,Ux2(1),2
Ux2_max=Ux2(1)
Ux2_min=Ux2(1)
*do,i,1,wd
!最大值判定
*if,Ux2_max,le,Ux2(i),then
Ux2_max=Ux2(i)
*endif
!最小值判定
*if,Ux2_min,ge,Ux2(i),then
Ux2_min=Ux2(i)
*endif
*enddo
*status,Ux2_max !最大值
*status,Ux2_min !最小值
/post26
*get,Nodenum,node,0,count !获取节点数目
!存储所有节点在整个响应过程中的最大值
*dim,Node_max,array,nodenum
!存储所有节点在整个响应过程中的最小值
*dim,Node_min,array,nodenum
*do,kk,1,nodenum
Nsol,2,kk,U,x
!获取总的子步数,以确定需要定义数组的维度
*get,WD,active,0,solu,ncmls
*dim,Ux2,array,WD
!将变量转为数组
VGET,Ux2(1),2
Ux2_max=Ux2(1)
Ux2_min=Ux2(1)
*do,i,1,wd
!最大值判定
*if,Ux2_max,le,Ux2(i),then
Ux2_max=Ux2(i)
*endif
!最小值判定
*if,Ux2_min,ge,Ux2(i),then
Ux2_min=Ux2(i)
*endif
*enddo
Node_max(kk)=Ux2_max
Node_min(kk)=Ux2_min
UX2=
*enddo
!存储结构最大值和最小值
Umax=Node_max(1)
Umin=Node_min(1)
*do,i,1,nodenum
!最大值判定
*if,Umax,le,Node_max(i),then
Umax=Node_max(i)
*endif
!最小值判定
*if,Umin,ge,Node_min(i),then
Umin=Node_min(i)
*endif
*enddo
*status,Umax
*status,Umin
ANSYS结构院
2022.6.17
暂无评论内容