Abaqus二次开发
ABAQUS-二次开发-边界条件

ABAQUS-二次开发-边界条件这个例子模拟三峡库区的水位涨落时,涉水土质滑坡的渗流场分布情况的,是以前做的,蛮好玩的。
如果大家关心些新闻的话,三峡库区有涨水、蓄水、排水、枯水这个一年一次循环的周期,关键问题就在于怎么在数值模拟中考虑这个时间单位这里用的是“天”,任何问题,只要把单位统一化,就可以实现自己所定义的单位系统下的问题,这个大家应该是很熟悉的了。
t=2天t=4天t=8天t=16天t=20天t=26天图2 浸润线位置随涨水时间t变化图数值模拟中实现这个问题,需要对边界条件上加载孔隙水压力的方式动手脚了,首先把时间定下来,然后把每个时间对应的水位高度定下来,然后就是写对应的程序了,关键就在于,需要在各个位置的节点处定义不同的pp_t幅值曲线。
这个问题使用子程序会很方便,也可以不用,只需要定义一堆关键字吧,但是GUI方式是完全没法实现的。
其实软件关键字的背后也就是他的脚本语言,就好像是FLAC里写一句struct cable,这个命令本身只有给你看懂那么一个傻瓜意义意义。
看看关键字怎么定义的:*AMPLITUDE,name=down1,VALUE=ABSOLUTE0,0,30,-300,180,-300*AMPLITUDE,name=down2,VALUE=ABSOLUTE0,10,1,0,30,-290,180,-290*AMPLITUDE,name=down3,VALUE=ABSOLUTE0,20,2,0,30,-280,180,-280*AMPLITUDE,name=down4,VALUE=ABSOLUTE0,30,3,0,30,-270,180,-270*AMPLITUDE,name=down5,VALUE=ABSOLUTE0,40,4,0,30,-260,180,-260*AMPLITUDE,name=down6,VALUE=ABSOLUTE0,50,5,0,30,-250,180,-250*AMPLITUDE,name=down7,VALUE=ABSOLUTE0,60,6,0,30,-240,180,-240*AMPLITUDE,name=down8,VALUE=ABSOLUTE0,70,7,0,30,-230,180,-230*AMPLITUDE,name=down9,VALUE=ABSOLUTE0,80,8,0,30,-220,180,-220*AMPLITUDE,name=down10,VALUE=ABSOLUTE0,90,9,0,30,-210,180,-210*AMPLITUDE,name=down11,VALUE=ABSOLUTE 0,100,10,0,30,-200,180,-200*AMPLITUDE,name=down12,VALUE=ABSOLUTE 0,110,11,0,30,-190,180,-190*AMPLITUDE,name=down13,VALUE=ABSOLUTE 0,120,12,0,30,-180,180,-180*AMPLITUDE,name=down14,VALUE=ABSOLUTE 0,130,13,0,30,-170,180,-170*AMPLITUDE,name=down15,VALUE=ABSOLUTE 0,140,14,0,30,-160,180,-160*AMPLITUDE,name=down16,VALUE=ABSOLUTE 0,150,15,0,30,-150,180,-150*AMPLITUDE,name=down17,VALUE=ABSOLUTE 0,160,16,0,30,-140,180,-140*AMPLITUDE,name=down18,VALUE=ABSOLUTE 0,170,17,0,30,-130,180,-130*AMPLITUDE,name=down19,VALUE=ABSOLUTE 0,180,18,0,30,-120,180,-120*AMPLITUDE,name=down20,VALUE=ABSOLUTE 0,190,19,0,30,-110,180,-110*AMPLITUDE,name=down21,VALUE=ABSOLUTE 0,200,20,0,30,-100,180,-100*AMPLITUDE,name=down22,VALUE=ABSOLUTE 0,210,21,0,30,-90,180,-90*AMPLITUDE,name=down23,VALUE=ABSOLUTE 0,220,22,0,30,-80,180,-80*AMPLITUDE,name=down24,VALUE=ABSOLUTE 0,230,23,0,30,-70,180,-70*AMPLITUDE,name=down25,VALUE=ABSOLUTE0,240,24,0,30,-60,180,-60*AMPLITUDE,name=down26,VALUE=ABSOLUTE0,250,25,0,30,-50,180,-50*AMPLITUDE,name=down27,VALUE=ABSOLUTE0,260,26,0,30,-40,180,-40*AMPLITUDE,name=down28,VALUE=ABSOLUTE0,270,27,0,30,-30,180,-30*AMPLITUDE,name=down29,VALUE=ABSOLUTE0,280,28,0,30,-20,180,-20*AMPLITUDE,name=down30,VALUE=ABSOLUTE0,290,29,0,30,-10,180,-10*AMPLITUDE,name=down31,VALUE=ABSOLUTE0,300,29.9,0,180,0*BOUNDARY,AMPLITUDE=down1Part-1-1.nod30,8,,0*BOUNDARY,AMPLITUDE=down2Part-1-1.nod29,8,,10*BOUNDARY,AMPLITUDE=down3Part-1-1.nod28,8,,20*BOUNDARY,AMPLITUDE=down4*BOUNDARY,AMPLITUDE=down5 Part-1-1.nod26,8,,40*BOUNDARY,AMPLITUDE=down6 Part-1-1.nod25,8,,50*BOUNDARY,AMPLITUDE=down7 Part-1-1.nod24,8,,60*BOUNDARY,AMPLITUDE=down8 Part-1-1.nod23,8,,70*BOUNDARY,AMPLITUDE=down9 Part-1-1.nod22,8,,80*BOUNDARY,AMPLITUDE=down10 Part-1-1.nod21,8,,90 *BOUNDARY,AMPLITUDE=down11 Part-1-1.nod20,8,,100 *BOUNDARY,AMPLITUDE=down12 Part-1-1.nod19,8,,110 *BOUNDARY,AMPLITUDE=down13 Part-1-1.nod18,8,,120 *BOUNDARY,AMPLITUDE=down14 Part-1-1.nod17,8,,130*BOUNDARY,AMPLITUDE=down15 Part-1-1.nod16,8,,140*BOUNDARY,AMPLITUDE=down16 Part-1-1.nod15,8,,150*BOUNDARY,AMPLITUDE=down17 Part-1-1.nod14,8,,160*BOUNDARY,AMPLITUDE=down18 Part-1-1.nod13,8,,170*BOUNDARY,AMPLITUDE=down19 Part-1-1.nod12,8,,180*BOUNDARY,AMPLITUDE=down20 Part-1-1.nod11,8,,190*BOUNDARY,AMPLITUDE=down21 Part-1-1.nod10,8,,200*BOUNDARY,AMPLITUDE=down22 Part-1-1.nod9,8,,210*BOUNDARY,AMPLITUDE=down23*BOUNDARY,AMPLITUDE=down24Part-1-1.nod7,8,,230*BOUNDARY,AMPLITUDE=down25Part-1-1.nod6,8,,240*BOUNDARY,AMPLITUDE=down26Part-1-1.nod5,8,,250*BOUNDARY,AMPLITUDE=down27Part-1-1.nod4,8,,260*BOUNDARY,AMPLITUDE=down28Part-1-1.nod3,8,,270*BOUNDARY,AMPLITUDE=down29Part-1-1.nod2,8,,280*BOUNDARY,AMPLITUDE=down30Part-1-1.nod1,8,,290*BOUNDARY,AMPLITUDE=down31Part-1-1.nod0,8,,300以上是一部分关键字,其实根本问题就是找到对应节点,对各个节点附上与时间相关的边界。
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的二次开发中能够很好地支持循环提交作业的功能。
通过二次开发,用户可以定制化地实现循环提交作业的流程,提高软件的适用性和工作效率。
Abaqus二次开发疲劳裂缝伸展模拟

