Ansys输出结点坐标-位移-单元信息到txt文件

 结点坐标 

! ========== Creat Date: 2021-03-13 ==========
! ========== Author: xdd1997        ==========
! ========== Email: xdd2026@qq.com  ==========
! 输出结点坐标
/post1
allsel
csys,0
*get,nodeNumAll,node,0,count     ! 获取总结点数目
*get,nd,node,0,num,min           ! 获取结点最小编号
*dim,nodeInfo1,array,nodeNumAll,4 ! 定义数组,nodeNumAll行5列
*do,i,1,nodeNumAll,1             ! 遍历nodeNumAll次,每次i=i+1
    nodeInfo1(i,1)=nd
    nodeInfo1(i,2)=nx(nd)
    nodeInfo1(i,3)=ny(nd)
    nodeInfo1(i,4)=nz(nd)
    nd=ndnext(nd)                ! 取得当前选择集中大于nd的下一个节点编号
*enddo

*create,dw62,mac       ! 创建宏文件
*cfopen,node_Info_coord,txt
*vwrite,nodeInfo1(1,2),nodeInfo1(1,3),nodeInfo1(1,4)      !写出信息到文件
(4F25.10)
*cfclose
*end                   !结束宏文件的创建
dw62                   !运行宏文件

 结点位移 

! ========== Creat Date: 2021-03-13 ==========
! ========== Author: xdd1997        ==========
! ========== Email: xdd2026@qq.com  ==========


/post1
allsel
*get,nodeNumAll,node,0,count     ! 获取总结点数目
*get,nd,node,0,num,min           ! 获取结点最小编号
*dim,nodeInfo2,array,nodeNumAll,5 ! 定义数组,nodeNumAll行5列
*do,i,1,nodeNumAll,1             ! 遍历nodeNumAll次,每次i=i+1
    nodeInfo2(i,1)=nd
    nodeInfo2(i,2)=ux(nd)
    nodeInfo2(i,3)=uy(nd)
    nodeInfo2(i,4)=uz(nd)
    *get,nodesum,node,nd,u,sum   ! 提取节点的和位移
    nodeInfo2(i,5)=nodesum  
    nd=ndnext(nd)                ! 取得当前选择集中大于nd的下一个节点编号
*enddo

*create,dw62,mac       ! 创建宏文件
*cfopen,node_displacement,txt
*vwrite,nodeInfo2(1,2),nodeInfo2(1,3),nodeInfo2(1,4),nodeInfo2(1,5)      !写出信息到文件
(4F25.10)
*cfclose
*end                   !结束宏文件的创建
dw62                   !运行宏文件
 

 单元信息

! 输出单元信息 solid45:8个结点
/post1
allsel
*get,elemNumAll,elem,0,count     ! 获取总结点数目
*get,ed,elem,0,num,min           ! 获取结点最小编号
*dim,elemInfo,array,elemNumAll,9 ! 定义数组,nodeNumAll行5列
*do,i,1,elemNumAll,1             ! 遍历nodeNumAll次,每次i=i+1
    elemInfo(i,1)=ed
    *get,node1,elem,ed,node,1          !获取单元的8个结点
    *get,node2,elem,ed,node,2
    *get,node3,elem,ed,node,3
    *get,node4,elem,ed,node,4
    *get,node5,elem,ed,node,5         
    *get,node6,elem,ed,node,6
    *get,node7,elem,ed,node,7
    *get,node8,elem,ed,node,8
    elemInfo(i,2)=node1
    elemInfo(i,3)=node2
    elemInfo(i,4)=node3
    elemInfo(i,5)=node4 
    elemInfo(i,6)=node5
    elemInfo(i,7)=node6
    elemInfo(i,8)=node7
    elemInfo(i,9)=node8
    ed=ndnext(ed)                ! 取得当前选择集中大于ed的下一个单元编号
*enddo

*create,dw63,mac       ! 创建宏文件
*cfopen,elem_info,txt  ! 打开文件
*vwrite,elemInfo(1,2),elemInfo(1,3),elemInfo(1,4),elemInfo(1,5),elemInfo(1,6),elemInfo(1,7),elemInfo(1,8),elemInfo(1,9)       !写出信息到文件
%10I %10I %10I %10I %10I %10I %10I %10I
!上面一行可以没有空格,但是不能写5%10I,也不能写注释
*cfclose               ! 关闭文件
*end                   ! 结束宏文件的创建
dw63                   ! 运行宏文件

转载仅为学习,不会商用。
欢迎转载原创,附文链接。
原文地址:https://www.cnblogs.com/xdd1997/p/14530016.html