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

合集下载

abaqus python二次开发入门案例

abaqus python二次开发入门案例

Abaqus是一款强大的工程仿真软件,而Python则是一种高效、易学的编程语言。

通过Python 对Abaqus进行二次开发,可以大大提高仿真效率。

以下是Abaqus Python二次开发入门案例的步骤:
安装Abaqus和Python
首先需要安装Abaqus和Python。

Abaqus可以从官网下载安装包,而Python则可以从官网下载安装。

了解Abaqus Python API
在Abaqus中,Python API是用来编写脚本和插件的工具。

通过Python API,可以实现对Abaqus 的二次开发。

需要了解Abaqus Python API的基本知识,包括模块、工具、数据对象等等。

编写Python脚本
根据需求,编写Python脚本来实现特定的功能。

例如,可以编写一个脚本,用来自动生成模型、执行仿真、结果后处理等等。

在编写脚本的过程中,需要使用Abaqus Python API提供的函数和方法。

运行Python脚本
将编写的Python脚本保存,并在Abaqus中运行。

在运行脚本之前,需要确保Abaqus已经启动,并且已经连接到了Python解释器。

调试和优化
在运行脚本的过程中,可能会遇到各种问题,需要进行调试和优化。

需要对Python脚本进行逐步调试,找到问题所在,并且优化代码,提高仿真效率。

以上是Abaqus Python二次开发入门案例的基本步骤。

在开发过程中,需要不断学习和积累经验,才能够更好地利用Python API实现对Abaqus的二次开发。

ABAQUS二次开发教程

ABAQUS二次开发教程

ABAQUS(Python语言)二次开发人生苦短,我用Python作者:Fan ShengbaoPython2.72017年12月目录第一章Python程序基本语法 (1)1.1Python语法结构 (1)1.2Python元组 (1)1.3Python列表 (1)1.4Python字典 (2)1.5Python集合 (3)1.6Python字符串 (3)1.7Python分支语句 (4)1.8Python循环语句 (5)1.8.1for循环 (5)1.8.2while循环 (5)1.9Python定义函数 (5)1.10Python模块 (6)1.11Python包 (7)1.12Python文件和目录 (7)1.12.1目录操作 (7)1.12.2文件操作 (7)1.13Python异常处理 (8)第二章ABAQUS/Python二次开发 (9)2.1ABAQUS执行Python程序 (9)2.2编写ABAQUS/Python程序 (10)2.3ABAQUS录制Python程序 (10)2.4ABAQUS/Python对象介绍 (11)2.4.1 session对象 (11)2.4.2 mdb对象 (11)2.4.3 odb对象 (13)2.5ABAQUS完整二次开发示例 (14)2.6ABAQUS二次开发常用函数 (16)2.6.1 Part模块常用函数 (16)第一章Python程序基本语法1.1Python语法结构Python语言以缩进来约束每个程序块,编写程序时要特别注意每一行的缩进量,同一层次的语句应具有相同的缩进量。

下面是一段Python程序示例:#-*- coding:utf-8 -*-for i in range(1,10):for j in range(1,i+1):print str(j)+'x'+str(i)+' = '+str(i*j),print该段程序主要功能是实现乘法口诀表输出打印,其中“#-*- coding:utf-8 -*-”是约定文档的编码方式。

ABAQUS二次开发-Python脚本运行方式

ABAQUS二次开发-Python脚本运行方式

