Python脚本在Abaqus odb文件中批量提取节点坐标与变形量

摘要

本文介绍如何使用Python脚本二次开发来批量提取ABAQUS输出数据库(ODB)文件中指定Step下的Set节点集变形量。通过详细的步骤说明、代码示例和图片展示,您将学会如何使用该脚本,自动化输出CSV文件包含(Node Label;Step Name、Increment、Step Time,U1,U2)。

如果还需要按Increment提取每个增量下的变形后的节点坐标的话,在提取变形量的基础上,与初始坐标进行简单的计算就可以求得坐标。 (备注:该代码只提取了x,y方向的变形量)



1. 问题描述

在工程仿真和分析领域,提取ABAQUS输出数据库(ODB)文件中的节点集变形量是一项常见任务。然而,手动提取这些数据是一项繁琐且容易出错的工作。因此,需要一种自动化的方法来批量提取指定步骤下按节点集组织的变形量数据。



2. 实例展示

假设我们有一个名为`example.odb`的ODB文件,其中包含名为`Step-x`的步骤和名为`Set-x`的节点集。运行以上代码后,脚本会自动将该步骤下节点集的变形量提取出来,并保存为`NodalDisplacement.csv`文件。(图片展示的是名为`Step-4`的步骤和名为`SET-NODE`的节点集)

利用Python脚本 批量提取Abaqus的odb文件中Set节点集 初始节点坐标、指定Step下的变形量、变形后节点坐标的图1



3. 使用方法

3.1运行前注意事项

1. 在脚本中,设置待处理的ODB文件放置目录。

2. 在脚本中,设置要提取的步骤名称`step_name`和节点集名称`set_name`。

3. 在脚本中,设置一下保存的文件名称。(提取的数据将以CSV格式保存在待处理的ODB文件放置目录下)



3.2运行测试代码

打开Abaqus,输入测试代码,按部就班完成测试,方便后期查询问题。

1.识别路径下odb文件是否存在。

from odbAccess import openOdb
odb_path = r"E:\Abaqus work directory\rubber1.odb" #输入读取路径下的odb文件#
odb = openOdb(path=odb_path)
if odb is not None:
   print("odb found:", odb_path)
else:
   print("odb not found:", odb_path)


利用Python脚本 批量提取Abaqus的odb文件中Set节点集 初始节点坐标、指定Step下的变形量、变形后节点坐标的图2



2.识别odb文件中关注的Step-4分析步否存在。

from odbAccess import openOdb
odb_path = r"E:\Abaqus work directory\rubber1.odb"
odb = openOdb(path=odb_path)


if odb is not None:
    print("Found:", odb_path)
    step_name = 'Step-4'
    try:
        step = odb.steps[step_name]
        print("Step found:", step_name)
    except KeyError:
        print("Step not found:", step_name)
else:
    print("Not found:", odb_path)


利用Python脚本 批量提取Abaqus的odb文件中Set节点集 初始节点坐标、指定Step下的变形量、变形后节点坐标的图3




3.识别odb文件中关注的Set组分析步否存在。

from odbAccess import *
odb_path = r"E:\Abaqus work directory\rubber1.odb"
my_odb = openOdb(path=odb_path)


for node_set_name in my_odb.rootAssembly.nodeSets.keys():
    node_set = my_odb.rootAssembly.nodeSets[node_set_name]
    print("Node Set: {}".format(node_set_name))


利用Python脚本 批量提取Abaqus的odb文件中Set节点集 初始节点坐标、指定Step下的变形量、变形后节点坐标的图4

3.3使用脚本代码

代码中odb路径、输出文件名称、set组名称,根据实际情况自行修改。

代码为附件:1 Python脚本-odb文件变形量提取

利用Python脚本 批量提取Abaqus的odb文件中Set节点集 初始节点坐标、指定Step下的变形量、变形后节点坐标的图5

利用Python脚本 批量提取Abaqus的odb文件中Set节点集 初始节点坐标、指定Step下的变形量、变形后节点坐标的图6

提取节点变形量到此全部完成,提取的数据将以CSV格式保存在待处理的ODB文件放置目录下。如果需要提取变形后的节点坐标的话,我们还要继续进行。

3.4提取Set组中初始坐标

方法一:提取初始节点坐标可以通过Abaqus后处理查询结果,在CSDN上可以查询到,此处不再赘述。

方法二:通过Python脚本,按节点编号提取初始节点坐标。

代码为附件:2  Python脚本-初始节点提取

利用Python脚本 批量提取Abaqus的odb文件中Set节点集 初始节点坐标、指定Step下的变形量、变形后节点坐标的图7



4.数据处理

通过数据处理,将对应值求和即可求得变形后的节点坐标。以编号1号节点为例,节点初始坐标(X=19.42577,Y=2.96978),变形量(U1=0.54588,U2=0.48286),可求得编号1号节点变形后的坐标(X+U1,Y+U2),即为(19.97165,3.45264)。

验证坐标如下图所示,使用Hyperview后处理,可以看出提取节点坐标与Python脚本后处理的节点坐标一致。综上所述可以看出该脚本可满足需求。

利用Python脚本 批量提取Abaqus的odb文件中Set节点集 初始节点坐标、指定Step下的变形量、变形后节点坐标的图8

利用Python脚本 批量提取Abaqus的odb文件中Set节点集 初始节点坐标、指定Step下的变形量、变形后节点坐标的图9

利用Python脚本 批量提取Abaqus的odb文件中Set节点集 初始节点坐标、指定Step下的变形量、变形后节点坐标的图10


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

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

* 公司名称:

姓名不为空

手机不正确

公司不为空