ANSYS如何导出数据到某个文件

更新时间:2024-06-13 16:39:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

Ansys输出的文件类型

ANSYS软件广泛应用文件来存储和恢复数据,特别是在求解分析时。这些文件被命名为 filename.ext,这里文件名为缺省的作业名,ext是一个唯一的由二到四个字符组成的值,表明文件的内容。缺省作业名是在进入ANSYS 程序时设定,也可以在进入ANSYS后指定(/FILNAME命令或者通过菜单File->Change Jobname)。 1)ANSYS数据库

ANSYS在运行时在内存中维护着一个数据库,这个数据库包括模型数据、有限元网格数据、载荷数据、结果数据等等所有的 ANSYS 支持的对象的数据信息。在任意的处理器(比如前处理和求解器)中, ANSYS 使用和维护同样的一个数据库。用户所做的一切操作,其结果都会被存入数据库中。因为这个数据库包括了所有的输入数据,因此有必要经常保存数据库到文件中以备出错时恢复(通过菜单 File ->Save as Jobname.db)。以后我们可以随时从这个文件中将保存的数据库读入内存中取代当前数据库而成为当前数据库(通过菜单 File-> Resume Jobname.db)。有时候,在分析过程中可能发现重大的错误而想从头开始一个新的分析过

程,这就需要首先清除内存中 ANSYS 正在维护的数据库而得到一个新的空白数据库(通过菜单File -> Clear & Start New)。 值得注意的是,保存与恢复数据库时,作业名并不改变。这就有可能发生数据覆盖的现象(保存当前数据库时,有可能覆盖同样作业名的以前备份的数据库文件)。为了避免这种情况,建议如下操作:

A.针对每一个问题的求解,设置不同的作业名; B.不同问题,尽量设置不同的工作文件夹;

C.分析求解过程中,每隔一段时间存储一次数据库文件; D.存储数据库文件时用File -> Save as,换个文件名保存,通过菜单File -> Resume from读取以前备份的某个数据库文件恢复。

2)ANSYS Log文件

ANSYS Log 文件是在 ANSYS 运行过程中自动生成的(Jobname.log),它记录了从ANSYS运行以来所执行的一切命令,包括GUI(图形用户界面)操作和通过Input Window直接输入的合法命令。

Log 文件是文本文件,可以用记事本打开它并对其进行编辑。由于 Log 文件记录了ANSYS所有执行的命令,因此,可以通过 Log 文件再现同样的一个分析过程。也可以利用

log 文件,进行简单的编辑之后,得到分析过程的命令流,改变一些命令的参数,即可实现简单意义上的所谓的参数化分析和建模。这样可以大大提高分析效率。当然,如果对 ANSYS命令非常熟悉的情况下,也可以直接创建命令流文件来提高分析的效率。但一般不推荐这样做,GUI 操作加上命令流是更加有效的方式,往往可以达到事半功倍的效果。 ANSYS读入命令流的菜单途径是 File -> Read Input from。 3)ANSYS输出文件类型

ANSYS在运行过程中会产生许多临时文件和永久文件,临时文件在ANSYS运行结束会被删除,因此,在这里,就不再介绍临时文件。

永久文件在 ANSYS 运行结束后也会被保留下来,其中有些文件包含了计算和分析过程的结果相关的数据,在对结果数据进行后处理时可能会用到这些文件,因此,有必要认识这些文件的类型和用处。

图1列出了在结构分析中经常用到的输出文件。

图1

从ansys结果文件导出数据的一个方法

从ansys结果文件导出数据的一个方法

以输出结点10数据为例来说明一下,采用的是命令流的工形式: /post26

file,wt,rst ! 指明从哪一个结果文件中读取数据 nsol,2,10,u,z ! 结点10的z方向的位移输出 deriv,3,2,1,,v10 ! 结点10的z方向的速度 *dim,d,,n,3 ! 定义数组n需要给出具体的数值 vget,d(1,1),1 ! 存储时间向量 vget,d(1,2),2 ! 存储位移向量

vget,d(1,3),3 ! 存储速度向量

! 以下程序段是上面三个数值结果的导出 *create,temp *cfopen,w,dat

*vwrite,d(1,1),d(1,2),d(1,3) (f10.6,,f10.6,,f10.6) *cfclos *end /input,temp fini

! 完成操作以后,所需要的数值结果就存储到工作目录的w.dat文件。 有了这些数据以后,再用专用画图软件就可以画位移、速度随时间变化曲线图了。

ANSYS APDL命令流实现数据文件读写的实例

?

不要把2X作为与A对应的格式符,WRITE语句中的I,A,B分别与FORMAT语句中的I3,F6.2和E11.5格式符对应。X格式符不能用来提供整数、实数、以及其它类型数据的输出格式,它只能插入若干个空格。

