abaqus生成odb文件_利用Python提取ABAQUS的计算结果(ODB)

这篇博客介绍了如何使用Python脚本从ABAQUS的ODB文件中提取金属长方体模型的位移、体积和应变数据。首先,导入所需的Python库,如matplotlib、numpy等,并通过用户交互获取模型和ODB文件信息。接着,计算模型的初始边长,然后利用openOdb接口读取ODB文件,提取节点位移数据,并保存到Excel文件中。博客还展示了验证结果的过程,包括绘制位移随时间变化的曲线,与ABAQUS GUI操作结果进行比较,确保数据一致性。
摘要由CSDN通过智能技术生成

一个金属长方体,我们需要对其做拉伸的加载约束示意图如图1,并在完成后采用Python命令流读取参考点的位移、体积、应变随加载时间的变化情况。

0770b1fbec763f6d251fa53b9f14d709.png

图1 金属长方体约束加载示意图

01

Python库导入声明

对于图上的命令流,我们分为几部分拆开研究,首先是下面第一部分需要在Abaqus导入相关Python库的代码,比如matplotlib库、numpy库、xlwt库和math库。

#! /user/bin/python
# -*- coding:UTF-8 -*-
import matplotlib.pyplot as plt
import numpy as np
from visualization import *
from odbAccess import *
import xlwt
import math
  • 第3行导入Python经常用于绘图的matplotlib库;
  • 第4行导入Python处理数组矩阵的numpy库;
  • 第5行和第6行用于导入Abaqus的后处理功能,即visualization和odbAccess;
  • 第7行用于导入Python与excel进行交互的xlwt库;
  • 第8行用于导入Python的math库。

在利用Python生成excel数据之前,先采用一个getInputs函数(代码如下)生成图2所示的对话框与用户进行交互,需要用户在在其中输入模型的名字(model name),部件例子的名字(instance name)以及后处理odb的名字(odbname)。这样做有个好处,每次都可以根据不同模型、不同部件实例和相应的后处理odb名字进行相应结果提取。

modelName,instanceName,odbname= getInputs( 
 fields=(('Model Name:', 'Test'),('Instance Name:', 'Part-2-1'),('odbname:', 'TEST.odb')), 
  label='Enter information',  dialogTitle='Enter information.')

7c49f8989c8c9c50f2acece3a350b66d.png

图2 getInputs函数生成的对话框

02

计算初始边长

node = mdb.models[modelName].rootAssembly.instances[instanceName].nodes

Xmin = 9999

Xmax = -9999

Ymin = 9999

Ymax = -9999

Zmin = 9999

Zmax = -9999

for i in range(len(node)):

x = node[i].coordinates[0]

y = node[i].coordinates[1]

z = node[i].coordinates[2]

if Xmin > x:

Xmin = x

elif Xmax <

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值