Abaqus二次开发疲劳裂缝伸展模拟疲劳是指材料在往复荷载的作用引起的损伤,进而开裂的过程。
由于疲劳计算本构较多以及过程相对复杂,目前的有限元软件中很少有对疲劳的模拟。
而abaq us通过各种子程序可以实现疲劳过程的二次开发。
下面介绍一下两种疲劳的本构以及实现效果。
1、应力路径与疲劳累计的关系AB段是弹性加载阶段,此时不会发生疲劳,达到B点时发生初始损伤,BC段为损伤后继续加载,如果不考虑疲劳,损伤会沿着CC‘进行,即单调损伤。
如果在C点卸载至D点,损伤也不会增加,之后加载至E点后疲劳损伤会累计,之后重复卸载-重加载-卸载过程(卸载不考虑疲劳损伤,加载考虑疲劳损伤),直至疲劳损伤量到1。
加载路径2、疲劳本构(1)Siegmund疲劳方程引自:功率模块引线键合界面的疲劳断裂特性研究(2)Lemaitre疲劳方程引自:含夹杂物轴承钢中裂纹的萌生与扩展3、三点弯曲梁模型及疲劳裂缝伸展结果模型左侧为固定约束,右侧为铰接,模型中下部位设置1mm的长的初始裂缝。
模型采用平面应变单元C3D8R,裂缝采用cohesive单元模拟。
模型顶部施加1. 1MPa的循环荷载,直至试样完全开裂。
分析步采用动力隐式分析步,材料采用弹塑性本构,cohesive单元采用双线性本构。
三点弯曲梁疲劳裂缝伸展4、DCB模型及疲劳裂缝伸展结果模型采用平面应变单元C3D8R,裂缝采用cohesive单元模拟。
模型边界施加1 MPa的循环荷载,直至试样完全开裂。
分析步采用动力隐式分析步,cohesive 单元采用双线性本构。
DCB疲劳裂缝伸展损伤后应力应变曲线疲劳损伤量变化曲线。
浅谈ABAQUS数值模拟中的二次开发问题

