ANSYS|读取和写入txt文件

被ansys读取和写入的命令麻烦了好久,写写我的学习心得,理解的不深,也不一定全对,献丑了。

比如对一个简支梁施加外部荷载,荷载时程数据在txt文件中。因为ansys读入文件对文件数据的格式要求很严格,所以这里结合matlab,利用matlab生成所需的荷载数据。

matlab写入数据到txt

matlab写入数据到txt的方法有很多,假如要将4001X1的向量F,写入txt,则可以采用以下命令:

  • fprintf
path_write='H:\cch_tianqiao_load\';   
name_write=strcat(path_write,'load_txt_1.txt');
fid=fopen(name_write,'wt');
fprintf(fid,'%12.6f\n',F);    %写入格式
fclose(fid);
type H:\cch_tianqiao_load\load_txt_1.txt   %查看

fprintf写入的数据是小数格式。

  • save
save H:\cch_tianqiao_load\load_txt_1_37.txt F -ascii 
save('H:\cch_tianqiao_load\load_txt_1_37.txt','F','-ascii')
type('H:\cch_tianqiao_load\load_txt_1_37.txt')

注意ansys读取的数据必须是ascii形式,所以save命令的格式选择-ascii。
save命令默认写入的是科学计数法形式,如:1.0813328e+03。

如果是向量形式,以上两种方法都可以使用。
如何是写入矩阵,则我一般不采用fprintf命令,而是采用下面的命令。

  • save
    用法和上面一样,写入的数据仍然是科学计数法形式。
  • dlmwrite
dlmwrite('H:\cch_tianqiao_load\load_txt_1_37.txt',FF,'precision','%12.6f');

dlmwrite可以定义写入的格式,具体请查看help文档,注意该命令写入的数据以“逗号,”隔开,如果以'%12.6f'写入txt,则下文ansys的读取命令要写成nF13.6


ansys中*vread命令读取txt数据

ansys读取和写入数据都需要以宏文件形式进行。
读取数据采用*vread命令,详细用法,请参见:https://wenku.baidu.com/view/807b2f22bcd126fff7050bf1.html?re=view。

  • 读入向量数据
    如果data.txt中向量为(mx1)的维度,则读取方法为:
  • 首先,定义一个(mx1)的数组A,
  • 然后,用*vread命令:
*vread,A(1,1),H:\cch_tianqiao_load\data,txt,,jik,1,m
   (1F12.6)

其中,
- A(1,1)表示将数据存入数组A,存储开始的位置为(1,1),即第一行第一列。
- H:\cch_tianqiao_load\data表示路径名和文件名,不含后缀,要小于248个字符。

  • txt为文件拓展名,即后缀。
  • 注意后缀后面有一个空。
  • jik为数据读取方式,jik表示txt文件数据的格式与数组的格式一致。
  • 后面的1,m表示,列为1,行为m。
  • (1F12.6)表示txt里面每行一个数据,格式为F12.6。前面采用matlab生成数据也是为了这里写格式方便准确。
  • 读入矩阵数据
    如果data.txt中向量为(mxn)的维度,则读取方法为:
  • 首先,定义一个(mxn)的数组A,
  • 然后,用*vread命令:
*vread,A(1,1),H:\cch_tianqiao_load\data,txt,,jik,n,m
   (nF12.6)

其中,
- A(1,1)表示将数据存入数组A,存储开始的位置为(1,1),即第一行第一列。
- H:\cch_tianqiao_load\data表示路径名和文件名,不含后缀,要小于248个字符。

  • txt为文件拓展名,即后缀。
  • 注意后缀后面有一个空。
  • jik为数据读取方式,jik表示txt文件数据的格式与数组的格式一致。
  • 后面的n,m表示,列为n,行为m。
  • (nF12.6)表示txt里面每行n个数据,格式为F12.6。如果txt里面有10个数据,格式不一样,则(1F12.6,9F10.4)表示每行10个数据,第一个格式为F12.6,后9个格式为9F10.4

ansys读取txt数据

示例如下:

mm=4001
nn=10
!创建宏文件
*create,my_read_load,mac
   *dim,w_load1,array,mm,nn    !定义mmxnn数组w_load1
   *vread,w_load1(1,1),H:\cch_tianqiao_load\load_txt_1,txt,,jik,nn,mm
   (nnF12.6)
*end
!结束宏文件
!运行宏文件
my_read_load
*status,w_load1  !显示数据

你可能感兴趣的:(ANSYS|读取和写入txt文件)