许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  Python语言在Abaqus中的应用:2.2.2 Abaqus脚本接口数据类型(数组、布尔类型和序列)

Python语言在Abaqus中的应用:2.2.2 Abaqus脚本接口数据类型(数组、布尔类型和序列)

阅读数 8
点赞 0
article_banner

Abaqus 脚本 接口的数据类型分为:
1、符号常数(symbolic constant)
2、库(repository)
3、数组(array)
4、布尔类型(Boolean)
5、序列(sequence)

前一篇文章讲述了符号常数和库

   本篇来讲一下其余三个数组、布尔类型和序列
一、数组(arrays)

   数组是一个被索引的容器,与序列中的数组类似。

   如:节点数组:MeshNodeArrays、单元数组:MeshElementArrays

二、布尔类型(Booleans)
Python语言中的布尔类型为<type ‘bool’>

   布尔类型定义了两种布尔值:True和False

   Abaqus脚本接口中也定义了布尔类型的对象(Boolean objects)

   由符号常数对象(SymbolicConstant objects)派生而来,其值为ON和OFF

   如:noPartsInputFile是Model对象的成员,它表示是否将部件和装配件信息写入INP文件,类型为<type’AbaqusBoolean’>

   布尔类型的使用方法和符号常数的类似,由于布尔类型包含判断关系,可以用来测试布尔类型的值

   如:视口对象中包含成员titleBar,它属于布尔类型,用来确定是否显示标题栏

if vp.titleBar:    #vp代表一个视口对象
	print("The title bar will be displayed.")

第1行代码判断vp.titleBar是否为正,如果判断结果为ON,则执行第2行代码

   编写脚本时,读者一定要避免出现不确定的布尔值

newModel = mdb.ModelFromInputFile(name = "beamTutorial", 
inputFileName = "Deform")
newModel.setValues(noPartsInputFile = False)
print(newModel.noPartsInputFile)

第1行代码调用构造函数ModelFromInputFile创建名为beamTutorial的新模型,并赋予给变量newModel

   第2行代码用方法setValues设置noPartsInputFile为False

   第3行代码输出noPartsInputFile的布尔值

   第4行代码输出结果为OFF,但是代码中尾明确表示是否写入部件和装配信息,阅读脚本时容易引起混淆

   为了避免出现混淆现象,可以根据不同的布尔值,使用分支判断语句执行不同的代码,测试布尔值应该避免出现0、OFF或False等特征值

if newModel.noPartsInputFile:
	print("Input file will be written without parts and assemblies")
else:
	print("Input file will be written with parts and assemblies")

第1行代码判断newModel.noPartsInputFile的布尔值,如果判断结果为ON,则执行第2行代码,如果为OFF,则执行第4行代码。
附:新版本的Abaqus软件没有了Abaqus布尔类型,读者需要使用Python语言中的布尔类型

三、序列(sequences)

   Abaqus脚本接口某些方法的参数是由浮点型或整型数据组成的序列。

   如:在Abaqus/CAE的Property模块中,定义随温度变化的弹性模量和泊松比的对话框如图所示:
在这里插入图片描述

   abaqus.rpy或PythonReader软件将记录与对话框等效的下列命令:

mdb.models["Model-1"].materials["Steel"].Elastic(temperatureDependency
= ON, table = ((200000000000.0, 0.3, 0.0), (210000000000.0, 0.3, 100.0), 
(220000000000.0, 0.3, 200.0), (230000000000.0, 0.3, 300.0)))

此外,Abaqus脚本接口还定义了由相同类型对象组成的专门序列,包括:

   1)由几何对象(顶点、边等)组成的GeomSequence序列

   2)由节点或单元组成的MeshSequence序列

   3)由表面组成的SurfSequence序列

   下列代码通过对矩形草图(70×70)进行拉伸(厚度为20),创建了名为Switch的三维变形体部件:

from abaqusConstants import *
mdb.Model("Body")
mySketch = mdb.models["Body"].ConstrainedSketch(name = "__profile__", 
sheetSize = 200.0)
mySketch.rectangle(point1 = (0.0, 0.0), point2 = (70.0, 70.0))
switch = mdb.models["Body"].Part(name = "Switch", dimensionality = 
THREE_D, type = DEFORMABLE_BODY)
switch.BaseSolidExtrude(sketch = mySketch, depth = 20.0)

下面介绍在命令行接口中查询Switch对象的成员和类型的方法

   1)调用__members__方法查询三维部件Switch的所有成员

print(mdb.models["Body"].parts["Switch"].__members__)

2)显示edges序列的相关信息:

print("Single edge type = ", type(switch.edges[0]))

本行代码将输出switch对象第1条边的类型。如果只有一条边,输出类型为 Edge  

print("Edge sequence type = ", type(switch.edges))

本行代码将输出switch所有边的类型,输出结果为EdgeArray

print("Members of edge sequence =", switch.edges.__members__)

本行代码将输出边的所有成员,结果为pointsOn

print("Number of edges in sequence =", len(switch.edges))

本行代码将输出Edges序列中元素的个数,输出结果为12

   下列有几种方法查询对象的属性

   1)调用type()方法查询数据类型

   2)调用__members__方法查询所有成员

   3)调用__methods__方法查询方法

   4)调用del方法删除对象


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删


相关文章
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空