abaqus python二次开发攻略_Python 进行 Abaqus 二次开发的基础知识
1、Python 一切皆对象的特点
Object(对象):可以是数据,可以是函数,也可以是包含若干数据和函数的打包整体。对象可以包括成员和方法。
Member(成员):对象包含的子对象,子对象可以是数据,也可以是下一层级的对象。
Method(方法):对象本身包含的对本身数据的操作函数。
Constructor(构造函数):一类特殊的方法,用于创建新的对象。
Class(类):创建对象的模板,本质也是一种对象,但是更强调它的模板性。
Module(模块):已经写好的类,对象,方法或者函数等等的集合,通过一系列操作完成某种特定的功能,module的作用在于方便代码复用。
2、Python 在 Abaqus 二次开发的特殊之处
(1)Database(数据库)
带有强烈abaqus特征的对象,比较典型的database就是mdb,odb。
根据 ABAQUS 6.14.4的帮助文档6.1.1 An overview of the Abaqus object model
(2)Repository(容器)
负责同一类型的对象的存储,可以视为python中的字典,只不过这个字典专门用于存储某一类对象,比如mdb.models中存储了当前环境下所建立的所有模型对象,通过对象的键值,可以实现对于特定对象的调用。
通过mdb.models.values()和mdb.models.keys()可以得到容器内已经定义的对象信息。key对应对象名(键),value对应对象(值)。
(3)声明使用(声明使用)
通过在脚本开头声明导入某类模块,从而获得该模块中对象、成员和方法的使用权(实际上新的session被打开时,所有模块都被装载了,大部分声明是为了可读性与完备性,但有一些声明是不可以缺少的。
from abaqus import *
保证脚本可以使用abaqus中基本的object,同时保证脚本可以使用默认的模型数据库(mdb),在abaqus中以mdb标识
from abaqusConstants import *
保证Abaqus中定义的各个符号常量可以被脚本正确获取
from odbAccess import *
结果文件后处理
from visualization import *
涉及可视化操作则需要
import sketchimport partimport assemblyimport materialimport visualization
使用各个模块
(4)小括号和中括号的应用
在abaqus中,同样名称的单词(如这里的material),当它首字母大写(通常作为单数)出现时一般是构造函数(Constructor),而当它全小写(通常作为复数)出现时,它一般是类似字典的容器(abaqus里叫做repository)。显然构造函数后面需要的是输入参数(arguments),因此是圆括号,而字典类数据库后面需要的是指示符(index),因此是方括号。
(5)没有头绪的时候
在遇到某个特定操作不知道如何在脚本中实现时,这里给出一个可供参考的思路:首先确定基本的父级对象,比如想知道如何构造一个具体的材料模型,那父级对象就是mdb.models['myModel'],那么接下来通过mdb.models['myModel'].__methods__我们可以获得model对象中定义的所有方法,根据关键字我们可以找到Material这个构造函数,随后我们通过 mdb.models['myModel'].Material('NewMat')来新建一个material对象‘NewMat’,随后通过mdb.models['myModel'].materials['NewMat'].__methods__我们可以看到刚刚建立的材料对象都有哪些方法可以使用,就能知道具体可以定义那些材料,比如找到了Elastic这个构造函数,那么再使用mdb.models['myModel'].materials['NewMat'].Elastic.__doc__就能够知道Elastic这个构造函数的相关操作,如果描述不足的话,我们可以根据所获得的信息到Reference Manual里去查找更具体的信息。这样信息查找的来源可以变得更加丰富。最常见的基础父级对象是mdb,session还有mesh,从这几个对象出发,再加上abaqus对于对象和方法的命名很少使用缩写,同时结合参考手册,是能够确定大多数操作所对应的脚本实现语句的。
主要参考:
https://blog.csdn.net/young2203/article/details/81937268?utm_medium=distribute.pc_relevant.none-task-blog-baidujs-1
abaqus python二次开发攻略_Python 进行 Abaqus 二次开发的基础知识相关推荐
- 前端开发攻略,微信公众号前端开发教程
毕业工作一年之后,有了转行的想法,偶然接触到程序员这方面,产生了浓厚且强烈的兴趣,开始学习前端,成功收割了大厂offer,开始了我的程序员生涯. 在自学过程中有过一些小厂的面试经历,也在一些小型的互联 ...
- abaqus python二次开发攻略_基于CAE二次开发进行弹簧批量建模
一. 为什么要进行弹簧批量建模 当一个公司或者学者从事科研任务时,往往通过有限元进行建模分析,建模的时间通常与工作效率挂钩.例如ABAQUS/CAE建模,想必很多老用户都有某种共同的感受,那就是实体模 ...
- python京东抢购手机攻略_Python实现自动上京东抢手机
本文实例为大家分享了python自动上京东抢手机的具体代码,供大家参考,具体内容如下 上次抢荣耀V9,被京东给恶心到了,所以就写了个简单的Python来自动抢V9.虽然用的是比较蠢的方法,但觉得还是有 ...
- python中字符串是对象吗_Python中关于字符串对象的一些基础知识
Python的字符串被划分为不可变序列的类别,意味着这些字符串所包含的字符存在从左至右的位置顺序,并且它们不可以在本地进行修改. 基本操作 字符串可以通过+操作符进行合并,可以使用*运算符进行重复. ...
- TI Davinci DM6446开发攻略——开发环境搭建
TI DAVINCI DM6446的开发环境搭建不像三星S3C2410,S3C2440,ATMEL的AT91SAM9260之类的单核ARM那么简单,因为DM6446还有DSP端的开发环境,以及双核之间 ...
- I Davinci DM6446开发攻略——开发环境搭建
TI DAVINCI DM6446的开发环境搭建不像三星S3C2410,S3C2440,ATMEL的AT91SAM9260之类的单核ARM那么简单,因为DM6446还有DSP端的开发环境,以及双核之间 ...
- 2019-1-30手把手教你怎么用AbaqusGUI二次开发攻略
2019年1月30日13:05:51 手把手教你怎么用Abaqus进行GUI二次开发攻略 1.前言: 最近研究了下GUI二次开发,做了如下几个插件,学到了一些东西特地就跟大家做个分享,其中插件注册到了 ...
- Davinci DM6446开发攻略——LINUX GPIO驱动源码移植
一. DM6446 GPIO的介绍 说到LINUX 驱动移植,没有移植过的朋友,或刚刚进入LINUX领域的朋友,最好去看看<LINUX 设备驱动程序>第三版,有个理 ...
- 图像识别DM8127开发攻略——开发环境搭建
经过两年多的爆炸性出货(针对我们这种小公司),目前稍微停顿了一下,现在难得有点时间继续写自己的博客,其实自己一直想静下心来做点东西,可惜做TI DAVINCI(ARM+DSP)这方面的人不太好招,本人 ...
最新文章
- 计算机软件uml,计算机软件——UML旅游管理系统
- 0016-Avro序列化反序列化和Spark读取Avro数据
- Mac OS 通过配置窗口来连接远程主机
- SQL Server基本函数
- linux 抓包工具_03-Python爬虫工程师-抓包工具
- mysql 数据库军规_用尽洪荒之力整理的Mysql数据库32条军规(转)
- 位图转换G代码小程序
- Filter中获取传递参数(解决post请求参数问题)
- webrtc与stunserver、turnserver建立连接花费时间十秒左右
- 汽车维修行业开发微信小程序的必要性
- If this is an unexpected issue and persists you can inspect it running `pod repo update --verbose`
- win10+laravel8+PHP+ElasticSearch+Kibana+高亮 接口搜索
- 思科设备三层交换配置路由实现互通
- 空间数据库之矢量数据上载方法
- pixfllow光流传感器数据获取及悬停程序编写
- linux搭建个人网盘,Linux下使用nextcloud搭建个人网盘
- QT使用openGL绘制一个三角形
- 计算机专业择偶标准,爱情句子:说来说去我的择偶标准也就一个字——你
- 学习笔记(一):Java中Stream的基本用法和相关API详解
- Linux学习笔记2(root密码忘记重置,Linux系统更新yum源,YUM安装卸载,常见故障排除,vim,用户/组)