如何在ANSYS中读入txt文件的数据

2017-03-02  by:CAE仿真在线  来源:互联网


1 不能直接在命令窗口中执行*vread 命令
*read 命令的使用格式为:
*READ,PARR,FNAME,EXT,--,LABEL,N1,N2,N3,NSIP
前三项不用解释,ext是文件的开展名,
--表示该域是不需要使用的值域
label是取值顺序标识字,ijk,ikj,jik,jki,kij,kji,空格表示ijk
n1,n2,n3,是当label=kij ,n2,n3,缺省等于1时按照格式(((parr(i,j,k),k=1,n1),i=1,n2),j=1,n3)
读入数据的
nskip是读入数据文件时需要调过的开始行数

2 你在ansys的help里面察看vread命令,然后看它的用法格式,把你写的小程序写成一个mac文件,倒入mac文件就能从array parameter 里面看到你倒入的txt文件的数组形式

3ansys如何读入txt文本中的地震波数据?

命令流(下面的命令必须用文本读入的方法实现,命令窗无法实现):
*DIM,EQ,,6000,1,,, !首先定义一个EQ数组
*VREAD,EQ,earthquake,TXT,,,,,,0, !将earthquake.txt读入EQ数组里
(e16.0)
用的时候:
*DO,EQ,0.02,0.02*6000,0.02
TIME,TM
acel,EQ
!求解过程...
*ENDDO


一、输入格式要求


ANSYS的APDL语言其语法等各方面均与Fortran有很大的共通之处。在数据的输入输出格式方面也可以参考Fortran。对于初学者来说,输入数据时更容易引发错误,所以下面谈几点在这方面的小认识。
APDL 从外部文件输入数据,一般是采用*vread命令实现,而输入格式一般是在此命令的下一行定义,关于此命令的具体应用,可参见ANSYS帮助。


在输入格式方面与Fortran不同:

(1)APDL在数值方面没有整型(I)、G型描述符,字符型数据采用A描述符,没有H描述符。

(2)在Fortran中如果数据是整数,但是输入格式采用实数(如单精度浮点型F),则系统可以按指定格式自动为数据加上小数点,但在APDL中如输入数据为整数,如:6,则格式 Fw.d中的d只能为零,否则会出现读入错误;而如果是6.则Fw.d中的d可以不为0。


另外在输入时还容易引起输入错误的是:

(1) 输入格式的长度大于数据长度(指前一个数据的起至紧接的下一个数据的起始前一位,小数点和负号均占一位),如6._ _ _ _-5.6,前面的数据长度应为6,如果输入格式Fw.d中的w>6,则会出现读入错误;

(2) 格式语句应置于*vread的下一行,两行之间可以有空行,但不能有其它语句,甚至是注释语句也不能有。


二、输出格式


输出与输入在格式方面基本一致,用*vwrite执行,但也有不同之处:

输出时可以使用%c控制字符输出,%wI控制整数输出;%w.pF或%w.pE或%w.pG控制实数输出;

不能加括号。如格式语句: (F6.0,F5.2,A3),对应于:%6.0F%5.2F%3c;

应注意后一种格式中没有用逗号相隔开,也没有用括号括起,如有逗号,逗号也将一并输出。

注意:输入输出格式最好从一行的开始写,前面不要有空格


用%号(%wI)的这种格式可以输出整型数字。


%这种控制语句也应紧接*vwrite行,可以有空行,但不能有其它语句夹在中间(注释也不行)。

应当指出的是,%这种控制语句不能用在控制输入中。



三、一个例子


几点说明:
1.使用*VWrite命令把数据输出到文件时,必须要使用*CFOpen命令事先打 开一个 文件;*CFOpen命令必须和*CFClos命令配对使用;
2.*Vwrite命令后面必须紧跟输出格式说明;
例如:
*Vwrite,a,b,c
(格式说明)
3.格式说明中Fw.d,w的数值不能太小,以至于输出的数据丢失了整数部分的 精度;
例如:a=123.4,
Fw.d中的w至少要为5,否则在ANSYS中运行时报错;这样的非语法类错误,很难发现;为了避免此类错误发生,
w应该至少设置为输出数据的所有数字个数+1(小数点)
附:常用格式说明:***********************************************************************************************
1.''(一对单引号):用于在输出数据的时候,输出注释字符串,常常用来增加一些说明文字,增加可读性;
比如:
*Vwrite,Widh,Length,Height
('宽度为:',F6.3,'长度为:',F6.3,'高度为:',F6.3)
2.nX:输出n个空格;
比如:在输出的a,b,c3个数据之间加入2个空格;
*vwrite,a,b,c
(F6.3,2X,F6.3,2X,F6.3)
3./:结束当前行的输出,转到下一行输出;如果两个//连续出现,则添加一个空行;

