ANSYS数据处理小技巧

    前一阵做了一个小分析,需要的结果不仅是应力的最值与分布,还要具体到“最值的位置坐标”。要怎么才能最好的做到这一点呢?我想到了3个方法:

1.使用excel帮忙——最简单、最笨的方法

这就需要得到ansys关于解答的list,这个好办,直接用list相关命令就好了。不过有个问题,默认情况下,list之后的数据有这样的格式:

      36    2.1000     0.50000E-01  0.0000        0.00    0.00    0.00
      37    2.4000     0.50000E-01  0.0000        0.00    0.00    0.00
      38    2.7000     0.50000E-01  0.0000        0.00    0.00    0.00
      39    3.0000     0.50000E-01  0.0000        0.00    0.00    0.00
      40    3.3000     0.50000E-01  0.0000        0.00    0.00    0.00

   NODE        X           Y                      Z               THXY THYZ   THZX
      41    3.6000     0.50000E-01  0.0000        0.00    0.00    0.00
      42    3.9000     0.50000E-01  0.0000        0.00    0.00    0.00
      43    4.2000     0.50000E-01  0.0000        0.00    0.00    0.00
      44    4.5000     0.50000E-01  0.0000        0.00    0.00    0.00
 

往往是隔若干行,就出现了断档,严重影响到向excel导入的过程,不过有一个命令可以解决它,那就是/page

/PAGE, ILINE, ICHAR, BLINE, BCHAR

ILINE
每屏显示的行数,最少为11行,默认为24行;
ICHAR
单行字符数,41至132,默认为80;
BLINE
每页显示行数,最少为11,默认为56;
BCHAR
每行字符数,41至240,默认为132。与ichar不同的是,此项是由系统而定的。

通过它,可以导出一个格式相当规范的数据文件,然后用excel2007打开。我曾用excel2003尝试过,的确不如2007功能强大,2007在导入的过程中可以自定义数据列,这样就避免在导入后手动修理了。

之后的事情当然好办了,譬如选择一列,然后排序好了。

2.使用sort相关命令——最常用的方法

比如节点排列命令:

NSORT, Item, Comp, ORDER, KABS, NUMB, SEL

Item、Comp
排序对象的标签与项目,如LOC,U,S,PRES等,具体内容请查看帮助;

ORDER
排序选项:
0—降序排列。
1—升序排列。

KABS
绝对值选项:
0—按真实数值排列。
1—按绝对值排列。

NUMB
指定一个数量值,排序数据数量在达到这个值以后则停止,其他数据则仍然保持未排序的状态

SEL
允许在序列里选择操作

空值—默认为不选择
SELECT—选择序列中的节点

 多了就不必说了吧~

3.自己编辑小程序,比如下面我顺手写的:

!定义数组
*GET,NMAX,NODE,0,COUNT
*DIM,OJD,,NMAX
*DIM,JDUX,,NMAX
*DIM,JD,,NMAX
*GET,NOD1,NODE,0,NUM,MIN
!对选择的节点根据节点编号大小排序
OJD(1)=NOD1
*DO,I,2,NMAX
OJD(I)=NDNEXT(OJD(I-1))
*ENDDO
!记录每个节点的x最大位移
*DO,I,1,NMAX
JDUX(I)=UX(OJD(I))
*ENDDO
!找出最大值,这里没有用排序
*DO,I,2,NMAX
*IF,JDUX(I),EQ,JDUX(I-1),THEN
  T=JDUX(I)
*ELSEIF,JDUX(I),GT,JDUX(I-1),THEN
  T=JDUX(I)
*ELSEIF,JDUX(I),LT,JDUX(I-1),THEN
  T=JDUX(I-1)
*ENDIF
*ENDDO
!主要的问题是要找出出现最值的节点编号,而且有时最值的节点不止一个
*DO,I,1,NMAX
*IF,T,EQ,JDUX(I)
JD(I)=OJD(I)
*ENDIF
*ENDDO
!显示数组,不是最大值的项目被系统赋予一个很小的值
*STATUS,JD,
 

    这里要说明一下,以上的程序只是表明了一个思路,实践过程中也没有用到(因为似乎不必要^_^),况且貌似写的比较罗唆,希望有朋友交流一下。

总结:

    方法2是最好的,尽可能多地把数据处理的任务交给ansys自己完成是我的宗旨;对英文仍然不习惯的朋友可以用用方法1,毕竟使用熟悉的excel能做的事情还有很多;至于方法3么,建议打算练练手的同学考虑,很多时候不需要这样麻烦的~

长河

在曾经的博客时代,是“首个桥隧工程领域独立博主”,目前是一名默默耕耘的普通高校教师。一家之言,仅供参考,未必成熟、绝不权威。

相关推荐

ANSYS优化分析小结

《空间钢结构APDL参数化计算与分析》是一本不错的书,虽然未来估计我不大会有接触空间钢结构分析的机会,但是此书从第 ...

3 条评论

  1. 有时使用UltraEdit也是个不错的选择。

    • @力捷-陈 是的,UE是个好东东,不过我现在用Notepad++替代它了

    • @力捷-陈 是的,UE是个好东东,不过我现在用Notepad 替代它了

发表评论

您的电子邮件地址不会被公开,必填项已用*标注。