ansys结果数据提取Sample Text小弟,我在LS-DANY中模拟了一个波沿管道传播的过程,现在需要批量提取数据。
现在知道每个节点的节点号,能够用命令流,把数据倒出来。
ps我需要的是节点位移随时间的变化使用列表变量来提取数据。
如果需要提取的节点数据不多,可以使用 GUI 操作;如果需要提取的节点数据2楼: Originally posted by htbbzzg at 2013-05-08 18:08:41如果你是使用的 ANSYS/Ls-Dyna,可以在时间历程后处理中通过定义变量,然后使用列表变量来提取数据。
如果需要提取的节点数据不多,可以使用 GUI 操作;如果需要提取的节点数据很多,可以通过 APDL 编程来实现。
编程1 选择所有要提取结果的节点,假设共 NN 个节点;2 确定要提取结果的时间点,假设共 NT 个时间点;3 定义一个 NT*NN 的数组,用以存放一种结果的数据;4 对第一种要提取的结果类型提取结果如下:对节点进行循环:使用 *get 命令提取该节点的结果数据,并写入数组中适当的位置(具体请见帮助文件中关于 *get 命令的说明);对所有需要的节点提取结果数据完成后,将该数组中的结果数据写到硬盘上 (*vwrite 命令)5 然后,对下一种结果类型重复上述操作,直到提取了所有需要的结果类4楼: Originally posted by htbbzzg at 2013-05-09 08:45:29没法详细讲解,给你一个大致的流程吧:1 选择所有要提取结果的节点,假设共 NN 个节点;2 确定要提取结果的时间点,假设共 NT 个时间点;3 定义一个 NT*NN 的数组,用以存放一种结果的数据;.../post1file,5,rst*dim,nodes,array,3*dim,times,array,1252*dim,result,array,3set,1,1nodes(1)=nsel(15467)nodes(2)=nsel(15679)nodes(3)=nsel(14097)*do,i,1,3,1*get,result(i),NODE,nodes(i),U,Z*enddo*cfopen,result_1,txt*vwrite,nodes(1),result(1)(2f12.10)*CFCLOSE这是我写的程序,但是好像不能正确提取,你能不能帮我修正一下,谢谢啦问题自己改一下:/post1file,5,rst ! 此处的 5 应该是你的 jobname*dim,nodes,array,3 ! 用于存放要获取结果的节点编号*dim,times,array,1252 ! 用于存放要获取结果的时间点,此前在求解时必须存储了这 1252 个时间点的结果*dim,result,array,3,1252 ! 用于存放三个节点,所有时间点的结果nodes(1)=15467, 15679, 14097 ! 把节点号放入数组 nodes 中*do, i, 1, 1252times(i) = i*0.001 ! 时间点值set, , , , , , , i, ! 读取第 i 个结果组*do,j,1,3,1*get,result(j,i),NODE,nodes(i),U,Z*enddo*enddo*cfopen,result_1,txt*vwrite, 'Time NO', nodes(1), nodes(2), nodes(3) ! 写节点编号 (1x,a7,3f14.10) ! 原来的 ANSYS 中没有 I 格式,新版中不知有没有,如有,可将 f 格式改为 I 格式*do, i, 1, 1252*vwrite, times(i), result(1,i), result(2,i), result(3,i)(f10.3,3f14.10)*enddoviewer上有个软盘的小图标可以直接保存成.csv文件),然后查看代码,稍作6楼: Originally posted by htbbzzg at 2013-05-09 16:31:19不知道你的具体要求和求解时的设置,试着改一下,未必正确,做个参考吧,有问题自己改一下:/post1file,5,rst ! 此处的 5 应该是你的 jobname*dim,nodes,array,3 ! 用于存放要 ...可以参考一下:fini/clear/filname, nodes_resultWPSTYLE,,,,,,,,0/PREP7!*ET,1,SOLID185!*!*MPTEMP,,,,,,,,MPTEMP,1,0MPDATA,EX,1,,201000MPDATA,PRXY,1,,0.3TB,BISO,1,1,2,TBTEMP,0TBDATA,,200,1000,,,,BLC4, , ,10,20,200!*!*LESIZE,ALL,5, , , ,1, , ,1,!*MSHAPE,0,3dMSHKEY,1VMESH,1MSHKEY,0!*/USER, 1/VIEW, 1, -0.877924121212 , 0.360600465132 , 0.314986574223 /ANG, 1, 1.86454986921/auto,1EPLO!*FINISH/SOL!*ANTYPE,0NSUBST,20,1000,2OUTRES,ERASEOUTRES,ALL,ALLAUTOTS,1NCNV,2,0,0,0,0TIME,1FLST,2,1,5,ORDE,1FITEM,2,1DA,P51X,ALL, ! 端面 1 固支!*FLST,2,1,5,ORDE,1 ! 上表面受压力 5FITEM,2,4SFA,P51X,1,PRES,5!*SAVESOLVEFINISH!*/POST1! SET,LIST ! 点击 results Summary,对结果组列表SET,LAST ! 读取最好一组结果/EFACET,1PLNSOL, S,EQV, 0,1.0 ! 绘制 Mises 应力云图/auto,1!*! 以下读取 3 个节点的 Uz,写到文件 result_1.txt 中! file,5,rst ! 此处的 5 应该是你的 jobname,我这里不需要*GET,N_set, ACTIVE, 0, set, nset ! 获取 rst 文件中的结果组数*dim,nodes,array,3 ! 用于存放要获取结果的节点编号*dim,times,array,N_set ! 用于存放要获取结果的时间点,此前在求解时已经存储了这 20 个时间点的结果*dim,result,array,3,N_set ! 用于存放三个节点,所有时间点的结果nodes(1)= 23, 24, 18 ! 把节点号放入数组 nodes 中*do, i, 1, N_setset, , , , , , , i ! 读取第 i 组结果 *get, tt, ACTIVE, 0, set, time ! 获取第 i 组结果对应的时间点值times(i) = tt ! 时间点值写入数组times*do,j,1,3,1*get,result(j,i),NODE,nodes(j),U,Z ! 读取三个节点的 Uz*enddo*enddo*cfopen,result_1,txt*vwrite ! 写一个空行(' ')*vwrite, nodes(1), nodes(2), nodes(3) ! 写节点编号(' Time NOde ',f9.0,2f15.0) ! 原来的 ANSYS 中没有 I 格式,新版中不知有没有,如有,可将 f 格式改为 I 格式*do, i, 1, N_set*vwrite, times(i), result(1,i), result(2,i), result(3,i)(f8.5,8x,3f15.10)*enddo*CFCLOSE结果文件 result_1.txt 中的内容如下:Time NOde 23. 24. 18.0.05000 0.024******* 0.024******* -0.024*******0.10000 0.0493580675 0.0493582860 -0.04921120490.17500 0.0870543244 0.0870547068 -0.08679031710.28750 1.7665276298 1.7665282581 -1.75898167050.37938 6.3069894022 6.3069902312 -6.28108000560.47126 12.2342177126 12.2342187424 -12.18445106630.57622 19.9616405076 19.9616417666 -19.88104171430.68152 28.3383485713 28.3383500605 -28.22409125190.78704 37.1397449598 37.1397466797 -36.98955840980.89273 46.2492075161 46.2492094675 -46.06229282580.98590 54.4522966846 54.4522988395 -54.23201014271.00000 55.7025435965 55.7025457823 -55.4769240946你可以根据你的需要进行修改。
另外,注意一点,包含 *vwrite 的那一部分命令流,必须写到一个文件中,然10楼: Originally posted by htbbzzg at 2013-05-11 11:45:59我做了一个小例子:一根悬臂梁的弹塑性分析。
以下是相应的命令流和结果,你可以参考一下:fini/clear/filname, nodes_resultWPSTYLE,,,,,,,,0/PREP7!*ET,1,SOLID185!*!*MPTEMP ...10楼: Originally posted by htbbzzg at 2013-05-11 11:45:59我做了一个小例子:一根悬臂梁的弹塑性分析。
以下是相应的命令流和结果,你可以参考一下:fini/clear/filname, nodes_resultWPSTYLE,,,,,,,,0/PREP7!*ET,1,SOLID185!*!*MPTEMP ...我按照这个来,怎么还是有点这个问题,你帮我看看如果是在分析过程中出现问题的,估计是你的 ANSYS 版本设置中没有 Ls-Dyna 选项;13楼: Originally posted by htbbzzg at 2013-05-12 08:28:43你是使用 ANSYS/Ls-Dyna 进行分析吗?如果是在分析过程中出现问题的,估计是你的 ANSYS 版本设置中没有 Ls-Dyna选项;如果不是,那么需要了解你的整个问题才有可能帮你分析。