python工业自动化仿真_ABAQUS 中基于 Python 脚本语言开发实现仿真自动化操作
进行 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 脚本语言开发实现仿真自动化操作相关推荐
- Perl,Python,Ruby,Javascript 四种脚本语言比较
Perl 为了选择一个合适的脚本语言学习,今天查了不少有关Perl,Python,Ruby,Javascript的东西,可是发现各大阵营的人都在吹捧自己喜欢的语言,不过最没有争议的应该是Javascr ...
- python之禅 中文_《Python之禅》中对于Python编程过程中的一些建议
<Python之禅>中对于Python编程过程中的一些建议 来源:中文源码网 浏览: 次 日期:2018年9月2日 [下载文档: <Python之禅>中对于Pyt ...
- 中软国际python机试题_【中软国际c语言开发笔试试题及答案】 - 面试网
中软国际c语言开发笔试试题及答案: 一 选择 1.在一个C程序中( ) [A] main函数必须出现在所有函数之前 [B] main函数可以在任何地方出现 [C] main函数必须出现在所有函数之后 ...
- 基于Lua脚本语言的嵌入式UART通信的实现
随着变电站智能化程度的逐步提高,对温度.湿度等现场状态参量的采集需求也越来越多.就目前而言,在现场应用中,此类设备多采用RS232或RS485等UART串行通信方式和IED(Intelligent E ...
- java lua脚本_请问该如何在Java中使用Lua脚本语言?
如何在Java中使用Lua脚本语言是本文要介绍的内容,主要是来学习LUA脚本语言在JAVA中如何来使用,Lua就不说了, 现在比较热门, 语法也很简单. 为了在Java中调用, 折腾了比较长的时间, ...
- java lua_请问该如何在Java中使用Lua脚本语言?
大话西游666 如何在Java中使用Lua脚本语言是本文要介绍的内容,主要是来学习LUA脚本语言在JAVA中如何来使用,Lua就不说了, 现在比较热门, 语法也很简单. 为了在Java中调用, 折腾了 ...
- java lua_如何在Java中使用Lua脚本语言
展开全部 如何在Java中使用Lua脚本语言是本文要介32313133353236313431303231363533e59b9ee7ad9431333335343933绍的内容,主要是来学习LUA脚 ...
- Script.NET脚本语言开发工具2.1.1版本发布,支持Ruby脚本的开发、调试等功能
Script.NET是蓝蚂蚁工作室开发的一套用于Tcl/Python/Ruby/Lua/NSIS 等脚本语言开发的集成开发环境,刚刚发布的2.1.1版本新增了Ruby脚本的支持,可以支持Ruby脚本的 ...
- 基于SpringBoot+Mybaits框架开发的OA自动化办公系统Java源码
源码介绍 办公自动化(OA)是面向组织的日常运作和管理,员工及管理者使用频率最高的应用系统,极大提高公司的办公效率.基于SpringBoot+Mybaits框架开发的OA自动化办公系统Java源码,基 ...
最新文章
- 哈夫曼树的java实现_java实现哈夫曼树
- Dickey-Fuller检验+迪基-福勒检验
- GitHub 的前世今生
- cxf发布rest风格的webService
- 非线性回归模型(part1)--神经网络
- osg节点访问和遍历
- 图像控制点 形变_基于控制点的图象变形方法及其应用
- TCP/IP协议、DoD模型、OSI模型
- Java se 基础
- 一定要计算机专业才能进华为吗,想去华为一定要报考这三所大学
- Android NDK——实战演练之使用Android Studio引用so库,jar包、module,aar以及导入Eclipse项目并使用JNI的正确姿势(一)
- 实现 RadioButtonList 单选按钮组设置及横向布局
- 解决移动端、苹果端、安卓端点击视频自动全屏问题的方法
- “全民创业”是新时代的上山下乡
- C++批量修改文件后缀名(提供多种方法)
- mysql数据库名词术语_【千寻】MySQL数据库名词注释(持续更新)
- 搭建Gitea和Drone环境
- 辐射强度、辐亮度、辐照度——一文搞定
- Win10家庭版找不到组策略gpedit.msc怎么办
- 贩妖记 第六十六章,水底大鱼
热门文章
- 牛客15187 分元宵 (快速幂)
- 牛客网--牛牛的闹钟
- pythonfor循环列表排序_Python使用for循环对列表内元素进行排序方法
- akka kafka java_当使用websocket连接时,使用akka-stream-kafka从kafka主题获取最后一条消息...
- Android之圆角矩形
- Android之Fragment(一)
- 《底层逻辑》--思维导图
- Java加密与解密的艺术~SHA算法实现
- echart 三维可视化地图_揭秘720°三维全景3D实景地图制作技术
- android默认exported_android:exported 属性详解-阿里云开发者社区