例子:一个基于J2理论的针对大变形弹塑性材料 的本构方程 (例:umat\umat.doc)
1.3.4其他(VMAT、URDFIL…)
功能:比如VMAT是指动力学计算中的用户自定 义材料本构,通过URDFIL可以把计算数据写 入指定文件,USDFLD可以定义场变量(一个 场变量对应一个参数值)为状态变量(位移、 应力)的函数等。
浅谈数值模拟中的 二次开发问题
二次开发问题的分类
1 改变软件初始环境变量
2 创建新的图形用户界面 3 子程序开发
1. 1 改变软件初始环境变量
软件差异较大 不具有通用意义
1.2 创建新的图形用户界面
1.2.1 前后处理小插件(例:1\1.2.1.doc) 1.2.2 创建的方式 ① 软件脚本语言(上例) ② 面向对象语言,如C++,java等 ③ bat文件(例:1\1.2.2.3.doc)
例2 边界条件与时间和坐标相关
(例:dload\例2水位 变化\up-down.avi,dload\例2水位变化\边界条件.doc)
例3 非均布载荷 (例:dload\例3非均布载荷\非均布载荷.doc) 例4 载荷随分析步变化 (例:dload\例4不同step不同载荷\
载荷随分析步变化.doc)
2 结语
数值模拟没有以前理解中的那么局限,好 好研究一下,会发现是自.3.1 定义复杂边界条件
1.3.2 用户自定义单元子程序(UEL)
1.3.3 用户自定义材料子程序(UMAT)
1.3.4 其他(VMAT、URDFIL…)
1.3.1定义复杂边界条件
例1 移动载荷 (例:dload\例1移动载荷\dz.avi,dload\例1移
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二次开发中,获取点的方法通常涉及对几何元素或节点的操作。
以下是一些常用的方法:
1. 使用`findAt`方法:`findAt`方法可以根据点的坐标来捕获几何元素或几何元素序列。
如果提供的参数是一个包含三个坐标的元组(tuple),则可以捕获单个几何元素;如果参数是一个包含多个坐标点的元组的元组(tuple of tuples),则可以捕获一个几何元素序列。
2. 访问`Vertex`或`Datum point`的成员属性`pointOn`:顶点(Vertex)和基准点(Datum point)都具有`pointOn`成员属性,可以通过下标直接获取其坐标值。
3. 使用`MeshNode`的`coordinates`成员函数:网格节点(MeshNode)具有`coordinates`成员函数,通过该函数也可以获取节点的坐标值。
4. 利用Abaqus Scripting Interface(ASI)或Python Scripting:Abaqus提供了ASI和Python Scripting功能,这些工具可以帮助用户进行二次开发,实现更复杂的操作和自动化流程。
5. 直接修改inp文件:虽然这种方法需要对inp文件中大量的节点和单元进行操作,但在特殊情况下,如果熟悉inp文件的结构,也可以通过直接修改inp文件来进行二次开发。
6. 后处理二次开发:在Abaqus的后处理阶段,二次开发可以实现大规模数据的提取和个性化的复杂数据处理逻辑。
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或直接提交计算 的脚本文件。
Abaqus二次开发介绍

Abaqus⼆次开发介绍ABAQUS提供了两种⼆次开发的接⼝,⼀是⼦程序接⼝(user subroutine),⼀种是脚本接⼝(Abaqus scripting interface),Abaqus的脚本语⾔是在python语⾔的基础上进⾏的定制开发,它扩充了python的对象模型和数据类型,使Abaqus脚本接⼝的功能更加强⼤,⼀般来说,Abaqus脚本接⼝可以实现以下功能①创建、修改ABAQUS模型中的属性,如部件、材料、荷载和分析步等②创建、修改和提交分析作业③读取和写⼊ABAQUS输出数据⽂件④查看分析结果Abaqus中python脚本的通信关系如下图所⽰从图中可以看出,ABAQUS可以通过三种⽅式运⾏脚本⽂件(1)GUI。
Abaqus在采⽤GUI进⾏建模的同时,会⽣成⼀个rpy格式的脚本⽂件。
当然,也可以通过macro管理器录制⼀段宏命令(2)命令⾏。
在abaqus CAE界⾯底端的命令⾏键⼊python命令,点击回车后即可⾃动运⾏。
(3)编辑脚本⽂件。
预先编辑好脚本⽂件,在start session 对话框或者file按钮⾥选择run script运⾏脚本。
也可以在ABAQUS command窗⼝中键⼊命令运⾏脚本Abaqus cae script=myscript.pyAbaqus cae startup=myscript.py启动CAE界⾯并运⾏脚本Abaqus viewer script=myscript.pyAbaqus viewer startup=myscript.py启动Viewer并运⾏脚本Abaqus cae noGUI=myscript.pyAbaqus viewer noGUI=myscript.py不启动CAE或者Viewer运⾏脚本此外,ABAQUS也提供了⼀个python编译器,可以通过file→abaqus pde运⾏详细的python命令,⼤家可以通过帮助⽂件中的Abaqus Scripting Reference Guide进⾏查看。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Abaqus二次开发——Abaqus/python入门体会入门实例#===========================================================自己的论文要用到有限元进行数值模拟分析,以前都用ansys计算,可ansys中岩土的本构模型只有D-P模型,无法准确的反映土的硬化/软化性质,模拟计算出的结果因此也和实际差别很大。
Abaqus有着丰富的材料模型,超强的非线性分析能力,岩土的模型也很多,因此才转学Abaqus。
Abaqus的cae建模功能还是很好的,但科研课题一般都要进行参数分析,采用cae的建模方法有些不切实际,学了没几天就放弃cae开始学习inp,也是学了一阵子才知道inp不能建立实体模型,只能直接建节点和单元。
复杂的模型inp也无法建立,但采用Python建模就可以解决这个问题。
由于Abaqus的学习资料不多,过了好些日子才知道Abaqus也可以采用Python语言进行建模计算,只是比Ansys的Apdl语言复杂得多,并且除了手册上的Script资料之外,没有较为系统的教程,刚一接触真是让人头痛。
通过查看Simwe论坛上关于Python的帖子,和论坛朋友的帮助,自己在慢慢积累,现在对Python有了一点点了解,算是入了个门。
接触Abaqus也没多久,对python更是一知半解,绝大多数地方根本都不清楚,抽空写一点认识体会主要是给像自己一样刚学习Abqus Python的朋友,能少走一些弯路,节约一些时间。
同时希望大家批评指正、共同讨论、补充。
#--------------------------------------------------------------------------------------------------学习Abaqus/Python基础:Abaqus的cae建模有比较全面的认识;了解一些Python语法知识(大家都不会有太多时间单独学习Python语言本身,只需要有概念了解即可,不懂的地方可以随时查询Python script手册)Abaqus/Python学会使用不太难,可要精通应用还是要付出一定的劳动。
大家所分析的课题专业不同,方向也千差万别,所用到的Abaqus的功能也就有很大的差别,能对自己的工作领域熟练应用就算成功。
Abaqus毕竟只是软件,如何考虑专业知识成功建模才是最困难的。
#--------------------------------------------------------------------------------------------------1. Python与Abaqus2. Abaqus/Python结构3.模型参数分析技巧4.几个命令的体会5.一个Abaqus/Python例子#--------------------------------------------------------------------------------------------------#===========================================================1. Python与Abaqus1.1 Python简介Python是面向对象的语言。
面向对象的语言自己的理解为:语言本身已经定义了许多固定模块,如数学函数、对显示模式的控制、一些对话框的编写等等程序模块,只需要按照程序的指定格式填空即可完成既定任务,格式相对比较固定,因此语言格式看起来非常繁琐,但方便实用能够大量节约程序员的时间。
面向对象语言的使用方式可以比喻为:一棵树分为树干、树枝、细枝和树叶等部分,你要是想得到一个确定位置的树叶(且具大小等属性)只有一个路径可以走即树干-树枝-细枝-树叶,换成面向对象的格式为树干.树枝.细枝.树叶(树叶片数或大小等属性)。
以下是abaqus中Python的一般格式,这些格式都是固定的,我们只需要改变其中的参数即可:mdb.models['Model-1'].ConstrainedSketch(name='__profile__', sheetSize=0.3)s = mdb.models['Model-1'].ConstrainedSketch(name='__profile__', sheetSize=0.3) s.sketchOptions.setValues(decimalPlaces=3, viewStyle=AXISYM)s.setPrimaryObject(option=STANDALONE)s.ConstructionLine(point1=(0.0, -100.0), point2=(0.0, 100.0))Python有着较强的逻辑控制语句如if、for、while等,可以通过循环或条件等语句把复杂且重复的操作变得简单易于操作,也是用参数化编程较cae的最大优势。
1.2 如何学abaqus Python 命令Abaqus 是采用Python语言编制而成,在cae中所有的操作都可以通过Python脚本命令完成(注:好像Python并不能完全取代inp文件,一些材料属性的参数好像要用inp才能赋值)。
☆学会用python reader程序Abaqus cae可以自动生成python文件,存放在工作目录的 abaqus.rpy 文件中,每一步c ae操作都会产生相应的python命令。
可以通过simwe网友ck436ck436 编写的python rea der程序实时读取产生的命令,反复揣摩、领会每个命令,很快就会有所提高,对python 的命令有所领悟。
与cae建模相同,Python建模也分为:part、property、assembly、step、ineraction、l oad、mesh、job等模块,具体每个模块中的建模命令可参考Python reader读取的命令学习,我们只需去记忆常用的Python命令。
以下是python reader程序下载地址。
/viewthread.php?tid=808007&highlight=Python/group/ck436goooglemail/files☆通过修改abaqus.rpy建立自己的脚本文件是一条捷径1.3 Abaqus/Python学习资料关于Python的学习资料非常多,如Swaroop, C.H.著沈洁元译的《简明 Python 教程》就是很好的参考资料。
王纯业的《Python学习笔记》也不错,simwe论坛可以下载到。
另外就是Abaqus手册:Abaqus Scripting User's ManualAbaqus Scripting Reference ManualGetting Started with Abaqus: Interactive EditionAbaqus手册真是冗长,只能是根据自己的课题有选择的查阅。
#===========================================================2. Abaqus/Python结构Abaqus的object model分为session、mdb和odb三个objects,session为视图模块、md b为模型数据模块、odb为数据输入输出模块。
每个object下面又有很多命令分支,直到执行到所需要的具体命令。
以下各图选自Abaqus Scripting User's Manual,更多书面的的解释可以参考abaqus手册。
每个object都像一棵树,要执行某个命令就需要按照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. fi ndAt(((0.0475, 0.0, 0.0), ))a.Surface(side1Edges=side1Edges, name='Bottom'),这行语句设置side1Edges所对应的edge为名称'Bottom'的surface的set。
#===========================================================3.模型参数分析技巧Python脚本建模的好处就是可以进行参数分析,即改变我们要分析模型的几何尺寸、材料属性等可变参数,对数值模型进行求解计算,从而对所分析的对象有更全面的了解。
1.对自己要进行参数分析的参数赋值:如几何尺寸或材料属性等a1=20,b1=30,c1=40,命名要符合python规则。
2.cae与Python混合建模,不会的命令就利用cae自动生成,用Python reader记录命令然后进行修改,可以弥补不熟悉Python的缺点;3.逐句修改Python脚本,可以去掉一些不必要的语句并在cae中逐句进行验证。