学习笔记-用NSORT命令获取最大应力点数据
在ANSYS的结果后处理时,实体单元的应力结果显示时默认会用"MX"和"MIN"在图形中标出最大最小应力点位置,要知道最大(或最小)应力点的节点编号的话可通过PRNSOL命令列表查得。一般来讲,结构在不同工况下的最大应力点一般不在同一位置,如果工况较多或者要反复查询的话,这种方法就需要人为地反复记录最大(或最小应力节点号),比较繁杂。如果能够把最大(或最小)应力点的节点号动态地符给一个变量,通过APDL语言就可以随时求得最大(或最小)应力点的数据了。 方法1: /POST1 NSEL,S,ALL NNUM=NDINQR(0,13) !当前选择集中的节点数目 *GET,N,NODE,,NUM,MIN !获取选择集中最小节点号 N_MAX=N; !当前应力最大节点号 *GET,SEQV_MAX,NODE,N,S,EQV !当前最大应力 *DO,I,2,NNUM !开始循环 *GET,TEMP,NODE,NDNEXT(N),S,EQV *IF,TEMP,GT,SEQV_MAX,THEN !比较大小 N_MAX=NDNEXT(N) SEQV_MAX=TEMP *ENDIF N=NDNEXT(N) !下一个节点 *ENDDO 方法2: 上面的命令流,由于需要反复对每一个节点进行遍历比较,如果节点数量较大时运算时间会比较长。其实,ANSYS中还提供了一个对节点数据进行排序的命令NSORT,借助它可以快速地实现上面命令流的功能,而且如果只查为了得到一个最大应力点的话,运算速度会很快。命令流如下: /POST1NSEL,S,ALLNSORT,S,EQV,0,,1,SELECT !结果按应力大小进行排序*GET,N_MAX,NODE,0,NUM,MAX !取得应力最大点的节点编号NUSORT !恢复缺省的排序方式*GET,SEQV_MAX,NODE,N_MAX,S,EQV !取得最大应力值 关于NSORT命令的格式: NSORT, Item, Comp, ORDER, KABS, NUMB, SEL其中:Item,Comp——排序的依据项标识,如S、LOC等;ORDER——排序方式。默认为0,按降序,若为1按升序;KABS——是否按绝对值进行排序。默认为0,不按绝对值排序,若为1按绝对值进行排序;NUMB——排序后结果记录的个数。默认为所有节点,此数越少排序速度越快;SEL——控制结果结点是否可以进行再次选择。如为空则不可选择(默认),如果排序后使用了NSEL等节点选择命令,则排序结果自动恢复为默认的排序方式;如为SELECT则当前节点选择集自动变为排序的结果记录结点,此时可用NSEL命令从当前选择集中进行进一步选择,如果节点不在排序后的选择集中,则也恢复默认排序方 用ANSYS的APDL方式直接获得最大应力和最大应变的节点编号及其数值的有好多... 用ANSYS的APDL方式直接获得最大应力和最大应变的节点编号及其数值的有好多种方法: 如下面的这种,先对节点的值进行SORT,在提取最大的值即可。 最大应力节点编号及其数值的提取:ALLSELNSORT,S,EQV,0,0,ALL*GET,MAX_SEQV,SORT,0,IMAX*GET,MAXSEQV,NODE,MAX_EQV,S,EQV 依次类推,可以最大应变节点编号及其值数值的提取:ALLSELNSORT,EPTO,EQV,0,0,ALL*GET,MAX_EPTOEQV,SORT,0,IMAX*GET,MAXEPTOEQV,NODE,MAX_EPTOEQV,S,EQV 最大位移节点编号及其数值的提取:ALLSELNSORT,U,SUM,0,0,ALL*GET,MAX_U,SORT,0,IMAX*GET,MAXU,NODE,MAX_U,U,SUM 还有其他方法:如把所有的节点应力应变数值提取然后找最大值 *GET,NUMALL,NODE,0,COUNT*GET,NUMSTART,NODE,0,NUM,MINSMAX=0INUSE=NUMSTART*DO,I,1,NUMALL,1*GET,SSUM,NODE,INUSE,S,EQV*IF,SMAX,GE,SSUM,THENSMAX=SMAX*ELSEIF,SMAX,LT,SSUM,THENSMAX=SSUM*ENDIFINUSE=NDNEXT(INUSE)*ENDDO 还有一种是首先在窗口上显示应力应变云图,然后利用GET命令得到最大值。 如提取最大应力为: PLNSOL,S,EQV,0*GET, PAR, PLNSOL, 0, MAX 或将所有的节点定义成一个路径,*GET, PAR, PATH, 0, MAX, 另:获取结果各个时间点的最大应力值 *DIM,MAXSEQVNODE,TABLE,63,1,1,,, !定义数组*DO,ISET1,1,63,1 !根据结果存储的数目而定,如63/POST1SET,1,,1,,,,ISET1,PLNSOL,S,EQV,0*GET,MAXSEQV_NODEI,PLNSOL,0,MAX !获取结果,这里是最大MISES等效应力*SET,MAXSEQV_NODE(ISET-1,0,1),(ISET-1)*4E-4 !确定对应的时间*SET,MAXSEQV_NODE(ISET-1,1,1),MAXSEQV_NODEI !写入最大等效应力值*ENDDO 。。。。。。。。。。。。。 沉寂着这么久,终于又看到新帖子了~~~拜读了,每次都有新收获 学习了,每次都收获很大 楼主好强大,每次都要拜读您的帖子 不错,学习了,挺有用的东西{:4_91:} 个找寻最大弹性应变的命令流nsort,epel,1 !将第1主应变排序
*get,a,sort,0,imax !找第1主应变最大的点号a
*get,a1,sort,0,max !找第1主应变最大的值a1
举一反三的出单元最大应变的命令流:
ETABLE,EPEL,EPEL,1
ESORT,ETAB,EPEL
*GET,DYH,SORT,0,IMAX
*GET,MAXZYB,SORT,0,MAX 拜读了,每次都有新收获 很好,拜读了{:4_94:} 多谢,很有收获,继续学习
页:
[1]