Tcl/Tk与APDL联合编程实现ANSYS的二次开发 |
您所在的位置:网站首页 › apdl是什么语言开发出来的 › Tcl/Tk与APDL联合编程实现ANSYS的二次开发 |
Tcl/Tk与APDL联合编程实现ANSYS的二次开发 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语言本身就能够完成很多的工作,对于参数化过程非常方便。 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |