宏文件这个概念很普遍,几乎所有的有限元软件都有这个概念,因为有限元软件有脚本或者命令语言,而宏文件正是部分命令的集合。即使是Excel或者CAD软件也有相应的宏文件。
既然宏文件是部分命令的集合,那么宏文件的作用也就很显然了。对于某些重复性的命令,可以将其建立在宏文件里,遇到需要做同样操作的时候可以直接调用宏文件即可。
ANSYS的宏文件的后缀是.mac,可以用记事本打开。
最容易理解的宏就是将写完的某个分析过程全部放在mac文件里面,并且将该文件放在工作目录下,然后再ANSYS的命令输入窗口可以直接输入name.mac,即可运行该宏文件。
对于不是整个分析过程的宏文件,通常是在分析过程中运行。
那么创建怎么创建呢?
采用*creat命令,如下所示,创建一段宏。
*CREATE,MAC ! CREATE MACRO FOR POST PROCESSING
/POST1
EPLOT ! PLOT ELEMENTS
PRERR ! PRINT THE ENERGY NORM PERCENT ERROR (SEPC)
NSEL,S,LOC,Y,0.0
NSEL,R,LOC,X,2.0
*GET,MNODE,NODE,,NUM,MAX
*GET,SY_D,NODE,MNODE,S,Y ! GET DESIRED STRESS SY VALUE
NSEL,ALL
ESEL,ALL
*status,parm ! SHOW STATUS OF PARAMETERS
*END
最终在工作目录下会生成一个名称为MAC的宏文件,打开之后内容如下所示:
对比可知,APDL命令中*creat和*end之间的内容会被写入宏文件。
如果需要使用该宏文件时,通过APDL命令:*use,MAC
MAC表示宏文件的名称,可以理解为直接插入宏文件的这段命令。成为整个命令流文件的一部分,这个类似于Fortran的include.
下图是创建的另一个提取结果的宏文件。
另外一种创建宏的方式更好理解,就是通过*CFOPEN,*CFWRITE和*CFCLOS分别打开、写入和关闭一个文件,也就是首先创建一个.mac后缀的文件,然后通过*CFWRITE写入命令,最后关闭文件。
*CFWRITE很简单,ANSYS的帮助解释如下: