进行 ABAQUS 开发编程前,首先需要明白 ABAQUS 有限元分析思路和基本流程,以及 Python 基本语法和面向对象编程有基本的认识,下面是 Python 和 ABAQUS 的开发模板:

# 注释说明本程序需要实现的项目内容和功能#

#----------------------------------

#Initialization 初始化导入需要的包

from ABAQUS import *

from abaqusConstant import *

from caeModules import *

#----------------------------------

#Create the model

'''How to create the model'''

#-----------------------------------

#Create the part

'''How to create the part'''

#-----------------------------------

#Create materials

'''How to create the materials'''

'''……'''

开发模板中编写具体功能的实现方法,可实现的功能和 ABAQUS 提供的各操作模块一致:

初始化

创建分析模型

创建几何部件

定义材料属性及截面并与几何模型实现连接

创建装配体

创建分析步

定义场变量和历史变量输出

创建边界及载荷

网格划分

提交求解

结果后处理

写代码的过程中涉及的类、方法等,可以通过宏命令快速了解相关的 api 函数及其作用和功能;也可以通过查看工作路径下的 abaqus.rpy 文件,里面记录整个操作过程的脚本。

1. 层级关系

ABAQUS 基于 Python 扩展出 500 多种对象模型,它们之间存在着不同的层级和包含关系,通常可以分为三大类:Session、MDB 以及 Odb,如图所示为开发包中的各功能模块层级介绍。其中根据颜色分为 Container 容器和 Singular object 单个对象,Container 中还包含有其它对象,而 Singular object 仅为自己。

在 Python 和 ABAQUS 的开发模板中,通过下面的代码实现初始化,其中可以理解为所有。

from ABAQUS import *

from abaqusConstant import *

from caeModules import *

其中

from ABAQUS import *

可以 * 理解为导入 ABAQUS 模块下的所有公共对象。通过这一命令,我们才能使用 mdb.*、session. * 这些命令,这是面向对象编程的基本思路。

from abaqusConstant import *

可以理解为导入 ABAQUS 中用到的所有符号常量,通常是整型或者浮点变量,但是为了能够清晰的表明代码的含义都以大写英文单词出现,这与 C 语言中定义的符号常量意义差不多,比如下面的代码中的 THREE_D 和 DEFORMABLE_BODY:

testPart=testModel.Part(name='Test',dimensionality=THREE_D,type=DEFORMABLE_BODY)

定义我们建立的模型是三维可变形实体模型,是一类专有名词,在 ABAQUS 中有特定的含义,如果不事先通过 abaqusConstant 导入则使用该语句将会报错。

from caeModules import *

这一句实现 ABAQUS 窗口中所有对象模块的导入。一般而言,有这三句命令,初始化工作基本完成。

2. 建模、材料等

如何实现建模、材料属性编辑以及其它各项操作呢。为了能够方便的介绍相关模块内容,我们直接使用宏命令来进行脚本的录制,直接快速。

首先是创建分析模型,通常默认为“Model-1”,我们也可以自定义,如果不清楚如何自定义,可以通过宏进行监控便于代码的学习,这里创建 Model 并自定义名称的宏代码如图所示(红色框)。

所以我们在直接导入基础包之后,可以通过 mdb.models.changeKey(fromName='Model-1',toName='MyTestModel') 实现创建 Model,编写代码如下所示。

#----------------------------------

#Create the model

mdb.models.changeKey(fromName='Model-1', toName='MyTestModel')

myModel=mdb.models['MyTestModel']

之后创建分析部件,这里基于 ABAQUS 的 part 建模功能完成,我们拉伸创建一个长方体,察看宏代码如图所示(红色框)。

筛选简化后将其转为如下代码行。具体代码的含义,熟悉整个 ABAQUS 操作的朋友一眼就能明白,这里不作过多说明。

请您登录后阅读全文, 登录 或者 注册

