您的位置:网站首页 > CAD新闻

ANSYS—编写宏的建议

时间:2011-02-25 10:06:18 来源:

  使用ANSYS的过程中,我们常常需要写各种各样的宏。有的宏可以写得很快而且很粗糙,因为当时用完就可以将其删除了。但大多数时候,我们写的宏都可以好好保存以备将来之需,对这样的宏,就需要合理并且规范的编写。下面是我的一些建议。

  命名宏:

  宏的名字应尽量以字母开始,并且能够与该宏的功能有所联系。比如,一个将单个的PIPE16单元分为n份的宏可以取名“E16SPLIT.MAC”。也可以简称为“SPLIT16.MAC”,但是如果六个月后,当你想再搜索这个宏时,那么由于是想对单元进行操作,所以如果名字以“E”开始,搜索就非常方便了。宏的数量很少的话,这样命名倒不是很必要;但如果你有几百个宏的话,并且又不记得宏的名字了,这时你就可以在很快的时间里找到你需要的宏。

  宏的介绍和使用信息:

  在宏的顶端,应该列出宏的名字、功能、使用的变量和任何对你自己和其他用户有用的信息。下面就是一个实例:

  

  在宏中加入编写者的名字、编写的日期、针对的ANSYS版本也是非常有用的。因为可以帮助其他用户了解该宏,并根据最新的版本进行更新。记住编写宏的第一定律:今天的宏在明天就会变异成象形文字。现在看起来充满逻辑和显而易见的事,下周就会需要三个小时来破解,半年后的难度可能就仅次于曼哈顿计划了。现在花一、两分钟在宏的开始添加的信息会让你和其他使用者以后更轻松。

  注释:

  根据上面的第一定律,我们应该把正在做的和为什么这样做都完全写入注释,就象将来的使用者对这个宏毫无了解一样。因为六个月后,你可能就是这个使用者。

  参数的使用:

  以下划线开始的参数是ANSYS用于UIDL菜单、追踪信息(写入CDWRITE,LSWRITE文件,关键字状态等)的保留参数。因此最好不要以下划线开始来命名参数,以避免和现在或以后ANSYS会使用的参数冲突。

  跟踪下划线参数:

  这种情况发生在编写的宏将来会被其他人使用的情况,实质上我们一般都会和同事共享宏,因此几乎所有的宏都是这样的。每一个宏都应该在宏的开始和结尾通过“*DEL,,PRM”命令清除参数。这会使你在宏中创建的参数不会与已定义的参数产生冲突或带来问题。

  局部参数:

  任何人都可以在自己的宏中使用如AR20-AR99的局部参数。局部参数只能在指定的宏中使用,并且在该宏完成以后自动消失。局部参数还可以用于嵌套的宏中。

  普通参数:

  如果你编写的宏只是自己使用,那么你可以使用任何你喜欢的参数名。如果你的宏已经调试并且运行成功,你可以在宏的开始使用“/NOPR”使无用的信息不出现在输出窗口中。而在运行完宏以后,使用“/GOPR”重新激活输出窗口。确保在“IF“命令之后使用“ENDIF”来结束;使用“*EXIT”而不要使用“*GO”来退出IF循环。

  状态信息:

  在每一个宏的开始使用命令*MSG来写一个信息到输出窗口中,使使用者知道现在运行了一个宏,这个宏的输入参数是什么。对一些比较长的宏,在宏的运行过程中打印附加信息是很有用的。也可以图形化使用状态条来显示DO循环的进程。

  使用不同的编辑器,也能够得到一些附加的功能。如果,你的编辑器支持颜色显示,你可以在一个DO循环内使用同一种颜色。还有很多其他的方面,可以使宏更加的可靠和便于我们的工作。在编写宏之前好好思考一下,一定会有更多的好点子。