欢迎阅读水哥原创文章,历年原创文章请点击:
更多水哥原创课程,请点击:
我们在采用APDL输出数据到文件时,有时候可能需要将输出文件的名称进行参数化,方便我们联合其他语言比如Matlab\Python进行仿真。
本文主要介绍如何实现输出文件名称的参数化。
APDL宏文件参数化的传递主要通过在宏文件中定义ARG1~ARG19变量符号方式来进行,总体思路如下:
!定义宏文件内容
*Create,WriteData,mac
Filename=ARG1
*Cfopen,Filename,txt
!数据写出相关命令
......
*Cfclose
*End
!运行宏文件,传入参数
Myfile='AAdata'
WriteData,Myfile
注意,在APDL中,字符变量的定义一般是用单引号,双引号无效,且注意加上路径的文件名称字符长度不要超过264,否则会无法识别!
下面以某个数据的写出演示如何使用
一、输出数据的定义
*Dim,testA,array,100,4
*do,i,1,4
*do,j,1,100
testA(i,j)=i*j
*enddo
*enddo
二、将数组testA按照行输出,共输出100个文件,每个文件的名称后缀名为相应的行号。
!构建写出函数
*Create,WriteData,mac
filename=ARG1
!写出数据的行号
HG=ARG2
*Cfopen,filename,txt
d1=testA(HG,1)
d2=testA(HG,2)
d3=testA(HG,3)
d4=testA(HG,4)
*Vwrite,d1,d2,d3,d4
(4F20.5)
*Cfclose
*END
!写出数据
*do,i,1,100
filename='D:/ANSYS14/Data/testA_%i%'
*do,j,1,4
WriteData,filename,i
*enddo
*enddo
截图如下:
三、将数据按列输出,共4个文件,文件的名称事先定义。
!构建输出宏文件
*Create,WriteData,mac
!输出文件的名称
filename=ARG1
!写出数据的列号
HG=ARG2
*Cfopen,filename,txt
*Vwrite,testA(1,HG)
(F20.5)
*Cfclose
*END
!定义输出文件名称的数组
*dim,FN,char,4,1
FN(1,1)='TTT'
FN(2,1)='SSS'
FN(3,1)='DDD'
FN(4,1)='RRR'
!输出数据
*do,i,1,4
filename=strcat('D:/ANSYS14/Data/',FN(i,1))
WriteData,filename,i
*enddo
截图如下:
利用上述输出文件名称的参数化,很多时候可以实现意想不到的结果,同学们可以尝试下哦!
更多有限元学习资源,请访问水哥博客:FSCAE.COM
祝好
ANSYS结构院
2024.11.04