Python-ABAQUS二次开发

Python-ABAQUS二次开发

文章目录

  • Python-ABAQUS二次开发
  • 前言
  • 一、ABAQUS odb文件结构
  • 二、Python-ABAQUS二次开发
    • 1.引入库
    • 2.Python选择节点和单元
    • 3.Python提取结果
    • 4.对所提取结果做后处理
  • 总结


前言


在使用Python提取ABAQUS后处理odb文件中的数据时,发现关于ABAQUS中具体的应力提取方式,缺少详细的总结和说明。因此在这里对于自己曾经使用过的ABAQUA二次开发相关函数做总结,之后遇到二次开发相关的问题也会补充在这篇文章里。
值得注意的一点是,所有有关ABAQUS二次开发的方法函数总结,都可以通过在ABAQUS软件中进行对应的操作,之后查看.rpy文件学习。 个人认为这是一种最为快速便捷的方法,比在博客中查询自己想要得到的结果函数要快的多。

一、ABAQUS odb文件结构

在采用Python对ABAQUS结果提取之前,首先我们要了解ABAQUS odb文件结构,实际上,之后的python获取abaqus结果数据的方法,即为根据数据结构图依次调用其中的各个函数。
Python-ABAQUS二次开发_第1张图片

二、Python-ABAQUS二次开发

1.引入库

代码如下:

from odbAccess import*
from abaqusConstants import*
import sys
import os

实际上,提取数据的过程,应当直接使用abaqus的runscrip运行,而导入库直接使用abaqus运行时rpy文件中自动导入的库即可。

2.Python选择节点和单元

Python选择节点和单元的常用函数如下:

getByBoundingBox()
getByBoundingCylinder()
getByBoundingSphere()

通过位置选择节点:

p = mdb.models['Model-1'].parts['Part-1']
n = p.nodes
# 通过矩形框选节点,括弧里为矩形的两个坐标
nlist = n.getByBoundingBox(-100, 100, 0, 100, 100, 0)
# 创建set,Set-1即为我们所框选矩形内的节点集合
p.Set(nodes=nlist, name='Set-1')

通过位置选择单元:
与通过位置选择节点的方法类似,只需将nodes换成elements即可。
注:选中节点的单元都会被选中

p = mdb.models['Model-1'].parts['Part-1']
n = p.elements
elist = e.getByBoundingBox(-0.2, -12.6, -0.1, 0.2 ,12.6 ,0.1)

获取节点的label:
仅需在所希望获得label的节点后添加.label即可。这里以“[1]位置”节点的label获取为例。

p 

你可能感兴趣的:(python)