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 操作的朋友一眼就能明白,这里不作过多说明。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/503577.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

你觉得外观模式和代理模式的联系和区别是什么?_GoF23种设计模式

UML泛化(继承非抽象类):带空心三角形的直线表示实现(继承抽象类,类实现接口):带空心三角形的虚线表示依赖:类与类之间最弱的关系,依赖可以简单的理解一个类使用了另一个类…

java url headers,Java CloseableHttpResponse.getHeaders方法代码示例

import org.apache.http.client.methods.CloseableHttpResponse; //导入方法依赖的package包/类/*** Makes a HTTP request to the given URL using the given request body,* parameters and HTTP headers. The parameters are used as URL parameters,* but if theres a para…

python tvtk库_PyCharm创建虚拟环境 和 TVTK库的安装

注:示例系统环境:Windows10 64位 Anaconda3:昨天安装TVTK库遇到些麻烦,当时随便将库下到个文件夹安装后(没找到VENV文件夹...),进行测试:from tvtk.tools import tvtk_doc结果显示No module named ‘trait…

反注入技术:防范非法 Call 调用的探讨

DLL 注入是一种常见的技术,用于向目标进程注入外部的动态链接库(DLL),以执行某些特定的操作。这种技术在恶意软件、游戏作弊等场景中被广泛使用,因此,研究和实施一些反注入技术对于提高应用程序的安全性是至…

python中的字体英文名_获取中文字体的英文名字

(方法在分割线后面,前面叙事)今天用了很久电脑,突然就觉得看着Windows下Chrome的字体觉得很不舒服,跟Mac下的差太远了,于是就开始折腾怎么设置浏览器字体。先讲一下流程,我的操作方案是:下载自己喜欢的字体…

java汉字如何通过字节传输,求助,java中怎么用字节流读写汉字

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼import java.io.*;public class ReadAndWrite{public static void main(String args[]){FileInputStream fin;FileOutputStream fout;int ch;try{int b;fin new FileInputStream(FileDescriptor.in);fout new FileOutputStream(F…

python 元类的call总结_Python 类与元类的深度挖掘 I【经验】

上一篇介绍了 Python 枚举类型的标准库,除了考虑到其实用性,还有一个重要的原因是其实现过程是一个非常好的学习、理解 Python 类与元类的例子。因此接下来两篇就以此为例,深入挖掘 Python 中类与元类背后的机制。翻开任何一本 Python 教程&a…

tp5 php跨域,TP5.1解决跨域

TP5.1解决跨域博客说明文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢!介绍在前后端分离开发的时候就会遇到跨域的问题,在本地调试的时候可能不…

python中的pow怎么使用_python中的pow函数怎么用

描述pow() 方法返回 xy(x的y次方) 的值。语法以下是 math 模块 pow() 方法的语法:import mathmath.pow( x, y )内置的 pow() 方法pow(x, y[, z])函数是计算x的y次方,如果z在存在,则再对结果进行取模,其结果等效于pow(x,y) %z注意:…

nginx 配置php版本号,隐藏Apache、nginx和PHP的版本号的配置方法

最近提示说有漏洞,暴露apache、nginx和php的版本号。网上搜了下,整理的方法如下:首先说apache在http.conf文件里添加下面两行,默认是没有的ServerSignature OffServerTokens ProdServerSignature出现在Apache所产生的像404页面、目…

python爬取电子病历_利用 BERT 模型解析电子病历

项目原始地址项目地址本项目改编自此 Github 项目,鸣谢作者。问题描述我们希望能从患者住院期间的临床记录来预测该患者未来30天内是否会再次入院,该预测可以辅助医生更好的选择治疗方案并对手术风险进行评估。在临床中治疗手段常见而预后情况难以控制管…

python获取坐标颜色,python – 根据一组坐标的数据着色地图

您的第一种方法称为Voronoi diagramm对于使用D3库的javascipt,这种图表有一个解决方案为了使这个解决方案完整,我在这里粘贴M.Bostock示例中的代码var w 1280,h 800;var projection d3.geo.azimuthal().mode("equidistant").origin([-98, 38]).scale(1400).transl…

最少交换次数python_leetcode第200周赛第三题leetcode1536. 排布二进制网格的最少交换次数...

leetcode1536. 排布二进制网格的最少交换次数给你一个 n x n 的二进制网格 grid,每一次操作中,你可以选择网格的 相邻两行 进行交换。一个符合要求的网格需要满足主对角线以上的格子全部都是 0 。请你返回使网格满足要求的最少操作次数,如果无…

php常用功能代码,10段PHP常用功能代码(1)_PHP教程

1、使用PHP Mail函数发送Email$to "viralpatel.netgmail.com"; $subject "VIRALPATEL.net"; $body "Body of your message here you can use HTML too. e.g. ﹤br﹥ ﹤b﹥ Bold ﹤/b&#xfe6…

如何避免_如何避免变频器受负载冲击

电工学习网:www.diangon.com关注电工学习网官方微信公众号“电工电气学习”,收获更多经验知识。为了保障变频器的安全运行,避免变频器受负载冲击,必须做好以下几点:㈠尽量保证变频器有充足的加减速时间变频器在开机或升速时&#…

哪种语言 连接 oracle,Go语言连接Oracle(就我这个最全)

综合参考了网上挺多的方案倒腾了半天终于连接好了Go都出来这么多年了还没有个Oracle的官方驱动。。。过程真的很蛋疼。。一度想放弃直接连ODBC首先交代一下运行环境和工具版本:WIN10MINGW64ORACLE INSTANCCLIENT_18_3 x64Jetbrins Goland看完这篇文章,…

补丁程序正在运行_针对微软4月14日更新补丁会导致蓝屏问题的检测及解决方法...

近期,我们接连收到用户求助,在使用电脑过程中会突然出现蓝屏问题,经火绒工程师分析发现,大部分用户出现蓝屏问题,是因为安装了微软于4月14日推送的补丁所致(详见下图)。目前微软方面表示正在调查相关问题。Win10系统蓝…

服务器访问oracle数据库,Oracle数据库的访问——通过不同服务器名对数据库的访问...

服务器端完成配置后,现在客户端可以通过不同的网络服务名配置来访问这个数据库,下面是一个配置示范:EYGLE(DESCRIPTION (ADDRESS_LIST (ADDRESS (PROTOCOL TCP)(HOST 172.16.33.11)(PORT 1521)))(CONNECT_DATA (SERVICE_NAME eygle)))JU…

oracle质数怎么算,借花献佛之使用Oracle sql求质数(笔记)

首先声明一点,文章内容从itpub论坛上看到的,原文链接 http://www.itpub.net/thread-1849398-1-1.html,本文主要是记录下笔记,原文中有更详细的分析。使用sql求质素没什么实用价值,重要的是思路。(一)最简单的方法思路&…

商城html源码_Java开源商城源码推荐,从菜鸡到大神,永远绕不开的商城系统

每个Java程序员,从懵逼菜鸡,再到懵懂菜鸟,再到小鸟,大鸟,最后到技术大神,始终绕不开商城系统,里面蕴含了大量的业务,涉及到了大量的知识点和解决方案。今天锋哥介绍一款Java开源商城…