本文介绍了ANSYS APDL命令流实现数据文件读写的实例。 一 FORTRAN数据格式 I格式(又叫整数格式) 一般形式:Iw 或:Iw.m

其中:w 一个数据占的位数宽度(又称“字段宽度”),m 需要输出的最少数字位数。例1:

(1)数字在指定的区域内向右端靠齐,如果数字位数比指定的字段宽度w小,则左边补以空格。负数的符号也包含在字段宽度内。

(2)如果数字的位数超过了规定的字段宽度w,则不输出有效数据,而在该字段宽度范围内充满“*”符号。

(3)如果数字的位数超过了m,则按实际应输出的位数输出(但条件是不能超过w)。m不包括负号所占的一列。 F格式(又叫小数型格式) 一般形式:Fw.d

w 各数值占的总位数 d 输出数据的小数位数(小数点后的位数)。 例1:

(1)数字在指定的区域内向右端靠齐,如果数字位数(含小数点和符号位)比指定的字段宽度w小,则左边补以空格;如果数字的位数超过了规定的字段宽度w,则不输出有效数据,而在该字段宽度范围内充满“*”符号。

(2)如果数据的小数位数比指定的小数位数d小,则在小数右边补0以凑足d位;如果小数位数大于d位,则输出时多于的小数位数按“四舍五入”规则舍去。

(3)假设b为数据整数部分的位数,则应使w≥b+d+1(小数点占一列),如果输出负数,则应保证w≥b+d+2(小数点和负号各占一列)。

(4)用F格式输出时应注意,由于难以事先确切估计出数据的大小,输出大的数时容易产生“宽度不够”的错误(由于w不够大),输出小的数时会出现丢掉有用数字的情况(由于d不够大而将后面的数字截去),这就是“大数印错,小数印丢”。 E格式(又叫指数型格式) 一般形式:w.d

w 各数值占的总位数,d 输出数据的小数位数(小数点后的位数)。例1:

(1)采取标准化的指数形式输出一个实数,d为以指数形式出现的数据的数字部分的小数位数。

(2)指数部分一般占4列,其中字母“E”和指数的符号各占一列,指数2列。 小数部分d列,再加上一个小数点和小数点前的一个“0”,因此要保证w≥d+6,输出负数时,w≥d+7。

(3)有的计算机系统允许有较大的实数范围,FORTRAN77提供了一种扩充的编辑符, 可以输出三位或四位指数。这种编辑符的形式为:Ew.dEe,用e指定指数的位数。有的计算机系统的FORTRAN编译系统已根据其允许的实数范围,自动将指数的位数改为3位或4位,不必在RORMAT语句中用Ew.dEe编辑符单独为某些数据指定所需的指数位数,只需写Ew.d形式即可,输出时系统会给出三位(或四位)指数。 G格式

G格式可以根据输出的实数大小决定用小数形式(F格式)输出或指数形式(E格式)输出。当输出大数值或小数值时自动按E格式,当输出的数不大不小时用F格式。其一般形式为:Gw.d

(1)凡绝对值小于0.1的数或绝对值大于10d的数用E格式输出;其余的数用F格式输出。

(2)用E格式输出时,最后4列为指数部分,而用F格式输出时最后4列留空。 (3)用指数形式输出时,格式同Ew.d;用F格式输出时,不是按Fw.d形式输出,d规定的不是小数位数而是打印出来的全部数字的位数,小数位数根据数值大小和d的大小而定,这样做的目的是使数的整数部分能全部保留,而适当截去小数部分,以保证输出数值的正确性。因为小于10d的数,其整数部分最多为d位,因此,可以全部输出这d位整数,小数的位数为:d-(数值整数位数)。 D格式

一般形式:Dw.a

用于双精度数据的输出,使用方法与E格式相仿,只是把字母“E”换成“D”。 L格式 一般形式:Lw

用于逻辑型数据的输出,w 输出数据的字段宽度。逻辑值“.TRUE.\,在输出时打印一个字母T;逻辑值\,在输出时打印一个字母F。T和F打印在字段范围内的最右端。 A格式

一般形式:Aw 或:A

用于字符型数据的输出,w为字段宽度,不指定w时(即形式:A),按字符变量的实际长度(即程序定义该变量时的长度)输出。

字符串在指定的区域内向右端靠齐,如果字符串的位数比指定的字段宽度w小,则左边补以空格;如果字符串的位数超过了规定的字段宽度w,则只输出最左面的w个字符。 ‘(撇号)格式

用来插入所需的字符串, 如果需要输出的字符包括撇号,则用两个连续的撇号代表一个被输出的撇号字符。 H格式

一般形式:nH <字符串>