ABAQUS二次开发—Python编程语言
1.1 ABAQUS软件界面下运行Python脚本 方式2:
点击“File”=>“Run Script…”弹出选择Python脚本文件,点击“OK”后直接运行
ABAQUS二次开发—Python编程语言
1.1 ABAQUS软件界面下运行Python脚本 方式3:
方式2:启动ABAQUS/Viewer界面的同时运行Python脚本 abaqus viewer script=D:\myPython.py abaqus viewer startup=D:\myPython.py
注:方式2中的Python脚本只能进行后处理过程,否则一 个错误将发生
ABAQUS二次开发—Python编程语言
点击“File”=>“Macro Manager…”弹出选择Python宏文件,点击“Run”后运行
ABAQUS二次开ห้องสมุดไป่ตู้—Python编程语言
1.1 ABAQUS软件界面下运行Python脚本
方式4:
2
1
4
3
1 打开Python脚本文件 2 选择要执行的脚本 3 选择执行脚本的方式 4 运行脚本文件
1.2 以命令行形式运行ABAQUS/Python脚本
方式3:不启动ABAQUS/CAE 界面的同时运行Python脚本 abaqus cae noGUI=D:\myPython.py
方式4:不启动ABAQUS/Viewer界面的同时运行Python脚本 abaqus viewer noGUI=D:\myPython.py
注:ABAQUS软件界面不会出现,脚本文件中的任何打印 输出将被忽略。适用于生成cae或直接提交计算 的脚本文件。

利用Python对Abaqus进行后处理结果输出

利用Python对Abaqus进行后处理结果输出

利用Python对Abaqus进行后处理结果输出-----中大_戚超_2016.10.31 概述在Abaqus的二次开发过程中,通常需要采用Python脚本语言将Abaqus的计算结果进行输出,然后再进行处理。

Python使Abaqus的内核语言,使用较为方便,Abaqus运行Python语言的方式有多种,可以直接命令窗口,也可以读入脚本,还可以采用类似批处理的方式。

本次以一个例子细说Python语言在Abaqus后处理中的应用,模型的计算结果云图如图1所示。

图1 计算结果2 输出所有积分点上的Mises应力直接上Python代码:import osfrom odbAccess import*from textRepr import*myodb=openOdb(path='Job-1.odb')cpFile=open('artlcF1.txt','w')RF=myodb.steps['Step-1'].frames[1].fieldOutputs['S'].valuesfor i in range(len(RF)) :cpFile.write('%.3F\n' %(RF[i].mises))else:cpFile.close()#引入模块,因为需要打开结果文件#打开结果文件,并复制给变量myodb#打开一个txt文件#将输出场赋值给RF#循环语句,向txt文件逐行写入mises应力Abaqus的结构层次分的很细,比如结果文件下分如下:使用过Abaqus的都知道step表示载荷步,frame表示载荷子步,因而在读取Mises应力时需要详细地指定输出哪一步的应力,而应力结果是输出场数据(fieldOutput)的中一种,需要指定是何种应力,程序才知道怎么读取并写入。

由于Abaqus里面涉及的变量特别多,通常很难记清楚那一项下面都有哪些量可以调用,此时比较好的方式是采用print 函数查看,例如查看myodb.steps['Step-1'].frames[1].fieldOutputs 下面有哪些变量可以调用,在窗口输入:print myodb.steps['Step-1'].frames[1].fieldOutputs显示:{'AC YIELD': 'FieldOutput object', 'CF': 'FieldOutput object', 'E': 'FieldOutput object', 'PE': 'Fiel dOutput object', 'PEEQ': 'FieldOutput object', 'PEMAG': 'FieldOutput object', 'RF': 'FieldOutput object', 'S': 'FieldOutput object', 'U': 'FieldOutput object'}各种不同的结果,包括位移、应力和支反力等等,因此可以知道通过如下的方式读取应力:myodb.steps['Step-1'].frames[1].fieldOutputs ['S']此时读取的信息特别多,我们想要的是其中的数值信息,因此可以:myodb.steps['Step-1'].frames[1].fieldOutputs ['S'].values通过此句能够读取所有节点的应力数据,输出其中一个:print myodb.steps['Step-1'].frames[1].fieldOutputs ['S'].values[0]显示:({'baseElementType': 'C3D8R', 'conjugateData': None, 'conjugateDataDouble': 'unknown', 'da ta': array([-855397.25, 58.817497253418, 358.723419189453, -139.652938842773, -456.986175537109, 4.29301929473877], 'f'), 'dataDouble': 'unknown', 'elementLabel': 1, 'fac e': None, 'instance': 'OdbInstance object', 'integrationPoint': 1, 'inv3': -855606.3125, 'localCoordSystem': None, 'localCoordSystemDouble': 'unknown', 'magnitude': None, 'maxInPlanePrincipal': 0.0, 'maxPrincipal': 359.0310********, 'midPrincipal': 58.7767 486572266, 'minInPlanePrincipal': 0.0, 'minPrincipal': -855397.5, 'mises': 855606.375, 'nodeLabel': None, 'outOfPlanePrincipal': 0.0, 'position': INTE GRATION_POINT, 'precision': SINGLE_PRECISION, 'press': 284993.25, 'sectionPoint': None, 'tr esca': 855756.5, 'type': TENSOR_3D_FULL})输出的信息特别多,但是可以看到有mises这一项。

