首页/文章/ 详情

使用Python脚本在ODB中创建单元集合并读取应力值写入文本文件

精品
作者优秀平台推荐
详细信息
文章亮点
作者优秀
从业经验5+年/博士学历/特邀专家/独家讲师
平台推荐
主编推荐
2年前浏览2522

在对Abaqus分析结果使用Python脚本进行后处理时,如果有合适的单元集 合(或节点集 合,下文同,略),可以使用getSubset()方法读取单元集 合所包含的单元的输出变量,精准取值,减少后处理数据规模。


如果在前处理时,忘记创建单元集 合,在后处理时怎么办呢?


1 打开ODB

下面介绍使用Python脚本在ODB中创建Element Set,如下图所示的Em_1、Em_2,然后读取这两个单元集 合中单元的应力值,并写入文件。

image.png


因为要在ODB中新建增加单元集 合,所以使用Abaqus打开ODB时不要勾选Read-only,如下图所示。


image.png

2 Python脚本

下图为使用单元编号在ODB中创建单元集 合的方法crtElemSetFromLabel()。返回的对象setEm可以作为region使用。

 image.png

下图为使用单元索引(序号)在ODB中创建单元集 合的方法crtElemSetFromIndex()。返回的对象setEm可以作为region使用。

image.png


下图为使用getSubset()方法,读取单元集 合中单元的应力值。单元单元应力数据保存在列表stress_vals中,每个单元的一组应力值构建一个字典对象em_val。

image.png

下图为将单元应力数据写入文本文件。

image.png

上面4个方法,前两个用于创建Element Set,第3个方法读取Element Set对应的应力值,第4个方法将数据写入文件。

下面就用上面4个方法,创建Element Set、读取单元应力、写入文件,如下图所示:

先创建Em_1、Em_2两个单元集 合;

读取两个集 合单元的应力;

分别写入em1.txt、em2.txt。

image.png


以上所有代码为一个py文件,打开ODB后,运行该脚本文件。(路径、名称等可适当修改)


3 查看读取数据

两个文本文件的数据如下图所示,在PyCharm中查看,数据还是比较整齐的。用记事本打开文件查看会发现每列数据可能会歪歪扭扭,字符显示问题,不必纠结。


image.pngimage.png



4 帮助文件介绍

下图中ElementSet()方法Path的介绍不是很全面。本文用的rootAssembly.ElementSet()。注意elements的参数形式。

image.png

下图中ElementSetFromElementLabels()Path介绍较全面,注意elementLabels的参数形式。

image.png


5 怎么删除创建的Element Set?


科普Abaquspython
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2022-06-14
最近编辑:2年前
KongXH
博士 专注于有限元分析领域,联合创作...
获赞 49粉丝 100文章 59课程 1
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