ansys-APDL编程 - 图文 下载本文

? 文件名不能超过32个字符; ? 文件名不能以数字开头;

? 文件扩展名不能超过8个字符(如果想和执行ANSYS命令一样执行宏,该宏的扩

展名应为.mac);

? 文件名或文件扩展名中不能包含空格;

? 文件名或文件扩展名不能包含任何被当前文件系统禁止使用的字符,为了更好的移

置性,还不能包含任何被UNIX 或 Windows文件系统禁止使用的字符。

为了确保没有使用ANSYS命令名,在生成宏之前应该试着象运行ANSYS命令一样运行准备赋给宏的名称。如果ANSYS返回如下所示的消息,就可以确信在当前处理器中没有该命令。为“安全”起见,应该在每一个计划要用到的处理器中都检查一下宏文件的名称。(也可以检查宏文件名是否与在线文档中的某个命令名相同,但是该方法不能查找不在文档中的命令)

图4-1 声明执行未知命令的消息框

若使用.mac作为扩展名,ANSYS将和执行内部命令一样执行该宏。扩展名.MAC用于ANSYS内部的宏,用户不能使用。

4.2.2 宏的搜索路径

一般地,ANSYS按如下缺省路径搜索用户生成的宏(.mac 扩展名): 1. 由环境变量ANSYS_MACROLIB(如果已经定义了)指定的路径或注册路径(主目录)。该环境变量在针对各平台的ANSYS安装和配置指南(ANSYS installation and configuration guide)中有详细说明;

2. 由/PSEARCH命令(如果已经定义了)指定的路径。该路径在注册路径之前,在由环境变量ANSYS_MACROLIB指定的路径之后被搜索; 3. 当前路径。

可以把仅供自己使用的宏放在自己的主目录下。共享的宏应放在ANSYS文件目录或一些可以通过环境变量ANSYS_MACROLIB访问的目录下: ? 对于Windows 95用户:必须通过环境变量指定主目录和驱动器。参看针对Windows

的ANSYS安装和配置指南(ANSYS Installation and Configuration Guide for Windows)。

? 对于Windows NT用户:当前路径为管理员设置的缺省路径(通常为一个网络资源),

可以从管理员处得到该路径。也可以通过环境变量生成一个本地的“主目录”。该本地主目录在由域初始化文件定义的缺省路径之后被搜索。参看针对Windows 的ANSYS安装和配置指南(ANSYS Installation and Configuration Guide for Windows)。

第 42 页

4.2.3 在ANSYS 中生成宏

在ANSYS 中可以通过三种途径来生成宏:

? 在输入窗口执行*CREATE命令。参数的值不确定,参数名被写入文件中。 ? 使用*CFOPEN, *CFWRITE, 和*CFCLOS命令。参数名被其当前值取代,值被写入

文件中。

? 选择Utility Menu>Macro>Create Macro菜单项。该方法打开一个可作为简单的多行

编辑器的对话框来生成宏。参数的值不确定,参数名被写入文件中。 下面部分详细解释这些方法。

4.2.3.1 使用*CREATE

在命令输入窗口执行*CREATE命令后,ANSYS转向控制该命令指定的文件。在执行*END命令之前,所有的命令都是对该文件进行操作。如果有一个和指定宏文件名同名的文件存在,ANSYS程序将覆盖掉该文件。

例如,要生成一个名为matprop.mac的宏,用来定义材料特性。从命令输入窗口为该宏输入的命令为:

*CREATE,matprop,mac,macros\\ MP,EX,1,2.07E11 MP,NUXY,1,.27 MP,DENS,1,7835 MP,KXX,1,42 *END

*CREATE命令带的参数用来指定文件名、扩展名和所在路径。注意,UNIX用户必须在路径的尾部再加上一道斜线(\\)。

当使用*CREATE命令时,所有在命令中用到的参数都会被写入文件(参数的当前值不会替换参数)。若当前参数值很重要,可以通过PARSAV命令把参数保存到某个文件中。

4.2.3.2 使用 *CFWRITE

若要生成一个参数被其当前值所代替的宏文件,可以使用*CFWRITE来达到这一目的。和*CREATE 不同,*CFWRITE不能指定宏文件名,因此必须首先用*CFOPEN命令来指定宏文件名。在命令输入窗口输入的命令行只有以*CFWRITE命令开头,才会被写入指定文件中,否则都会被运行。和*CREATE 一样,*CFOPEN也能指定文件名、扩展名和所在路径。下面的例子把一个BLOCK命令写入当前打开的宏文件中:

*cfwrite,block,,a,,b,,c

注意,参数a,b,c用作BLOCK命令的实际参数。被写入文件的是这些参数的当前值,而不是参数名。因此,本例中被写入宏文件中的句子为:

*cfwrite,block,,4,,2.5,,2

要关闭宏文件,执行*CFCLOS命令。

注意-虽然也可以通过这种方法来生成宏,但是这些命令更适合于在宏运行期间把

第 43 页

ANSYS命令写入某个文件中去。

4.2.3.3 使用Utility Menu>Macro>Create Macro

通过这个菜单项可以打开一个作为简单的多行编辑器的对话框来生成宏。但是,不能通过它来打开并编辑已存在的宏。如果在对话框的*CREATE 域输入一个已经存在的宏名,那么该已经存在的宏就会被覆盖掉。

图 4-2 Utility Menu>Macro>Create Macro 对话框示例

和*CREATE命令一样,参数不被求值,写入文件中的为参数名。注意,最后一行不能为*END命令。

4.2.4 用文本编辑器生成宏

可以用任何喜欢的文本编辑器来生成或修改宏文件。任何ASCII编辑器都可以利用,而且ANSYS宏中的行可以由UNIX 或 Windows行结束符(回车换行或换行符)来终止,因此在一个平台上生成的宏可以在好几个平台上运行。

在用这种方法生成宏时,不要包含有*CREATE 和*END命令。

图4-3 在文本编辑器中生成的一个简单的宏示例

第 44 页

4.2.5 使用宏库文件

为更方便起见,ANSYS允许把一批宏放到一个文件中,该文件被称为宏库文件。通过*CREATE命令或文本编辑器都可以达到这一目的。由于宏库文件要比单独的宏长得多,所以使用文本编辑器是一个更好的选择。

宏库文件没有明确的文件扩展名,若有,不能超过8个字符。其文件名的命名规则和宏文件一样。宏库文件的结构为:

MACRONAME1 . . . /EOF

MACRONAME2 . . . /EOF

MACRONAME3 . . .

./EOF

例如,下面的宏库文件包括两个简单的宏: mybloc /prep7

/view,,-1,-2,-3 block,,4,,3,,2 finish /EOF mysphere /prep7

/view,,-1,-2,-3 sphere,1 finish /EOF

注意,每个宏的开始处都有一个宏名(有时也被称为数据块名),并以一个/EOF命令结束。

宏库文件可以放在系统中的任何地方,为方便起见,最好放在宏的搜索路径中。

4.3 运行宏和宏库文件

可以通过*USE命令来运行任何宏文件。例如,要运行在宏搜索路径中某个位置处的宏MYMACRO(无扩展名),可通过执行以下命令来实现:

第 45 页