用来输出字符常量,与撇号格式相似。n为字符串中字符的个数。 可以单独用撇号格式或H格式输出字符串而不必要求WRITE语句中有相应的输出项。 用H格式必须准确地数出字符串中的字符个数,数错了就会造成错误。所以最好不用H编辑符而用撇号编辑符,后者不必数字符,使用方便,字符串界线清楚无误。FORTRAN 77之所以保留H编辑符主要是为了与FORTRAN 66兼容(FORTRAN 66只能用H编辑符输出字符串而没有撇号编辑符)。 X格式

一般形式:nX

用于输出空格,n 输出的空格数目。即插入n个空格,或者说,使打印的“当前位置”向右移动n列。如果不用X格式插入空格,数据将连成一片,难以区分开。

注意:不要把2X作为与A对应的格式符,WRITE语句中的I,A,B分别与FORMAT语句中的I3,F6.2和E11.5格式符对应。X格式符不能用来提供整数、实数、以及其它类型数据的输出格式,它只能插入若干个空格。

FORTRAN 77还允许n是负整数,表示从当前位置向左移动n的绝对值列。微机上使用的FORTRAN子集不能使用n为负值的格式符。 /(斜杠)格式

斜杠(/)编辑符的作用是:结束本记录的输出并开始下一个记录的输出。例如: 二 关键命令

2.1 *VREAD 按指定格式将数据读入数组中

*VREAD, ParR, Fname, Ext, --, Label, n1, n2, n3, NSKIP ParR 定义好的数组名称 ,且指出开始写入的位置,即下标(i,j) Fname 数据文件名称 Ext 数据文件的扩展名 -- 没有启用的保留域 Label

可为IJK, IKJ, JIK, JKI, KIJ, KJI, or blank (IJK),表示你对ParR写入的顺序,下标变化依次变慢,如IJK表示先写列再写行(列下标J变化最快),JIK表示先写行再写列。 n1, n2, n3

表示按上面的顺序要写入的数据个数,如JIK,5,6表示对ParR按行写入,共写5列6行。

NSKIP 读入数据时需要跳过的行数。 特别注意:

*VREAD后面要紧跟带括号的指定格式,描述对数据文件每行的读法,如(F3.0,F11.0)每行读两个数,分别占3,11个字符宽度。

2.2 *VWRITE 用来输出数组、数值参数、字符参数或常量到文件里。它一次最多可以写入19个参数,使用该命令时,紧跟着该命令的下一行必须是FORTRAN77的格式规定。数组矢量要指定起始元素位置。可以用表达式来计算数据文件中每一行的位置。 *vwrite命令的使用格式如下:

*VWRITE, Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8, Par9, Par10, Par11, Par12, Par13, Par14, Par15, Par16, Par17, Par18, Par19

其中par1~par19是依次写出的19个参数或者常数,某个空值表示忽略,所有都忽略则输出一空行。允许写出的数据包括常数,变量与数组,包括数值型和字符型数据。 2.3 *cfopen 在*vwrite之前需利用*cfopen打开的一个数据文件,表示其后的并将*cfopen和*cfclos之间所有的*vwrite写出的数据都输入到该数据文件中。 *cfopen,fname,ext,--,loc

fname是带路径的文件名(两者允许至多250字符长度),缺省路径为工作目录,文件名缺省为jobnmae。

ext是文件的扩展名(至多是8个字符长度)。如果fname为空,那么扩展名缺省为cmd。 --表示该域是不需要使用的值域。

loc用于确定打开的文件已经存在时,缺省表示采用覆盖方式写数据到文件中,设置成append表示采用追加方式写数据到文件中。

与*cfopen成对使用的另外一个命令时*cfclos命令,总是在*cfopen命令与一序列数据*vwrite命令之后,用于关闭用*cfopen命令打开的文件。 *cfclos命令的使用格式如下:*cfclos 2.4 /OUTPUT /OUTPUT

/OUTPUT, Fname, Ext, --, Loc 输出txt数据到文件或窗口

Fname 文件名和路径。如果为空,则输出到默认系统输出文件中。 Ext 文件扩展名 -- 保留的未使用域。 Loc

blank — 覆盖式输出 APPEND — 追加式输出 三 实例解析

3.1 首先创建一个数据文件 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,mememama,dat *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,f10.4) *cfclos

运行该文件后,生成的数据格式如下: vwrite demo

*********************** 'weight: 234.56'kg'

******array parameter output demo****** float format/sequ keyword: 1. 10.2000 2. 324.5000 3. 123.7000 4. 908.0000

3.2 将数据读入数组 *DIM,mememama,,4,2

*VREAD,mememama(1,1),mememama,dat,,JIK,2,4,,6 (f3.0,f10.4)

运行该文件后,点击[Parameters]->Array Parameters,就可以看到得到的数组了。

本文来源:https://www.bwwdw.com/article/2766.html

Top