本文摘要(由AI生成):
本文介绍了在ANSYS中使用*VWRITE命令来定制输出的方法。*VWRITE命令允许用户根据指定的参数和格式描述符输出数据到文件,支持数值型和字符型数据,但不支持整型数和通配符格式。文中通过实例演示了如何输出节点总数、节点坐标、节点位移与转角、单元最大与最小应力等信息,并强调了在使用*VWRITE命令时需要注意的事项,如数组输出的方式、EN和ES输出格式的选择、以及%格式与括弧对应的格式的区别等。最后,文末附有版权声明。
ANSYS内部数据输出到文件,总是会需要的。既然输出到文件,就需要先打开数据文件。*CFOPEN命令用于打开数据文件,而*CFCLOS命令用于关闭文件,这与FORTRAN语言中打开文件类似。*CFOPEN的命令格式:
*CFOPEN,Fname,Ext,--,Loc
其中:Fname是可带路径的文件名(最长250个字符),缺省为当前工作目录。Ext为文件扩展名(最多8个字符),一般采用TXT(记事本直接打开)或DAT。Loc用于打开既有文件时,是重新输出覆盖原数据,还是在原数据的基础上追加。缺省为覆盖方式,APPEND为追加方式。
当不再输出数据时,用*CFCLOS关闭文件即可。
现在再说输出命令*VWRITE与格式。*VWRITE命令一次最多可输出19个参数到*CFOPEN打开的文件中,其输出格式由紧跟的语句确定。*VWRITE命令如下:
*VWRITE,Par1,Par2,Par3,……,Par19
其中Par1~Par19为输出的19个参数或常数,如果无任何参数则输出一空行。可输出的数据包括常数、变量、数组,可为数值型和字符型数据。输出格式为在一对括弧中的数据格式描述,如F15.6或E15.6等。数据格式描述符与FORTRAN类似,但无整型(I)和通配符(*)格式,常用输出格式如图1所示。
下面以一个实例,演示上述输出格式与方法。
FINISH$/CLEAR$/PREP7
K,1$K,2,10$K,3,5,1$L,1,2
ET,1,BEAM189
MP,EX,1,2.1E11$MP,PRXY,1,0.3
SECTYPE,1,BEAM,RECT$SECDATA,0.2,0.3
LATT,1,,1,,,3,1$ESIZE,0.5$LMESH,ALL
DK,1,ALL$FK,2,FY,-5E4
/SOLU$SOLVE$/POST1$PLNSOL,U,SUM
*CREAT,OUT,MAC!创建输出宏OUT.MAC
*CFOPEN,DATFILE,TXT!打开文件DATFILE.TXT
NSEL,S,EXT
*GET,NN,NODE,,COUNT
*VWRITE,NN
('节点总数=',2X,F8.1)
*VWRITE
(/'****节点坐标***')
*VWRITE
(' 节点号',8X,'X坐标',8X,'Y坐标')
*DO,I,1,NN
*VWRITE,I,NX(I),NY(I)
(F8.1,TL2,' ',2F15.6)
*ENDDO
NSEL,ALL
*VWRITE
(/'***节点位移与转角***')
*VWRITE
(' 节点号',8X,'Y位移',8X,'Z转角')
*DO,I,1,NN
*VWRITE,I,UY(I),ROTZ(I)
(F8.1,ES15.6,E15.6)
*ENDDO
*GET,NE,ELEM,,COUNT
*DIM,YL,,NE,2
*DO,I,1,NE
*GET,EISXMA,SECR,I,S,X,MAX
*GET,EISXMN,SECR,I,S,X,MIN
YL(I,1)=EISXMA
YL(I,2)=EISXMN
*ENDDO
*VWRITE
(/'***单元最大与最小应力***')
*VWRITE
('单元号',6X,'最大应力',8X,'最小应力')
*DO,I,1,NE
!I1=YL(I,1)
!I2=YL(I,2)
!*VWRITE,I,I1,I2
*VWRITE,I,(YL(I,1)),(YL(I,2))
(3X,F8.1,8X,EN15.3,8X,EN15.3)
*ENDDO
*VWRITE,NN,NE,(YL(1,1))
%d%10.1F%5X%15.6E
*CFCLOS!关闭文件
*END!结束宏文件定义
OUT!执行宏
文件DATFILE如图2所示。
使用*VWRITE的输出格式应注意:
(1)无整型数输出格式,也无通配符格式。实际上整数除了好看外,强调其输出意义不大。
(2)数组输出时,一般将数组赋予一个变量再输出,也可将数组放在括弧中表示数组的元素项,例如数组(YL(21,2))就表示YL数组的第21行第2列的元素。如果不放在括弧中,则会按列循环输出,容易出错。
(3)EN、ES格式分别为工程计数法和科学计数法输出,当应力为Pa时用EN格式更容易读。
(4)TL、TR、T和SP格式一般不常用,在数据转换的特殊情况下可能会用。
(5)*VWRITE命令和格式语句不能粘贴在命令行执行。可用宏或/INPUT命令读入执行。
(6)在*VWRITE命令和格式语句之间不应有其他语句。
(7)与括弧对应的格式为%格式,这种格式不需要放在括弧中,直接使用即可。特别地,%D为整型数输出格式。但因%格式与传统FORTRAN用法有所不同,因此不推荐使用。如%10.1F%5X%15.6E与(F10.1,5X,E15.6)相同。
---------------------------------------------------------------------------------------------
版权声明:
原创文章,来源铁大王新敏,本文已经授权,欢迎分享,如需转载请联系作者。