首页/文章/ 详情

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

2年前浏览3530

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


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


1 打开ODB

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


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


2 Python脚本

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

 


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


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


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


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

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

先创建Em_1Em_2两个单元集 合

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

分别写入em1.txtem2.txt

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


3 查看读取数据

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



4 帮助文件介绍

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


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


5 怎么删除创建的Element Set?

来源:仿真社
科普Abaquspython
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2022-10-18
最近编辑:2年前
仿真社
硕士 ABAQUS/LS-DYNA探索者
获赞 214粉丝 532文章 92课程 5
点赞
收藏
未登录
1条评论
仿真秀1115205441
签名征集中
1年前
您好,有源py文件吗?
回复
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