实数及数组的输出与示例 一、实数的输出 ①实数的输出比较简单,类似FORTRAN的可采用D/E//F/G格式输出。例如: *CFOPEN,MYFILE,TXT X1=4.56 X2=12345.678 X3=1.23E-6 *VWRITE,X1,X2,X3 (3d15.6) *VWRITE,X1,X2,X3 (3E15.6) *VWRITE,X1,X2,X3 (3f15.6) *VWRITE,X1,X2,X3 (3g15.6) *CFCLOSE 文件MYFILE.TXT如下: 0.456000D+01 0.123457D+05 0.123000D-05 0.456000E+01 0.123457E+05 0.123000E-05 4.560000 12345.678000 0.000001 4.56000 12345.7 0.123000E-05 ②当采用科学计数时,输出格式的第一位都是“0”开头,如上文中的0.123457E+05,假如我们希望写成1.234568E+04或12.345678E+03的格式时,可采用如下格式:1PE15.6或2PE15.6。则上文中的命令流可改为: *VWRITE,x1,x2,x3 (3(1pe15.6)) 或 *VWRITE,x1,x2,x3 (1pe15.3,3pe15.4,1pe15.6) ③采用C格式输出实数 C格式也有d-整型、f-浮点、e-科学、g-任意、c-字符、s-字符串等格式,均采用%w.dx形式,而%/则为回车换行。例如: *CFOPEN,MYFILE,TXT X1=4.56 X2=12345.678 X3=1.23E-6 *VWRITE,X1,X2,X3,4567 %14.6f%15.6e%16.6g%10d *CFCLOSE 文件MYFILE.TXT如下: 4.560000 1.234568E+04 1.230000E-06 4567 二、数组的输出 (一)VWRITE方法 数组输出格式同上,但其输出控制却有很多种形式,且ANSYS按列输出数组。 设有数组(矩阵形式,这里不用插图了): |1.1 2.1 3.1| |1.2 2.2 3.2| ABC(5,3)=|1.3 2.3 3.3| |1.4 2.4 3.4| |1.5 2.5 3.5| *VWRITE命令如下几种方式: ① 与矩阵写法类同的按列输出:利用ANSYS的输出特点,分别写出各列表示符即可,而行则从1到最终的5。 ② 同上格式,但按矩阵元素输出用一对()将矩阵表达式括起来变为矩阵元素,这样用循环输出,如命令流中所示。 ③当列很多时不可能写出每个列字符表达式,此时可采用$字符格式$字符表示连续输出,没有回车符号,当一行写完后,增加一个非$格式语句即可。但是这里增加了一个临时数组,以存储某行的数据。 上述输出格式便于导入EXCELL中处理数据。 (二)MWRITE命令 数组最好采用*MWRITE命令输出,不管是否按类似矩阵格式输出,此命令均可较好解决。当矩阵列数较少时,可以采用类似行列输出;当矩阵列数很大时,可以按每行N个数据控制输出。 以上4种方法的命令流如下: *DIM,ABC,,5,3 !数组赋值 *DO,I,1,5 *DO,J,1,3 ABC(I,J)=J+I/10 *ENDDO *ENDDO !VWRITE数组输出 *CFOPEN,MYFILE,TXT !①格式1-按行列输出(行数从1~最终的5,列不变) *VWRITE,ABC(1,1),ABC(1,2),ABC(1,3) (3F6.1) !②格式2-按矩阵元素输出 *DO,I,1,5 *VWRITE,(ABC(I,1)),(ABC(I,2)),(ABC(I,3)) (3F6.2) *ENDDO !③格式3-多列时按行列输出 *DIM,TELS,,3 *DO,I,1,5 *DO,J,1,3 TELS(J)=ABC(I,J) *ENDDO *VWRITE,TELS(1) (F6.3,$) *VWRITE (' ') *ENDDO *CFCLOSE !④MWRITE输出数组 !ABCD(I,J,K) *DIM,ABCD,,50,30 !数组赋值 *DO,I,1,50 *DO,J,1,30 ABCD(I,J)=j+i/100 *ENDDO *ENDDO *MWRITE,ABCD,MYFILE1,TXT,,JIK,30,50 (30F9.4) !也可采用(10f9.4)格式,以输出150行*10个的数据。 文件MYFILE.TXT可以通过记事本查看。 1.1 2.1 3.1 1.2 2.2 3.2 1.3 2.3 3.3 1.4 2.4 3.4 1.5 2.5 3.5 1.10 2.10 3.10 1.20 2.20 3.20 1.30 2.30 3.30 1.40 2.40 3.40 1.50 2.50 3.50 1.100 2.100 3.100 1.200 2.200 3.200 1.300 2.300 3.300 1.400 2.400 3.400 1.500 2.500 3.500 文件MYFILE1.TXT的内容可通过EXCELL打开:EXCELL>打开(所有文件)>选择MYFILE1.TXT>选择分隔符>下一步>选择空格>完成,该表为50行*30列的数据表。


