ANSYS经典界面导入TXT数据

本文详细介绍了如何使用MATLAB以FOPEN+fprintf方法保存单元解或节点解为TXT格式,并演示了如何通过*VREAD命令在ANSYS中导入这些数据。重点讲解了文件格式设置和导入指令的参数配置。
摘要由CSDN通过智能技术生成

在之前的博客ANSYS经典界面保存单元解和节点解介绍了使用*VWRITE将单元解或者节点解保存为TXT数据,这些数据在外部其他软件如MATLAB中计算之后,将会重新导入ANSYS中进行下一步计算使用。导入TXT数据需要使用*VREAD命令,首先看一下MATLAB如何保存为TXT文件。

1、MATLAB保存为TXT文件

主要有三种方法,分别是(1)save函数、(2)dlmwrite函数和(3)fopen+fprintf函数,这里主要介绍第三种方法,这种方法可以保存格式化的文本文件,方便导入。

% 创建文件
fid=fopen('myseqv500.txt','w');%建立文件
% 循环写入数据
for i=1:length(eMu)
    fprintf(fid,'%10.5f,%10.5f,%10.5f\r\n',eMu(i,1),eMu(i,2),eMu(i,3));% 保存小数点后5位
end
fclose(fid);

上面的例子中是保存矩阵数据eMu,eMU有三列数据,%10.5,表示每列数据长度10位,其中5位小数,同一行数据用逗号分隔(逗号分隔再导入ANSYS中的时候不容易出错),一行结束用回车换行。

保存的数据如下格式如下:

2、使用*VREAD导入TXT数据 

 命令:*VREAD,ParR,Fname,Ext,--,Label,n1,n2,n3,NSKIP

其中:

ParR:将要填充数据的数组参数名称

Fname:数据文件名,Ext:文件后缀名,这里是TXT

Label:读取数据的方式,可以是(IJK,JIK,IKJ,JKI,KIJ,KJI或者为空),其中IJK表示先写列再写行,就是往数组中写数据的时候一列一列写,JIK表示按行写数据,这里我们选择按行写数据

n1,n2,n3:对应前面Label读取数据个数,比如JIK读取,此时J:1~n1,I:1~n2,K:1~n3

NSKIP:读取数据需要跳过的行数。

具体如下:

/CLEAR,START
*DIM,TTT,ARRAY,EleNum,3                  !定义2维数组
*VREAD,TTT(1,1),myseqv500,TXT,,JIK,3,EleNum   !读入单元应力
(3F11.5)   !表示一行3个数,每个数格式是11位长度,小数5位

注意:

第一:按行读取数据,选择JIK方式,J表示的是列数,I表示的是行数

第二:读取数据格式是(3F11.5),我们保存的时候是F10.5,为什么这里我们选择F11.5呢,这里推测是包含了逗号占用了一个字宽度,不写成11不然读取的数据就不对。

之后就可以在ANSYS中菜单Parameters->Array Parameters->Define/Edit进行查看,这里我们导入的结果如下和上面的数据是对应的:

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值