当前位置:服务支持 >  技术文档 >  Python脚本提取Abaqus ODB文件中的指定节点数据

Python脚本提取Abaqus ODB文件中的指定节点数据

阅读数 109
点赞 94
article_banner

背景

python提取Abaqus后处理节点集合数据并生成文本文件 - 哔哩哔哩 (bilibili.com)中我们详细讲了如何运用python 脚本提取在CAE界面已经定义好了集合结果数据。

但是,存在这样一个问题,就是每次我们创建CAE模型时还得定义集合,多了这一步操作,而且,假如小伙伴们已经算了很多的ODB结果文件了,但是没有定义集合,那岂不是凉凉?

本次专栏旨在解决在CAE界面没有定义节点集合的问题。

即如果已知我知道想要提取的节点编号,可以在后处理中通过python代码定义相关集合并提取数据。这是非常实用的,比如你计算了非常多的工况,有很多ODB文件,而这些工况中仅仅只改变了荷载大小,但是网格、节点编号没有丝毫改变,那么我们就可以先在一个ODB文件中找到我们想要知道的节点编号,然后编写脚本,就可以提取所有的ODB文件的信息了。

案例

还是熟悉的二维平面问题,CAE文件同 python提取Abaqus后处理节点集合数据并生成文本文件 - 哔哩哔哩 (bilibili.com),我们要在后处理中提取节点编号为56、57、58、59的位移数据。

代码

以下是全部代码,大家注意用的时候将对应的路径及其他信息修改为自己的路径,哪里需要更改我已经在对应代码的后方进行了标注。

from odbAccess import openOdb
from textRepr import *

# 获取odb对象
my_odb = openOdb(r"D:\SIMULIA2020\script_learning\case3\ODBandOtherRealtingFiles\Job-1.odb") #改为你自己ODB文件所在地址
# 获取指定分析步
step = my_odb.steps['Step-1'] #改为你所要提取分析步
# 选取最后一帧
frame = step.frames[-1] #改为你所要提取的帧
# 获取全局位移场变量
dis_field = frame.fieldOutputs['U'] #改为你所想要提取的变量

# *****************************************************
# 指定想要获取的节点编号
node_Labels = (55,56,57,58) #改为你想提取的节点编号
# 在PART-1-1中定义名称为set_for_datas的集合,包含node_Labels节点编号,并将其赋予给变量node_set
node_set = my_odb.rootAssembly.instances['PART-1-1'].NodeSetFromNodeLabels(name='set_for_datas',nodeLabels=node_Labels)
# 在前述全局位移场变量的基础上提取局部位移场
local_dis_values = dis_field.getSubset(region=node_set)
# *****************************************************
# 生成txt文件,并将提取的结果写入
with open('data.txt','w') as f:  #可修改路径为绝对路径
	f.write("NodeLabel, NodeDis\n")
	for node_value in local_dis_values.values:
		txt_line = "{}, {}\n".format(node_value.nodeLabel, node_value.magnitude)
		f.write(txt_line)

使用方法

1.打开用Abaqus打开ODB文件;

2.复制上述代码,在命令行粘贴上述代码并回车,命令行位置如下图所示。 

3. 回车运行。

4.运行完毕后在Abaqus工作目录下(或代码中指定的绝对路径下)即可看到新生成的data.txt文件,打开如下图所示。

处理结果

大家觉得有用的话请投币吧

相关文章
QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空