abaqus安装教程(abaqus安装教程分享)
这次推送聚焦于解决采用python向abaqus里导入txt、dat数据的问题(dat文件只需要将txt文件的后缀名改为dat就可以生成dat文件),abaqus基于python读入txt、dat数据主要有read()、readlines()、readlines()、numpy.loadtxt()函数,导入的txt文件放在工作目录temp中。
1. read() 函数
可以一次性读取txt文件中的内容,并以字符串的结果返回来,如下列代码所示:
with open(“xyplot.dat”, “r”) as f: #打开文件
data = f.read() #读取文件
print(data)
其中,
- r是读取人工书写的数据,书写的时候是什么样子,读出来就是什么样。
- rb是读取二进制文件,非人工书写的数据,如.jpeg等这些。
将该命令在abaqus/cae的命令行接口(command line interface, cli)运行后,结果如图1所示(图中#注释后的乱码为作者安装abaqus采用英文版,没有汉化所致):
图1 read()读取txt、dat数据到abaqus
需要注意的是,以上data数据类型都是为字符,如下图所示。调用data[0]为字符,因此data[0][0]也为字符,以及后续的data[20][0],data[60][0]等也都为字符。
2. readline()函数
readline()函数只读取txt、dat文本第一行的内容,并以字符串的形式返回结果,其代码如下所示
with open(“xyplot.dat”, “r”) as f: # 打开文件
data = f.readline() # 读取文件
print(data)
将该命令在abaqus/cae的命令行接口(command line interface, cli)运行上述代码后的显示结果为图2,很明显只读进去了第一行的内容。
图2 readline()读入txt、dat文件到abaqus
3. readlines()
readlines函数能读取txt、dat文本的所有内容,以数列的格式返回结果,并且配合for in使用,其代码如下所示:
with open(“xyplot.dat”, “r”) as f:
for line in f.readlines():
line = line.strip(‘n’) #去掉列表中每一个元素的换行符
print(line)
将该命令在abaqus/cae的命令行接口(command line interface, cli)运行上述代码后的显示结果为图3。读取data[0]、data[1]、data[1][1]、data[1][0]、data[1][2]、data[1][4]、data[1][0:4]的结果见图3,大家可以看到其中的规律,特别是上述读取的都是字符,如果想要得到数据类型,特别是有利于后面的循环读取,需要将字符类型转化为数据类型,这里采用float(data[1][0])将字符转化为数据类型。
图3 readlines()读入txt、dat文件到abaqus
读写txt文件时需要选择r、w、rb、wb等的模式,其释义如图4所示:
图4 python读写txt、dat数据到abaqus的模式解释
4.numpy.loadtxt()
abaqus里已经自带安装了numpy,无需要像python需要额外安装numpy。
import numpy as np
b=np.loadtxt(‘coordinates.txt’,delimiter = ‘,’,dtype=np.float32)
print(b)
- 第一行代码主要为将numpy简化等效为np,为了后续方便,比如np.loadtxt可直接等效为numpy.loadtxt,但长度是一样的。
- 第二行代码读入coordinates.txt(图5),delimiter指定读取文件中数据的分割符,在这里为逗号,;而后面dtype为指定读取后数据的数据类型为float32类型。需获取该txt文件,可在公众号里回复:coordinates.txt
- 第三行代码在abaqus里显示b的内容如图6所示,导入进去的b为一个array,其中忽略了逗号。在abaqus里进行调用b的结果如图7所示。注意到,b[0]为array中的第一行,b[1]为array中的第二行,b[0][0]为array中的第一行中的第一个元素,b[0][1]为array中的第一行中的第2个元素,b[1][0]为array中的第2行中的第一个元素,b[1][1]为array中的第2行中的第2个元素
图5 coordinates.txt的内容
图6 abaqus显示读取coordinates.txt的内容
图7 abaqus里调用coordinates.txt的内容
说明:
- 以上python命令流既可以在abaqus的命令行接口(command line interface, cli)直接运行,也可以通过在abaqus/cae的file菜单下,选择run script…运行以上命令流保存的py脚本,两种运行方式的运行结果完全相同。