Python提取Abaqus后处理节点集合数据

问题描述

二维平面问题,底部全约束,上部位移荷载,先前定义了SET_FOR_DATA集合,现在要提取该集合的位移数据并生成txt文件。

问题背景

python代码

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

from odbAccess import openOdb
from textRepr import *

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

# *****************************************************
# 获取局部场变量
# 在前处理时已经定义好的节点集合
# 该节点集合所属部件为'PART-1-1', 名称为'SET-FOR-DATA'

# 将已经定义好的集合在odb模块中找到,并赋予给变量NodeSet
NodeSet = my_odb.rootAssembly.instances['PART-1-1'].nodeSets['SET-FOR-DATA'] #改为你自己的部件及先前对应的集合
# 在前述全局位移场变量的基础上提取局部位移场
local_dis_values = dis_field.getSubset(region=NodeSet)
# *****************************************************

# 创建新的csv文件用于保存所需数据
# 编历指定集合内各节点信息并格式化输出
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. 找结果。在Abaqus工作目录下即可看到新生成的data.txt文件,打开如下图所示。

提取结果

上述源文件及资源

我上传的文件信息如下图所示,第一个文件夹中包含有ODB文件,第二个文件就是代码文件,版本为2020。

资源链接:

链接:https://pan.baidu.com/s/1nwDNLCIEaGyPXv5n_2Mf8Q 

提取码:yyds 

资源文件

学习参考

  1. https://zhuanlan.zhihu.com/p/138858045
  2. https://zhuanlan.zhihu.com/p/347266690
  3. https://blog.csdn.net/qq_35237020/article/details/93847395

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

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

* 公司名称:

姓名不为空

手机不正确

公司不为空