Python语言在Abaqus中的应用---2.2.3面向对象编程与Abaqus脚本接口

面向对象编程的基本概念包括:
1)对象(objects)
2)类(class)
3)属性(property)
4)继承(inheritance)
5)多态性(polymorphism)
6)方法(methods)
7)成员(members)

本节介绍Abaqus脚本接口的方法和成员
一、Abaqus脚本接口中的方法
大多数的Abaqus脚本接口命令都是方法。如:

session.viewports["Viewport-1"].setValue(width = 50)

本行代码setValue方法是Viewport对象的一种方法

myViewport = session.Viewport(name = "newViewport", width = 100, height = 100)

本行代码使用构造函数Viewport创建了Viewport对象,并将其赋予变量myViewport
有些对象不包含构造函数,此时创建的第一个对象将成为另一个对象的成员。如:创建部件(Part)的几何形状时,Abaqus将首先创建顶点,顶点的坐标将保存为Vertex对象,而Vertex对象是Part对象的成员。如:

print(mdb.models["Model-1"].parts["Part-1"].vertices[0].pointOn)

本行代码将输出部件Part-1第1个顶点的坐标

二、Abaqus脚本接口中的成员
每个对象都包含方法(method)成员(member)
成员可以认为是对象的某个属性(property),使用界定符.可以访问对象的成员。如:

myWidth = session.viewports["myViewport"].width

width是Viewport对象的一个成员
调用Python语言中的object.__members__方法可以列出对象的所有成员

sessoin.viewports["myViewport"].__members__

本行代码将列出Viewport对象中的所有成员
每个实例对象的成员值一般均不相同,如不同视口的width成员值一般不同
Abaqus对象的成员具有只读属性(read-only),因此不允许直接赋值给成员值,但是可用setValues()方法改变成员值

import section
shellSection = mdb.models["Model-1"].HomogeneousShellSection(
name = "Steel Shell", thickness = 1.0, material = "Steel")
print("Original shell section thickness =", shellSection.thickness)
shellSection.setValues(thickness = 2.0)
print("Final shell section thickness =", shellSection.thickness)

第4行代码调用setValues()方法来修改截面厚度
下面给出Abaqus脚本接口的构造函数、方法和成员的使用方法实例

#创建Section对象
mySection = mdb.models["Model-1"].HomogeneousSolidSection(name = "solidSteel", material = "Steel", thickness = 1.0)
#使用type()函数显示对象的类型
print("Section type =", type(mySection))
#列出对象的所有成员
print("Section members are ", mySection.__members__)
#列出对象的所有方法
print("Section methods are ", mySection.__methods__)
#输出每个成员的值
for member in mySection.__members__:
	print("mySection.{0} = {1}".format(member, getattr(mySection, member)))

创建对象后,还可以调用对象的某些方法来输入或修改数据
如:调用addNodes和addElements方法为部件添加节点和单元;
调用FieldOutput对象的addData方法添加场变量输出数据

猜你喜欢

转载自blog.csdn.net/qq_35412059/article/details/105599412