Python在ABAQUS二次开发中的应用实例2..
基于Python的ABAQUS二次开发在骨钻削仿真中的应用

基于Python的ABAQUS二次开发在骨钻削仿真中的应用陈春城;胡亚辉;郑清春;张善青【期刊名称】《现代制造工程》【年(卷),期】2018(000)006【摘要】在骨外科手术中,骨钻孔占据了重要地位,而钻孔温度更是影响骨细胞坏死的重要因素.为了研究在钻孔过程中不同因素对温度的影响,基于ABAQUS有限元软件进行仿真,采用Python脚本语言对ABAQUS软件的前处理模块进行优化,修改钻削模型的Python脚本程序,创建了参数化的骨钻削模型.有效地简化了建立模型的繁琐过程,且建立了友好的人机界面,为用户仿真提供了便捷的分析设计平台.通过实验验证了该功能的可行性,为后续研究不同的钻削用量对钻削温度的影响奠定了基础.【总页数】5页(P54-57,113)【作者】陈春城;胡亚辉;郑清春;张善青【作者单位】天津市先进机电系统设计与智能控制重点实验室,天津300384;天津理工大学,天津300384;天津市先进机电系统设计与智能控制重点实验室,天津300384;天津理工大学,天津300384;天津市先进机电系统设计与智能控制重点实验室,天津300384;天津理工大学,天津300384;天津市先进机电系统设计与智能控制重点实验室,天津300384;天津理工大学,天津300384【正文语种】中文【中图分类】TH164【相关文献】1.基于Python的Abaqus二次开发在空间可展单簧片结构仿真分析中的应用 [J], 叶红玲;胡腾;赵春华;肖燕妮2.基于Python的Abaqus二次开发在层压板修理模拟中的应用 [J], 郭霞;关志东;刘遂;陈萍;刘佳;王欣晶;邱太文3.基于Python/ABAQUS二次开发在创建变速器内部传动系有限元模型的应用 [J], 王金明;邓小梅4.基于Python的ABAQUS二次开发在飞机蒙皮锤铆中的应用 [J], 陈彦海;秦运海;姜春英;康玉祥;叶长龙5.基于Python的ABAQUS二次开发在复合材料层合板冲击建模中的应用 [J], 陈芳育;李进;邱玮桢;吕泉江因版权原因,仅展示原文概要,查看原文内容请购买。
Abaqus里应用Python的一些技巧

Abaqus里应用Python的一些技巧例如:cell4 = mdb.models['block'].parts['crankcase'].cells[4],要把part模块中编号为4的体赋值给cell4,就需通过路径mdb→models→part→cells(4号体属性),其中'block'、'crankcase'、分别是model和part的名字。
在草图Sketch中画线:s = mdb.models[' block '].ConstrainedSketch(name='grid',sheetSize=3.0)s.Line(point1=(-1.275, 0.0), point2=(-1.125, 0.0))s.Line(point1=(1.125, 0.0), point2=(1.275, 0.0))执行任何一条命令都必须按照结构树的格式进行操作。
我们所看到的python脚本繁杂的语句就是这样形成的。
这样大量的命令不能在短时间内掌握,我们只需要根据自己的需要边建立模型边学习就可以了。
a = mdb.models['Model-1'].rootAssemblys = a.instances['Mount-1'].edgesside1Edges = s.findAt(((0.0475, 0.0, 0.0), ))以上三行与下面的句子是等同的,即把findat找到的edges赋值给side1Edges。
分开来写简单明了,大大缩短了语句的长度。
side1Edges = mdb.models['Model-1'].rootAssembly. instances['Mount-1'].edges. findAt(((0.0475, 0.0, 0.0), ))a.Surface(side1Edges=side1Edges, name='Bottom'),这行语句设置side1Edges所对应的edge为名称'Bottom'的surface的set。
python abaqus 二次开发 循环提交作业

Python是一种高级编程语言,它在科学计算、数据分析、人工智能等领域有着广泛的应用。
Abaqus是一款常用的商业有限元软件,它主要用于工程结构分析和仿真。
二次开发是指在现有软件的基础上,使用编程语言对软件进行扩展和定制化。
1. Python在Abaqus二次开发中的应用在Abaqus软件中,Python被作为主要的二次开发语言来使用。
用户可以利用Python对Abaqus进行自动化操作、批量处理、数据分析等工作。
Python的简洁语法和强大的库支持,使得Abaqus二次开发变得更加高效和灵活。
2. Abaqus中的循环提交作业在Abaqus中,循环提交作业是指对多个任务进行批量处理的操作。
用户需要对多个模型进行相似的分析,可以利用循环提交作业的方式来提高分析效率。
通过编写Python脚本,可以实现循环读取模型文件并提交分析任务的功能。
3. Python在循环提交作业中的应用Python在Abaqus中循环提交作业的过程中发挥着重要的作用。
用户可以利用Python脚本来实现对多个模型的批量处理,节约时间和人力成本。
Python的循环结构和文件操作能力,使得循环提交作业变得更加简单和高效。
4. 二次开发与循环提交作业的结合通过Python的二次开发功能,用户可以定制化地实现循环提交作业的功能。
用户可以编写Python脚本来实现针对特定工程需求的循环提交作业流程,提高软件的灵活性和适用性。
二次开发也可以使得循环提交作业的过程更加智能化和自动化。
5. 实例分析以某工程仿真为例,用户需要对多个零件进行疲劳分析。
通过Python的二次开发,用户可以编写循环提交作业的脚本,实现自动读取不同零件模型并提交分析任务的功能。
这样一来,用户无需手动逐个提交任务,极大地提高了分析工作的效率。
Python在Abaqus的二次开发中能够很好地支持循环提交作业的功能。
通过二次开发,用户可以定制化地实现循环提交作业的流程,提高软件的适用性和工作效率。
从记录到编程--Python在ABAQUS程序化参数化建模分析中的应用

