当前位置:文档之家› Python在ABAQUS二次开发中的应用实例2..

Python在ABAQUS二次开发中的应用实例2..

timePeriod=1)
myPillarLoad = myModel.ConcentratedForce(name='pillarForce', createStepName='impact',region=(pillarVertices,), cf1=12.50E4)
# 在选择的顶点上施加 集中力

ABAQUS脚本接口

ABAQUS有限元分析软件二次开发环境提供的脚本接口,是基于Python语言进行的定
制开发。

在 ABAQUS/CAE 中 进 行 建 模 和 进 行后处理时,对话框中做的所有设 置 都 由 ABAQUS/CAE 从 内 部 发 出 与之对应的命令(command)。 ABAQUS 脚本接口直接与内核进行 通 信 ( communicate ) , 而 与 ABAQUS/CAE 的 图 形 用 户 界 面 ( GUI )无关。如果将所有的脚本 接口命令存储于文件中,该文件则
Python在ABAQUS二次开发中 的应用实例
主要内容
• 一、ABAQUS 脚本概述 • 二、Python 语言简介 • 三、ABAQUS脚本编写
一、ABAQUS 脚本概述
ABAQUS 脚本概述

ABAQUS软件简介

ABAQUS 是国际著名的 CAE 软件,它以解决实际工业问题能力和强大 的非线性功能赢得广泛声誉。航空工业是 ABAQUS 最重要的应用领域 之一,波音、空中客车、洛克希德•马丁等是其长期合作的用户。 ABAQUS 分析过程由三个步骤

编辑Python文件、调试Python脚本或插件; 创建guiLog脚本,录制所有的GUI动作;
通过GUI(guiLog)运行Python脚本或在ABAQUS/CAE之外运行Python脚本;
设置延迟(delay)和断点(breakpoint),并查看代码的执行情况; 在watch窗口中查看变量值等。
# 创建一个草图,并绘制两个矩形
# 对上面创建的两个矩形进行拉伸操作, 生成三维部件

通过以上语句,在Part模块中生成两个三维实体。
ABAQUS脚本编写

装配实体、导入边界条件
myAssembly = myModel.rootAssembly doorInstance = myAssembly.Instance(name='Door-1',part=door, dependent=OFF) #导入实体,完成装配

定义变量名、函数名的时候,避免使用保留字段。如: 保留字段 and \ not \ or break continue class 说明 逻辑‚与‛‚非‛‚或‛ 中止循环语句 继续执行下一次循环 定义类
def if \ else \ elif
print while from \ import return
ABAQUS 脚本概述

创建ABAQUS脚本

创建脚本有3种常用方法: ①在GUI建模时录制宏(macro)

File → Macro Manager 可以按需录制任何操作对应的命令

②直接编辑abaqus.rpy文件

建模时工作目录下自动生成abaqus.rpy文件 使用软件EditPlus可以直接打开编辑 保存.cae文件并退出后才能生成.rpy文件
from caeModules import *

如果需要用到各种符号常数,如单元类型C3D8R,还要导入符号常数模块:
from abaqusConstants import *

定义和导入对象

还需要导入相应的ABAQUS对象,包括

Session对象(包括视口、远程队列、视图对象) Mdb对象(包括Model对象和Job对象) Odb对象
for i in range(0,b3): if (iAnglelowfg[i]=='/'): for l in range(0,i-j-1): c3[k]=c3[k]+iAnglelowfg[j+l+1] j=i elif (iAnglelowfg[i]==']'):

Python 语言简介

保留字段
定义函数或者方法 条件判断语句
输出语句 循环语句 导入模块 返回函数计算结果
Python 语言简介

数据类型