*GET, ELEMENTNUM,ELEMENT,0,COUNT

*GET, NODENUM,NODE,0,COUNT

*CFOPEN,c:tecplot,plt !!tecplot的输出文件

*VWRITE ('TITLE="Ansys to Tecplot FOR TETRAHEDRON MESH"')

*VWRITE ('VARIABLES="X","Y","Z"')

*VWRITE, NODENUM,ELEMENTNUM ZONE N=%5I,E=%7I,F=FEPOINT,ET=TETRAHEDRON

*DO, I,1,NODENUM,1

*VWRITE, NX(I),NY(I),NZ(I) (3F12.6)

*ENDDO

*DO, I,1,ELEMENTNUM,1 *VWRITE, NELEM(I,1),NELEM(I,2),NELEM(I,3),NELEM(I,5) %7I%7I%7I%7I

*ENDDO *CFCLOS

finish /clear Item='Weight' data=234.56 Unit='Kg' *Dim,AA,Array,4,1,1 AA(1)=10.2,324.5,123.7,908 *Dim,BB,Char,3,1,1 BB(1)='I am','a good','man' *CFopen,'G:ANSYSUserabc','txt' *vwrite, (5X,'*Vwrite Demo') *vwrite, ('******************************************************') *vwrite,Item,data,Unit (A8,F10.2,A8) *vwrite (/'*********** Array Parameter Output Demo**************') *Vwrite, ('Float Format /SEQU Keyword:') *vwrite,SEQU,AA(1) (F3.0,4F10.4) *vwrite,AA(1),AA(2),AA(3),AA(4) (//'Float /x Format:'/F4.1,2X,F10.4,2X,F10.4,2X,F10.4) *vwrite,AA(1),AA(2),AA(3),AA(4) (//'Float Format:'/4F10.4) *vwrite,AA(1),AA(2),AA(3),AA(4) (//'Double Format:'/D13.5,/D15.6,/D18.10,/D10.3) *vwrite, (/'****************char parametric output demo *******') *vwrite,BB(1),BB(2),BB(3) (3A6) *CFclos 输出结果为: *Vwrite Demo ****************************************************** Weight 234.56Kg *********** Array Parameter Output Demo************** Float Format /SEQU Keyword: 1. 10.2000 2. 324.5000 3. 123.7000 4. 908.0000 Float /x Format: 10.2 324.5000 123.7000 908.0000 Float Format: 10.2000 324.5000 123.7000 908.0000 Double Format: 0.10200D+02 0.324500D+03 0.1237000000D+03 0.908D+03 ****************char parametric output demo ******* I am a goodman /*******************************************************/

开放分享:优质有限元技术文章,助你自学成才

相关标签搜索:如何在ANSYS中读入txt文件的数据 Ansys有限元培训 Ansys workbench培训 ansys视频教程 ansys workbench教程 ansys APDL经典教程 ansys资料下载 ansys技术咨询 ansys基础知识 ansys代做 Fluent、CFX流体分析 HFSS电磁分析 Abaqus培训 

编辑
在线报名:
  • 客服在线请直接联系我们的客服,您也可以通过下面的方式进行在线报名,我们会及时给您回复电话,谢谢!
验证码

全国服务热线

1358-032-9919

广州公司:
广州市环市中路306号金鹰大厦3800
电话:13580329919
          135-8032-9919
培训QQ咨询:点击咨询 点击咨询
项目QQ咨询:点击咨询
email:kf@1cae.com