region152=a.surfaces['CP‐76‐sup_A26']
## face set 转换成 region
......
......
mdb.models['Model‐1'].SurfaceToSurfaceContactStd(name='CP‐76‐beam2_A2‐sup_A26', ##region 之间建立接触对
下面介绍一个光伏行业的系统级别安装模型(图 1)。该模型是一个很大的光伏组件阵列的一部分,组件 (panel)的倾角为 20 度,并且安装在一个钢铁支架系统上。该模型是完全通过 Python 编程建立起来的,
2
Байду номын сангаас
2010 ABAQUS Users’ Conference (China)
是一个参数化的分析模型。由于篇幅有限,本文只介绍其中一个 part 即 sup 的建立过程。Python 程序如 下,所涉及的各种函数均是本人自行编写的。
Keywords: Python; Secondary development; General Contacts
1、前言
通常建立有限元模型的时候,往往先借助其他三维制图软件(Pro/E, SolidWorks, CATIA, UG 等)生成 几何模型,然后将几何模型导入到 ABAQUS CAE 环境中,根据需要进行模型修复、处理,然后进行网格划 分建立有限元模型。由于软件的兼容性以及有限元模型与几何模型的差异性,在 ABAQUS 中进行几何模型 修复也可能比较困难。于是有人连模型修复、网格划分都在第三方软件中进行(如上述制图软件和 HyperMesh 等网格划分软件)。在 ABAQUS 中建立分析步、建立接触对和施加约束、载荷条件后,在提交运 算之前生成 INP 文件以便保存模型。该 INP 文件(包括对 INP 文件的修改之后生成的新的 INP 文件)也可 以用于提交运算。
基于Python的Abaqus前、后处理GUI插件二次开发与应用

基于Python的Abaqus前、后处理GUI插件二次开发与应用作者:***来源:《计算机辅助工程》2022年第02期摘要:为提高Abaqus建模效率并进行可视化数据分析,利用Python语言对Abaqus前-后处理进行二次开发。
分析某柴油机机油-水冷却器模块组件,结果表明:前处理模块开发螺栓GUI插件,能够批量创建相同规格的螺栓载荷,提高前期建模效率,缩短分析周期;后处理模块开发Campbell制图插件,能根据工程实际需要将模态结果数据绘制成Campbell图,并将计算结果可视化输出。
关键词: Abaqus; Python; 二次开发; 前处理; 后处理; GUI界面中图分类号: TP391.99; TB115.1文献标志码: BGUI plugin redevelopment and application of Abaquspre-and post-processing based on PythonTIAN Yutai(Shanghai New Power Automotive Technology Co., Ltd., Shanghai 200438, China)Abstract: To improve the efficiency of Abaqus modeling and achieve visual data analysis,redevelopment of Abaqus pre-and post-processing is carried out with Python language. A diesel engine oil-water cooler module is analyzed. The results show that: a bolt GUI plug-in is developed for the pre-processing module, which can create bolt loads of the same specification in bulk,improving pre-modeling efficiency and shortening the analysis cycle; the Campbell mapping plug-in is investigated for the post-processing module, which can draw the modal result data into Campbell diagrams according to the actual needs of engineering and visualize the calculation results for output.Key words: Abaqus;Python; redevelopment; pre-processing;post-processing; GUI interface0引言作为国际通用计算分析软件,Abaqus具有丰富的单元类型与材料非线性模型,在各领域发挥至关重要的作用。
ABAQUS前_后处理模块二次开发的应用

ABAQUS有限元程序通过集成 Python语言向二次 开发者提供了很多库函数 , 通过 ABAQUS 脚本接口 (ABAQUS Scrip ting In2terface) , Python语言调用这些库 函数来增强 ABAQUS的交互式操作功能 。它允许用户 绕过 ABAQUS /CAE的 GU I( graphical user interfaces)直 接与内核交互 , 可以大大提高工作效率或完成 ABAQUS /CAE没有提供的功能 。但是因为它没有通 过 GU I,显的不那么直观 ,而且如想改变某些参数就不 得不修改脚本程序 ,这些对一般用户来说就显的比较 麻烦 。因此 , 对 ABAQUS 二次开发一般应先开发 出 GU I后 ,让 用 户 输 入 或 选 择 有 关 参 数 后 , 然 后 生 成 ABAQUS的脚本语言来自动处理 。ABAQUS的 GU I是 用 ABAQUS GU I Toolkit来编 写 , 它 也是 对 FOX GU I
chongyaDB 模块的作用是应用 ABAQUS GU I Tool2 kit来完成对图 4 的界面的排序功能 ,并调用 Icons模
·32·
块或相关图片 。本例中在此使用是调用图片 ,如果 ,要 使用调用 Icons模块的方法则要用 XPM 图片数据作为 Python的字符列表来定义 icon,这样比较麻烦 ,尤其对 于复杂的图形 。 (注 : ABAQUS GU I Toolkit支持以下几 种格式来创建 icon: ①XPM 格式 ; ②BM P 格式 ; ③GIF 格式 ; ④PNG格式 ,而后三种格式是一般的绘图软件就 支持的格式 ,如 w indow s自带的画图软件就支持后三
2 应用举例
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二次开发中的应用实例.ppt

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中提交; 缺点:只包含模型节点信息,代码较多,修改不便;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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 # 创建新的视口