Amaris 发表于 2016-9-18 11:09

将Ansys计算结果输出到Tecplot的完整命令流!

自己也曾经在这个问题上折腾过很长时间。论坛上有人炫耀,但却不给出完整的命令流,让我们BS这种人!
    下面的命令流适用于六面体八节点单元的情况,其他类型单元只需稍作修改即可!命令流读取的是节点的温度。

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
/post1
file,Jobname,rst                     !指明从哪一个结果文件中读取数据

*get,NodeNum,NODE,0,COUNT                  !得到模型的所有节点数
*get,nd,NODE,0,NUM,MIN                     !得到模型的最小节点编号

*dim,nodes,array,NodeNum                     !定义一个存储节点的数组
*dim,xyz,array,NodeNum,3                     !定义一个存储节点坐标的数组
*dim,NodeTemp,array,NodeNum                  !定义一个存储节点的数组

set,4,1                                    !读入第四载荷步、第一个子步的结果

*do,i,1,NodeNum,1
    nodes(i)=nd                              !将节点编号存储在nodes数组中
    xyz(i,1)=NX(nd)                        !在xyz(i,1)中存储节点的X坐标
    xyz(i,2)=NY(nd)                        !在xyz(i,1)中存储节点的Y坐标
    xyz(i,3)=NZ(nd)                        !在xyz(i,1)中存储节点的Z坐标
    *Get,NodeTemp(i),NODE,nodes(i),TEMP
    nd=NDNEXT(nd)                            !取得下一个节点编号
*enddo

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

*get,ElementNum,ELEM,0,COUNT                  !得到模型的所有单元数
*get,el,ELEM,0,NUM,MIN                        !得到模型的最小单元编号

*dim,elems,array,ElementNum                   !定义一个存储单元的数组   
*dim,ndlst,array,ElementNum,8               !定义一个存储节点坐标的数组

*do,i,1,ElementNum,1
    elems(i)=el                               !将单元编号存储在elems数组中
    *do,j,1,8,1
      ndlst(i,j)=NELEM(el,j)                !将单元对应的节点编号存储在ndlst数组中
    *enddo
    el=ELNEXT(el)                           !取得下一个单元编号
*enddo

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
*cfopen,mesh,dat                              !输出的文件名为:mesh.dat

!写TecPlot文件的文件头
*vwrite
('TITLE=Ansys Temperature Analysis')

!写变量名
*vwrite
('VARIABLES="X","Y","Z","Temp"')

!写节点数和单元数
*vwrite,NodeNum,ElementNum
('ZONE n='f6.1,'   e='f6.1,'    f=fepoint','    et=brick')

!写节点的坐标和温度值
*vwrite,xyz(1,1),xyz(1,2),xyz(1,3),NodeTemp(1)
(4f12.6)

!写一个空行
*vwrite
(' ')

!写各单元对应的节点号
*vwrite,ndlst(1,1),ndlst(1,2),ndlst(1,3),ndlst(1,4),ndlst(1,5),ndlst(1,6),ndlst(1,7),ndlst(1,8)
(8f6.0)

!关闭文件
*CFCLOSE
finish

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    将上述命令流拷贝到记事本中,然后以文件名“Ansys2Tecplot.inp”另存到Ansys的工作路径下。在Ansys中输入如下命令即可:/input,Ansys2Tecplot,inp
    希望能对大家有帮助!
页: [1]
查看完整版本: 将Ansys计算结果输出到Tecplot的完整命令流!