Python在Abaqus的应用04

Python在Abaqus的应用04
>>> print odb ({'analysisTitle': Cantilever beam model', 'closed': FALSE, 'description': 'DDB object', 'diagnosticData': 'OdbDiagnosticData object', 'isReadOnly': FALSE, 'jobData': 'JobData object', 'name': 'cantilever.odb', 'parts': 'Repository object', 'path': 'd:\temp\cantilever.odb', 'rootAssembly': 'OdbAssembly object', 'sectionCategories': 'Repository object', 'sectorDefinition': None, 'steps': 'Repository object', 'userData': 'UserData object'})
stress.type
tuple
stress.validInvariants
FieldValueArray
stress.values
• Print the value of each member using getPaths() and eval(path)

Python语言在ABAQUS中的应用

Python语言在ABAQUS中的应用

Python语言在ABAQUS中的应用采用python脚本语言二次开发ABAQUS,通过开发python脚本程序处理ABAQUS重复工作,提高了工作效率。

标签Python;ABAQUS;交换输入;函数引言ABAQUS是大型通用的有限元分析软件,可以模拟绝大部分工程材料的线性和非线性行为,获得了广大用户的认可,在建筑结构分析领域应用广泛。

Python是一种面向对象的脚本语言,,该语言已经诞生20余年,它的简洁性和易用性使程序的开发过程变得简单,特别适用于快速应用开发。

在此介绍一下编写脚本快速建模。

编写Python脚本快速建立模型是ABAQUS高级用户经常使用的功能之一。

例如,在Abaqus/CAE中建模时需要反复输入各种参数和设置多个对话框,编写脚本只需要几条语句就可以实现。

如果经常建立相同或类似模型,还可以编写独立的模块,还可以编写脚本创建材料库,运行Python脚本后Material Manager 将自动出现定义的材料。

在此介绍3种最常用的快速建立模型的方法,包括交互式输入、创建材料库。

1.交互式输入交互式输入直接指定模型参数,而无需在Abaqus/CAE下选择多个菜单、多个按钮,可以节省许多建模时间。

Abaqus脚本接口提供3种交互式输入函数,分别是:getInput()函数、getInputs()函数和getWarningReply ()函数,详细介绍参见Abaqus 6.10帮助手册《Abaqus Scripting User’s Manual》第6.7节“Prompting the user for input”和<《Abaqus Scripting Reference Manual》第49.5节“User input commands”。

GetInput()函数脚本getInput.py将调用getInput()函数自定义输入参数,开平方根运算后输出计算结果。

程序测试代码如下:from abaqus import *from math import sqrtinput=getInput(’please enter a number ‘,’9’)number=float(input)print sqrt(number)GetInputs()函数脚本getInputs.py将调用getInputs()函数自定义输入并输出数据信息,代码如下:from abaqus import *x=getInputs(((’please enter the first number ‘,’2’),(’please enter the second number’,’5’),(’please enter the third number’,’8’)))print xGetWarningReply ()函数脚本getWarningReply.py将调用get Warning Reply ()函数来创建警告对话框。

ABAQUS二次开发教程

ABAQUS二次开发教程

ABAQUS (Python 语言)二次开发人生苦短,我用 Python作者: Fan ShengbaoPython2.72017 年 12 月目录1第一章 Python 程序基本语法 ......................................................................................................1.1Python 语法结构 (1)1.2Python 元组 (1)1.3Python 列表 (1)1.4Python 字典 (2)1.5Python 集合 (3)1.6Python 字符串 (3)1.7Python 分支语句 (4)1.8Python 循环语句 (5)1.8.1for 循环 (5)1.8.2while 循环 (5)1.9Python 定义函数 (5)1.10Python 模块 (6)1.11Python 包 (7)1.12Python 文件和目录 (7)1.12.1目录操作 (7)1.12.2文件操作 (7)1.13Python 异常处理 (8)9第二章 ABAQUS/Python 二次开发 .............................................................................................2.1ABAQUS执行 Python 程序 (9)2.2编写 ABAQUS/Python 程序 (10)2.3ABAQUS录制 Python 程序 (10)2.4ABAQUS/Python 对象介绍 (11)2.4.1 session 对象 (11)2.4.2 mdb 对象 (11)2.4.3 odb 对象 (13)2.5ABAQUS完整二次开发示例 (14)2.6ABAQUS二次开发常用函数 (16)2.6.1 Part 模块常用函数 (16)第一章 Python 程序基本语法1.1 Python 语法结构Python 语言以缩进来约束每个程序块,编写程序时要特别注意每一行的缩进量,同一层次的语句应具有相同的缩进量。

在abaqus中使用python实现功能(1,2)

在abaqus中使用python实现功能(1,2)

在abaqus中使用python实现的功能(一、二)By lxm9977(lxm200501@)功能一:实行提交多个job的功能。

对象:Job object使用:在源文件开始写上import job,源程序用mdb.jobs[name] 使用名字为name的job对象。

建立一个job对象的方法:z利用已有的inp文件中建立job:mdb.JobFromInputFile()z利用已有的cae中建立job: Job(...)建议用第一种方法。

设定参数的方法:9利用第一种方法建立job的时候,可以设定很多的参数,比如type,queue,userSubroutine等。

格式:mdb.JobFromInputFile(name=,inputFile=,type=,queue =,userSubroutine=,…….)。

9也可以先建立一个job,然后利用job对象的setValues来设定参数,格式:job.setValues(type=,queue=,userSubroutine=,…….)。

一个简单的例子:文件:job.pyfrom abaqusConstants import *import jobmdb.JobFromInputFile(name='job-1-1',inputFileName='Job-1.inp')#基于inp文件Job-1.inp建立名称为job-1-1的jobmdb.jobs['job-1-1'].setValues(waitMinutes=1)#设定参数mdb.jobs['job-1-1'].submit()#提交任务mdb.jobs['job-1-1'].waitForCompletion()运行:在cmd下面运行:Abaqus cae nogui=job.py如果是多个job,同样道理了,不多说了。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
➢ 编写完成的脚本文件,可以直接在ABAQUS运行:
File → Run Script,打开相应的.py文件,即可执行; 刚打开ABAQUS界面,直接选择Run Script也可; 可以在GUI界面下部的命令行接口输入脚本语句执行。
ABAQUS 脚本概述
创建ABAQUS脚本
➢ 创建脚本有3种常用方法: ➢ ①在GUI建模时录制宏(macro)
Python在ABAQUS二次开发中 的应用实例
主要内容
• 一、ABAQUS 脚本概述 • 二、Python 语言简介 • 三、ABAQUS脚本编写
一、ABAQUS 脚本概述
ABAQUS 脚本概述
ABAQUS软件简介
➢ ABAQUS是国际著名的CAE软件,它以解决实际工业问题能力和强大 的非线性功能赢得广泛声誉。航空工业是ABAQUS最重要的应用领域 之一,波音、空中客车、洛克希德•马丁等是其长期合作的用户。
句,需要用分号分开。如:x=1;y=2;z=3。如果一个逻辑语句太长需要分行写, 需要用反斜杠“\”进行连接(有括号括起来的内容就不用)。 不同代码块之间要注意用冒号和缩进来区分代码块之间的层次关系,如:
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]==']'):
优点:界面直观,简单易懂; 缺点:操作步骤繁琐,不利于修改,缺乏通用性。
➢ ②通过inp文件建模
优点:可以直接在ABAQUS中提交; 缺点:只包含模型节点信息,代码较多,修改不便;
➢ ③使用Python语言建模
优点:代码少,语言友好,可移 植性好,可进行参数化修改;
缺点:不够直观。
ABAQUS 脚本概述
中国石油大学焦中良开发 可以实时获取CAE每步操作对应的脚本命令
ABAQUS 脚本概述
调试ABAQUS脚本
➢ 调试脚本有多种方法,这里介绍Abaqus自带的PDE中的调试。 ➢ PDE(Python Development Environment,Python开发环境)有以下功能:
编辑Python文件、调试Python脚本或插件; 创建guiLog脚本,录制所有的GUI动作; 通过GUI(guiLog)运行Python脚本或在ABAQUS/CAE之外运行Python脚本; 设置延迟(delay)和断点(breakpoint),并查看代码的执行情况; 在watch窗口中查看变量值等。
➢ 打开方式
File → Abaqus PDE,然后打开相应的.py文件,即可编辑调试。
ABAQUS 脚本概述
调试ABAQUS脚本
点 点 点 点 点
按钮可以调试整个脚本文件; 按钮可以逐行调试脚本文件,调试行显示为蓝色; 按钮可以停止调试文件; 按钮可以设置断点,调试时将调到此行为止; 按钮,然后点 按钮,可以录制CAE中的操作,点
➢ ABAQUS脚本接口直接与内核进行 通 信 ( communicate ) , 而 与 ABAQUS/CAE 的 图 形 用 户 界 面 (GUI)无关。如果将所有的脚本 接口命令存储于文件中,该文件则 称为脚本(script)。脚本由一系列 纯ASCII格式的Python语句组成,扩 展名一般为.py。
File → Macro Manager 可以按需录制任何操作对应的命令
➢ ②直接编辑abaqus.rpy文件
建模时工作目录下自动生成abaqus.rpy文件 使用软件EditPlus可以直接打开编辑 保存.cae文件并退出后才能生成.rpy文件
➢ ③借助PythonReader.exe软件
Python 语言简介
基本规则
代码按级别从大到小解读,之间用操作符“.”连接。如:
mdb.models[‘Model-1’].materials[‘BPCOMPOSITE’].Depvar(n=5)
表示将模型‘model-1’的材料‘BPCOMPOSITE’里的子程序相关参数设为5。 语句前加上 # 号,表示是注释内容,这个语句将不被执行; 使用中文注释,要在文件最开始加上:# -*- coding: UTF-8-* 以换行来识别一个逻辑语句的结束。如果需要在一个物理行中编写多个逻辑语
➢ ABAQUS分析过程由三个步骤 组成:
前处理( ABAQUS/CAE ); 模拟计算(ABAQUS/Standard
或者ABAQUS/Explicit); 后处理( ABAQUS/CAE )。
➢ 建模过程主要集中在前处理步 骤中。
ABAQUS 脚本概述
ABAQUS建模方法
常用的ABAQUS建模方法主要有三种: ➢ ①在ABAQUS/CAE界面建模
命令行接口 (CLI)
命令
Python 解释器
ABAQUS/CAE
inp文件
ABAQUS/Standard ABAQUS/Explicit
odb文件
脚本 rpy文件
ABAQUS 脚本概述
ABAQUS脚本接口
➢ 编写脚本可以实现以下功能:
自动执行重复任务; 进行参数分析; 创建和修改模型; 访问输出数据库(ODB文件); 定制ABAQUS环境文件; 创建ABAQUS插件程序。
ABAQUS脚本接口
➢ ABAQUS有限元分析软件二次开发环境提供的脚本接口,是基于Python语言进行的定 制开发。
➢ 在 ABAQUS/CAE 中 进 行 建 模 和 进
GUI
行后处理时,对话框中做的所有设 置 都 由 ABAQUS/CAE 从 内 部 发 出 与之对应的命令(command)。
Python 语言简介
保留字段
➢ 定义变量名、函数名的时候,避免使用保留字段。如:
保留字段 and \ not \ or break continue class def if \ else \ elif print while from \ import return
说明 逻辑“与”“非”“或” 中止循环语句 继续执行下一次循环 定义类 定义函数或者方法 条件判断语句 输出语句 循环语句 导入模块 返回函数计算结果
相关文档
最新文档