数据类型主要有数字类型、字符串类型;
数字类型主要有四种:整型int、长整型long、浮点型float、复数型complex; Python语言可自动判断数据类型,不需要编写者定义说明类型,如:i=10.5,即可。 不需要用:float
pillarVertices = doorInstance.vertices.findAt(((-40,30,0),), ((40,0,0),) )
# 选择两个顶点 # 创建静力分析步 (static)
myModel.StaticStep(name='impact',previous='Initial', initialInc=1,

优点:界面直观,简单易懂; 缺点:操作步骤繁琐,不利于修改,缺乏通用性。
提交; 缺点:只包含模型节点信息,代码较多,修改不便;

③使用Python语言建模

优点:代码少,语言友好,可移 植性好,可进行参数化修改; 缺点:不够直观。

ABAQUS 脚本概述
二、Python 语言简介
Python 语言简介

基本规则

代码按级别从大到小解读,之间用操作符‚.‛连接。如:
mdb.models[‘Model-1’].materials[‘BPCOMPOSITE’].Depvar(n=5)
表示将模型‘model-1’的材料‘BPCOMPOSITE’里的子程序相关参数设为5。

加、减运算
乘、除、取余数运算 指数运算
不支持自加或自减运算,如:i++、i--; 但类似
i+=1
这样的语句是可以的。
三、ABAQUS脚本编写
ABAQUS脚本编写

定义和导入模块

在每个脚本文件的最开始处,首先要导入相应的ABAQUS模块;
每个步骤均有对应的模块,如part模块,material模块、assembly模块等,通 过以下语句可以直接导入cae模块的所有对象:

③借助PythonReader.exe软件

中国石油大学焦中良开发 可以实时获取CAE每步操作对应的脚本命令
ABAQUS 脚本概述

调试ABAQUS脚本

调试脚本有多种方法,这里介绍Abaqus自带的PDE中的调试。 PDE(Python Development Environment,Python开发环境)有以下功能:

组成:

前处理( ABAQUS/CAE ); 模拟计算(ABAQUS/Standard 或者ABAQUS/Explicit);

后处理( ABAQUS/CAE )。

建模过程主要集中在前处理步 骤中。
ABAQUS 脚本概述

ABAQUS建模方法
常用的ABAQUS建模方法主要有三种:

①在ABAQUS/CAE界面建模
GUI
命令行接口 (CLI)
命令
脚本

Python 解释器
rpy文件
ABAQUS/CAE
inp文件
ABAQUS/Standard ABAQUS/Explicit
称为脚本(script)。脚本由一系列
纯ASCII格式的Python语句组成,扩 展名一般为.py。
odb文件
ABAQUS 脚本概述

ABAQUS脚本接口
Python 语言简介

运算符

主要有赋值运算符、算术运算符、逻辑运算符、关系运算符; 下表按优先级排列,从上往下优先级增加。
运算符 or and not <, <=, > , >= , != ,== 描述 逻辑或 逻辑与 逻辑非 小于,小于等于,大于,大于等于,不等于,等于
+, *, /, % **

语句前加上 # 号,表示是注释内容,这个语句将不被执行; 使用中文注释,要在文件最开始加上:# -*- coding: UTF-8-*以换行来识别一个逻辑语句的结束。如果需要在一个物理行中编写多个逻辑语 句,需要用分号分开。如:x=1;y=2;z=3。如果一个逻辑语句太长需要分行写, 需要用反斜杠‚\‛进行连接(有括号括起来的内容就不用)。 不同代码块之间要注意用冒号和缩进来区分代码块之间的层次关系,如:

通过类似如下的语句导入对象:
from abaqus import *
ABAQUS脚本编写

创建新实体
myModel = mdb.models['Model-1'] myViewport=session.Viewport(name='Region syntax', origin=(20, 20), width=200, height=100) mySketch = myModel.Sketch(name='Sketch A', sheetSize=200.0) mySketch.rectangle(point1=(-40.0, 30.0),point2=(-10.0, 0.0)) mySketch.rectangle(point1=(10.0, 30.0),point2=(40.0, 0.0)) door = myModel.Part(name='Door',dimensionality =THREE_D, type=DEFORMABLE_BODY) door.BaseSolidExtrude(sketch=mySketch, depth=20.0) #建立新模型Model-1 # 创建新的视口
相关主题