Tcl/Tk与APDL联合编程实现ANSYS的二次开发

Tcl/TkAPDL联合编程实现ANSYS的二次开发

ANSYS的二次开发语言有四种,分别是APDLUPFsUIDLTcl/Tk,其中后面两个用于ANSYS交互界面开发。APDLANSYS Parametric Design Language)大家都熟悉,ANSYS参数化设计语言,及俗称的命令流。它由类似于FORTRAN的语言部分和1000多条ANSYS命令组成。

APDL是一种解释性文本语言,有顺序、选择、循环及宏等结构。利用APDLANSYS命令组织起来,编写出参数化的用户程序,从而实现有限元分析的全过程,即建立参数化的实体模型、参数化的网格划分与控制、参数化的材料定义、参数化的载荷和边界条件定义、参数化的分析控制和求解以及参数化的后处理。

UPFsUser Programmable Features),即用户可编程特性,它是源代码层次的ANSYS二次开发,用户可以根据需要利用UPFs重新编译连接生成用户定制版本的ANSYS软件,例如创建新单元、定义新的材料属性、定义用户失效准则等等。

UIDLANSYS用户界面设计语言(UserInterfaceDesignLanguage)的简写,允许用户改变ANSYS的图形界面中的一些组项,提供了一种允许用户灵活使用组织设计ANSYS的强有力工具,不过功能有限。

Tcl称为“工具命令语言”"Tool Command Language",是一种脚本语言。Tk则是基于Tcl的图形界面开发工具箱,与UIDL相比,更能够触及深层,因此更加灵活,开发的界面受限更少。

采用Tcl/TkAPDL联合编程能够通过界面实现参数化设计过程,非常直观。Tcl/TkAPDL的通信主要依靠三个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.png

代码1

代码2.png

代码2

代码3.png

代码3

代码4.png

代码4

Tcl/Tk主要用于设计界面,APDL用于实际建模和分析,脚本文件写完之后,可以在ANSYS中通过命令行运行,运行方式有三种,分别如下:

~tcl,’source creatplane.tcl’

~tk,’source creatplane.tcl’

~eui,’source creatplane.tcl’

注意需要将脚本文件放在ANSYS的工作目录下,最终得到以下开发的窗口:

图1.png

1

在对话框中输入参数即可自动进行建模和计算,得到的模型如下所示:

图2.png

2

计算后的结果为:

图3.png

3

简单总结以下,Tcl/Tk在用于图形化界面开发的时候比较好用,界面开发较为灵活,除了上面的这种简单界面的开发,也能够开发比较系统全面的界面,结合Tcl语言本身就能够完成很多的工作,对于参数化过程非常方便。

登录后免费查看全文
立即登录
App下载
技术邻APP
工程师必备
  • 项目客服
  • 培训客服
  • 平台客服

TOP

3
3
2