ANSYS的二次开发语言有四种,分别是APDL、UPFs、UIDL及Tcl/Tk,其中后面两个用于ANSYS交互界面开发。APDL(ANSYS Parametric Design Language)大家都熟悉,ANSYS参数化设计语言,及俗称的命令流。它由类似于FORTRAN的语言部分和1000多条ANSYS命令组成。
APDL是一种解释性文本语言,有顺序、选择、循环及宏等结构。利用APDL将ANSYS命令组织起来,编写出参数化的用户程序,从而实现有限元分析的全过程,即建立参数化的实体模型、参数化的网格划分与控制、参数化的材料定义、参数化的载荷和边界条件定义、参数化的分析控制和求解以及参数化的后处理。
UPFs(User Programmable Features),即用户可编程特性,它是源代码层次的ANSYS二次开发,用户可以根据需要利用UPFs重新编译连接生成用户定制版本的ANSYS软件,例如创建新单元、定义新的材料属性、定义用户失效准则等等。
UIDL是ANSYS用户界面设计语言(UserInterfaceDesignLanguage)的简写,允许用户改变ANSYS的图形界面中的一些组项,提供了一种允许用户灵活使用组织设计ANSYS的强有力工具,不过功能有限。
Tcl称为“工具命令语言”"Tool Command Language",是一种脚本语言。Tk则是基于Tcl的图形界面开发工具箱,与UIDL相比,更能够触及深层,因此更加灵活,开发的界面受限更少。
采用Tcl/Tk与APDL联合编程能够通过界面实现参数化设计过程,非常直观。Tcl/Tk与APDL的通信主要依靠三个ANSYS API函数实现,分别是:
ans_sendcommand:向ANSYS传递APDL命令;
ans_getvalue:从ANSYS数据库中获取变量;
ans_getvector:从ANSYS数据库中获取向量。
举几个简单的例子如下:
ans_sendcommand “$set,ansVar,$tkVar”
将变量tkVar的值传递给ans_Var
set tkVar [ans_getvalue PARM,ansVar,Value]
获取ANSYS中的变量ansVar,赋值给tkVar
set tkArray [ans_vector ansArray]
获取ANSYS中的数组ansArray
下面将编写一个实际的例子,Tcl脚本creatplane.tcl代码如下:
代码1
代码2
代码3
代码4
Tcl/Tk主要用于设计界面,APDL用于实际建模和分析,脚本文件写完之后,可以在ANSYS中通过命令行运行,运行方式有三种,分别如下:
~tcl,’source creatplane.tcl’
~tk,’source creatplane.tcl’
~eui,’source creatplane.tcl’
注意需要将脚本文件放在ANSYS的工作目录下,最终得到以下开发的窗口:
图1
在对话框中输入参数即可自动进行建模和计算,得到的模型如下所示:
图2
计算后的结果为:
图3
简单总结以下,Tcl/Tk在用于图形化界面开发的时候比较好用,界面开发较为灵活,除了上面的这种简单界面的开发,也能够开发比较系统全面的界面,结合Tcl语言本身就能够完成很多的工作,对于参数化过程非常方便。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删