python工业自动化仿真_ABAQUS 中基于 Python 脚本语言开发实现仿真自动化操作相关推荐

  1. Perl,Python,Ruby,Javascript 四种脚本语言比较

    Perl 为了选择一个合适的脚本语言学习,今天查了不少有关Perl,Python,Ruby,Javascript的东西,可是发现各大阵营的人都在吹捧自己喜欢的语言,不过最没有争议的应该是Javascr ...

  2. python之禅 中文_《Python之禅》中对于Python编程过程中的一些建议

    <Python之禅>中对于Python编程过程中的一些建议 来源:中文源码网    浏览: 次    日期:2018年9月2日 [下载文档:  <Python之禅>中对于Pyt ...

  3. 中软国际python机试题_【中软国际c语言开发笔试试题及答案】 - 面试网

    中软国际c语言开发笔试试题及答案: 一 选择 1.在一个C程序中( ) [A] main函数必须出现在所有函数之前 [B] main函数可以在任何地方出现 [C] main函数必须出现在所有函数之后 ...

  4. 基于Lua脚本语言的嵌入式UART通信的实现

    随着变电站智能化程度的逐步提高,对温度.湿度等现场状态参量的采集需求也越来越多.就目前而言,在现场应用中,此类设备多采用RS232或RS485等UART串行通信方式和IED(Intelligent E ...

  5. java lua脚本_请问该如何在Java中使用Lua脚本语言?

    如何在Java中使用Lua脚本语言是本文要介绍的内容,主要是来学习LUA脚本语言在JAVA中如何来使用,Lua就不说了, 现在比较热门, 语法也很简单. 为了在Java中调用, 折腾了比较长的时间, ...

  6. java lua_请问该如何在Java中使用Lua脚本语言?

    大话西游666 如何在Java中使用Lua脚本语言是本文要介绍的内容,主要是来学习LUA脚本语言在JAVA中如何来使用,Lua就不说了, 现在比较热门, 语法也很简单. 为了在Java中调用, 折腾了 ...

  7. java lua_如何在Java中使用Lua脚本语言

    展开全部 如何在Java中使用Lua脚本语言是本文要介32313133353236313431303231363533e59b9ee7ad9431333335343933绍的内容,主要是来学习LUA脚 ...

  8. Script.NET脚本语言开发工具2.1.1版本发布,支持Ruby脚本的开发、调试等功能

    Script.NET是蓝蚂蚁工作室开发的一套用于Tcl/Python/Ruby/Lua/NSIS 等脚本语言开发的集成开发环境,刚刚发布的2.1.1版本新增了Ruby脚本的支持,可以支持Ruby脚本的 ...

  9. 基于SpringBoot+Mybaits框架开发的OA自动化办公系统Java源码

    源码介绍 办公自动化(OA)是面向组织的日常运作和管理,员工及管理者使用频率最高的应用系统,极大提高公司的办公效率.基于SpringBoot+Mybaits框架开发的OA自动化办公系统Java源码,基 ...

最新文章

  1. 哈夫曼树的java实现_java实现哈夫曼树
  2. Dickey-Fuller检验+迪基-福勒检验
  3. GitHub 的前世今生
  4. cxf发布rest风格的webService
  5. 非线性回归模型(part1)--神经网络
  6. osg节点访问和遍历
  7. 图像控制点 形变_基于控制点的图象变形方法及其应用
  8. TCP/IP协议、DoD模型、OSI模型
  9. Java se 基础
  10. 一定要计算机专业才能进华为吗,想去华为一定要报考这三所大学
  11. Android NDK——实战演练之使用Android Studio引用so库,jar包、module,aar以及导入Eclipse项目并使用JNI的正确姿势(一)
  12. 实现 RadioButtonList 单选按钮组设置及横向布局
  13. 解决移动端、苹果端、安卓端点击视频自动全屏问题的方法
  14. “全民创业”是新时代的上山下乡
  15. C++批量修改文件后缀名(提供多种方法)
  16. mysql数据库名词术语_【千寻】MySQL数据库名词注释(持续更新)
  17. 搭建Gitea和Drone环境
  18. 辐射强度、辐亮度、辐照度——一文搞定
  19. Win10家庭版找不到组策略gpedit.msc怎么办
  20. 贩妖记 第六十六章,水底大鱼

热门文章

  1. 牛客15187 分元宵 (快速幂)
  2. 牛客网--牛牛的闹钟
  3. pythonfor循环列表排序_Python使用for循环对列表内元素进行排序方法
  4. akka kafka java_当使用websocket连接时,使用akka-stream-kafka从kafka主题获取最后一条消息...
  5. Android之圆角矩形
  6. Android之Fragment(一)
  7. 《底层逻辑》--思维导图
  8. Java加密与解密的艺术~SHA算法实现
  9. echart 三维可视化地图_揭秘720°三维全景3D实景地图制作技术
  10. android默认exported_android:exported 属性详解-阿里云开发者社区