首页/文章/ 详情

经典ANSYS APDL中*Vread使用方法介绍

8月前浏览13366

本文摘要(由AI生成):

本篇文章主要介绍了文件读入的相关知识,包括*Vread命令的使用格式、注意事项、顺序标识符Label的设定、N1、N2、N3数值的设定以及读取顺序对结果的影响。文章以二维数组为例,详细说明了如何读取文件并写入数组。


本篇文章为文件读入与写出系列文章第二篇。主要介绍文件读入的相关知识。


*Vread命令使用格式如下:


*Vread,ParP,Frname,Ext,--,Label,n1,n2,n3,Nskip


其中,ParP是读入数据的赋值对象数组,使用前需采用*dim命令进行定义;Frname为带路径的文件名,注意路径不能有中文名,如果是放在工作目录下,则直接写文件名字即可;Ext是文件的扩展名;Labl是取值顺序标识字符,分别为IJK、IKJ、JIK、JKI、KIJ、KJI,默认为IJK;n1、n2、n3分别为根据取值顺序标识符所采用的取值;Nskip为读入数据文件时需要跳过的开始行数,默认为0,表示从第一行开始读入数据。


值得注意是,*Vread命令通过外部宏文件输入使用,不可直接**在命令流窗口中使用,一般使用格式如下,同学们只需修改宏文件名字和*Vread命令内容即可。


*Create,dataread,mac  !创建宏文件,名为dataread,名称可更改

*dim,Elcentro,,2600 !创建读入数据的数组

*vread,Elcentro(1,1),Elcentro,txt,,ijk,n1,n2 !读入文件Elcentro.txt的数据


(f6.3)                                 !读入格式

*End                                 !结束宏文件的创建

Dataread                              !运行宏文件


上述给出了使用*vread的一般步骤,同学们在使用的过程中可以具体参考,由于是使用了命令*Create创建宏文件,*Vread出现在宏文件中,故而上述命令可以直接**在ANSYS命令流窗口中进行使用,运行完改命令后,会在当前工作目录下,自动生成一个以mac为扩展名的宏文件,名字为Dataread,当然可根据需要自己修改。


读入的文件,最好以txt为扩展名,并且调好格式,放入工作目录下。


使用*Vread命令比较难得是读取顺序标识符的设定,也即是Label与后续N1、N2、N3的设定。


一、顺序标识符Label的设定


Label的设定决定了写入数据的顺序,I代表行、J代表列、K代表面。如果是IJK,则写入数组的时候先写入面,在写入列,最后写入行,也即列的变化比行的变化快。若为JIK,则是先写面,在写行,最后写入列,也即行的变化比列快。在平时使用中,一般只用IJK和JIK两种格式,对于二维数组来讲,没有面的写入,只有行列的写入变化。


二、N1、N2、N3数值的设定


N1、N2、N3表示按上面指定的顺序,各下标分别要写入的数据个数。如IJK,3,4,1 表示数组ParP按列写入,共写3列4行。N2、N3默认数值为1。


今以一个二维数组来说明如何取用。


【例】现有如下文件,名为data.txt,文件内容如下,为一个6*5二维数组,采用*vread命令进行读取。


11 12 13 14 15

16 17 18 19 20

21 22 23 24 25

26 27 28 29 30

31 32 33 34 35

36 37 38 39 40


1、全部读取


(1)采用IJK的读取顺序


*Create,dataread,mac                 

*dim,DD,array,6,5                  

*vread,DD(1,1),data,txt,,ijk,6,5  

(5f3.0)                                

*End                                

Dataread        

                     

读取结果如下:



上述命令流中,(5F3.0)表示读取格式, ANSYS中读取文件总是按照行进行,最后结果的不同只是和写入数组的顺序以及读取的数值个数有关,(5F3.0)意思则为每行按照F格式读取5个数据,每个数据三个字节,其中小数位为0,如果读取的数据个数超过我们已有个数,则会以0代替。


读取的数据按照我们事先指定的写入顺序写入到数组,例如此处指定的是IJK,也即先按照列的顺序写入,写入6个数据,然后在进行下一列的写入,共写5列,最终就形成了如上的结果。如果我们改下写入的数目,看下效果,例如对*vread内容做如下修改:          

  

*vread,DD(1,1),data,txt,,ijk,5,1 



改变之后,每列只写入5个数据,且只有一列,其余以0代替。

*vread,DD(1,1),data,txt,,ijk,3,2 



(2)采用JIK的读取顺序


*Create,dataread,mac                 

*dim,DD,array,6,5                  

*vread,DD(1,1),data,txt,,jik,5,6

(5f3.0)                                

*End                                

Dataread      

                       

读取结果如下:



了解完读入原理后,有同学可能还不怎么理解,那么在实际操作过程中,按如下方式来操作即可,此方法只针对需将数据全部读入数组,且各元素位置信息同源文件一致时。


1)确定读入数据的维度,如行数m以及列数n。


2)定义数组,维数为m*n


   *dim,parp,array,m,n


3)、采用*vread命令,并且采用JIK的顺序


   *vread,parp(1,1),data,txt,,jik,n,m

MechanicalMechanical APDL结构基础通用
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2019-03-16
最近编辑:8月前
水哥ANSYS
硕士 | 结构设计师 欢迎关注微信公众号ANSYS结构院
获赞 199粉丝 5231文章 40课程 16
点赞
收藏
未登录
1条评论
Beyond
签名征集中
2年前
不错,不错
回复
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