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

ANSYS-命令流、二次开发与help之(一)

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

  ANSYS在操作时有两种途径,一种是GUI途径,即通过ANSYS可视化的操作菜单来实现对分析过程的操作,而另外一种就是所谓的命令流,这更像是一种后台操作,操作者分析的过程即是将一条条ANSYS命令按照自己的分析思路组织起来,而ANSYS通过调用这些命令完成分析。初学者进行的GUI途径分析过程,其实也是ANSYS调用一条条命令来实现分析过程,但这些命令的真实面貌没有被操作者看见,而是ANSYS本身给这些命令定义了一个快捷方式,操作者只需要去点击这个快捷方式来完成命令的使用过程。

  初学ANSYS的人,对命令流充满了迷惑,因为当拿出一个分析过程自动形成的.log文件之后发现一行一行犹如天书,但这些正是ANSYS命令的真实面目,而我们常使用的菜单操作只不过是把这些命令的本来面目给遮盖起来了,在学习ANSYS的过程中,随着学习过程的深入,加之以对命令流本身有个追本溯源的原动力驱使,命令流本身也不是很难。

  命令流与菜单操作相比各有其优缺点,学习ANSYS一般从菜单操作开始,因为菜单操作能够做到于使用者直接对话,简洁和可视化,但其缺点是如果一直按照菜单操作的方式进行便不能窥视到ANSYS的工作过程,尤其是在进行同个问题变换其中一个或几个参数进行分析时,其重复操作的工作太多,大大减小了分析的趣味性,把精力放在了没有技术含量的操作上。ANSYS命令流则弥补了这一缺陷,虽然难以理解,但当使用命令流进行分析时,能够大大的缩短分析的手工工作量,尤其是配合一定APDL语句,能够使分析过程自动进行,而操作者要做的仅仅是调用已经编制好的命令流文件而已,这时操作者的精力将会是放在对整个分析过程的分析和研究上,因为一旦分析过程研究及其实现机理研究透彻,那随之而来的所谓分析只是计算机自己的问题,操作者可以调用完命令之后随心所欲的做其他事情(在学校的时候,我就打着乒乓球让计算机自己完成分析,结果保存和结果数据提取并形成所需曲线保存在设定好的文件夹中),而且学习命令流可以更好的理解ANSYS的工作过程和分析机理,这是菜单操作方式所没有的,我们在学习ANSYS过程中,菜单操作仅仅是对ANSYS使用环境熟悉的一个过程。

  谈到命令流的种种优点,便引起这样一个问题,如何学习ANSYS命令流?更确切的说如何入门命令流?学习ANSYS的人会发现,初学ANSYS命令流会感到无从下手,不知道该如何去进入这个世界,好像是ANSYS命令流的世界只有一个很小很小的门,大多数人都钻不过去,只有少数人钻了过去看到了里面的美妙景象,其实来说命令流的世界没有想象的这么难以进入。按照我自己的理解,我把如何学习和入门命令流这个世界做个分析,谈到命令流那必定是对ANSYS已经有了一定的了解,对其进行分析的大致过程和思路也大概有了一个大体的把握,有了这个前提,学习起命令流来应该是比较顺手了。

  让我们按照以下的步骤先对神秘的命令流世界游览一番,揭去它神秘的面纱。

  1、什么是命令流?

  在ANSYS中,命令流是由一条条ANSYS的命令组成的一个命令组合,这些命令按照一定顺序排布,能够完成一定的ANSYS功能,这些功能一般来说通过菜单操作也能够实现(那些命令流能够实现,而菜单操作实现不了的单个命令比较少见)。

  比如画一个圆心(0,0),半径为5的实心球的命令,通过菜单方式的实现过程是:Preprocessor>Modeling>Creat>Volumes>Sphere>Solid Sphere,然后可以通过输入圆心(X,Y)和半径5来完成这个球的建模过程。

  通过命令流过程的实现过程是:建立一个记事本文件将其扩展名改为.mac(小写的,不能大写,大写的.MAC文件是ANSYS程序自带的宏命令用的扩展名),然后在这个记事本文件里写出以下两行代码:

  /prep 7

  SPH4, 0,0,5,0

  解释如下:

  SPH4, 0,0,5,0 的原貌是SPH4, XCENTER, YCENTER, RAD1, RAD2--->建立球的命令,共有四个参数,前两个参数表示球的圆心信息,后两个参数表示外径和内径,因为我们建立的是个实心球,所以内径我们取0。如果在刚开始使用命令流时不清楚球这个命令到底是哪个命令,那在建立命令流/写命令流时可以配合菜单操作知识命令来完成,如菜单操作时点到Solid Sphere这一步弹出Solid Sphere对话框时,点击help按钮,程序会自动从help文档中搜索到这个命令显示出来,而显示出来的这个命令正是你需要的这个建立实心球的命令,里面会有关于这个命令的详细解释,包括这个命令所包含的参数及每个参数所代表的含义。

  2、如何创建命令流?

  对于没有用过命令流的人来说,我们可以简单的通过以下几步来建立一个简单的命令流文件。首先,建立记事本文档,将扩展名由.txt改成.mac,这是ANSYS宏文件的扩展名,然后你可以在里面写出你的第一个由ANSYS命令组成的命令流文件,完成你的命令流文件之后把它放在一个不带汉字的文件夹了里,然后你将这个文件夹设置为你的ANSYS工作目录,你便可以在ANSYS命令输入处输入你刚刚完成的这个命令流文件的名字,即完成了对你这个命令流文件的调用过程,ANSYS会执行命令流文件中的命令自动的完成你所预期的分析或者建模过程。至于具体该写哪些命令则要视你的分析过程而定,但在写具体的命令之前,要首先进入你所做工作所需要的平台,如建模需要写一行代码:/prep 7-->表示进入了前处理平台,求解则需要一行/sol-->表示进入了求解处理器,常用的还有/post1和/post26等。

  3、命令流适合的工作?

  谈过了命令流,我们接下来引出二次开发的概念,所谓的ANSYS二次开发就是基于ANSYS的平台扩充ANSYS的功能,比如开发出新的模块用于特定分析,比如开发新的单元用于特殊材料的分析,比如开发新的自动分析某类事物的宏程序等都属于ANSYS二次开发的范畴,我们知道任何一种分析软件都不能够面面俱到,所以ANSYS提供了强大的二次开发平台,主要包括APDL、UIDL和UPF三个工具,在这些平台上你可以发挥你的聪明才智,扩充自己的ANSYS版本功能,使你的ANSYS系统成为独一无二的系统。

  与菜单操作相比,当进行以下情况的分析时,写命令流的方式能够体现出极大的优势:

  1)打算将分析的过程全部参数化和自动化,参数化是指在分析时,要对模型或者载荷条件做相应变化,以比较不同条件对结果的影响,这就需要把这些可变量做成可变化的参数,迅速完成不同的分析过程,所谓自动化是指让分析由电脑自动完成,减小人工工作量,命令流能够使的操作者只要调用命令流宏文件,其他全部工作由计算机自动完成,从而减小了工作的强度和密度,而且减小了操作过程中因失误而对分析结果造成的影响;

  2)针对某一特殊实例的分析过程,打算将其做成一种通用的分析模块时,命令流是必须的,编写出合适的命令流宏文件,便可以方便的在需要时使用,而且能够供他人分析使用,即使是不懂ANSYS的人,在你的命令流宏文件模块的帮助下,依然能够进行流畅的分析,而命令流分析设计到整个分析的全周期,包括从建模到结果分析的所有方面,对一个分析过程的命令流理顺,以命令流的方式进行分析能够大大的提高分析的效率。