加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

ANSYS结果用APDL输出问题

(2018-02-01 22:05:28)
标签:

apdl结果输出

分类: 问答环节


 微信号:CAE技术分享

有同学在ANSYS结果自动导出遇到问题,对此稍作说明。

 ANSYS结果用APDL输出问题


 

一个简单的模型求解,结果显示如下图,下图为第一主应力结果,想要输出3号线上每一步节点的最大主应力,3号线是最上面的一条线,求解单元为183,属于二次单元,有中间节点。

求解过程一共有三步,仅针对其中一步以说明,其他一样,加个循环即可。

 

!选择3号线上的所有节点

alls,all

lsel,r,,,3

nsll

 

 

!获取3号线的节点总数,node_num

*get,node_num,node,0,count

 

!获取目前节点集中最小节点号,node_min

*get,node_min,node,,num,min

 

!定义一维数组,维度为节点数目node_num

*dim,A,,node_num

!将最小节点号赋值给一个临时变量

temp_node=node_min

!数组的第一个数为最小节点号

A(1)=temp_node

 

!循环,利用ndnext函数,逐步获取节点号,存储

*do,i,2,node_num

temp_node=ndnext(temp_node)

A(i)=temp_node

*enddo

 

!此时数组A存储了该节点集的所有节点号

!后续只需循环遍历该数组即可得到每个节点号

 

!!!!!!获取最大第一主应力的值

 

!定义一个用于比较的初值temp_max

!同时还定义s1_max初值为0,目的是为了避免获取二次单元中间应力值时出现问题,因为二次单元的中间节点是没有应力值的,只有位移值。

temp_max = 0

s1_max = 0

 

!循环遍历,获取数组A的每一个节点号,继而通过*get获取该节点的S1应力值

*do,i,1,node_num,1

node_num = A(i)

*get,s1_max,node,node_num,s,1

s1_max = abs(s1_max)

 

*if,s1_max,gt,temp_max,then

temp_max = s1_max

*endif

 

*enddo

 

最终,s1_max保存的便是3号线上节点中最大第一主应力值。

 

在此基础上,还可以获取对应的节点号,以及利用*cfopen*vwrite函数将结果写入文件,不作展示。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有