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

您所在的位置:网站首页 apdl是什么语言开发出来的 Tcl/Tk与APDL联合编程实现ANSYS的二次开发

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

2024-05-20 12:52| 来源: 网络整理| 查看: 265

Tcl/TkAPDL联合编程实现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代码如下:

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

代码1

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

 

代码2

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

 

代码3

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

 

代码4

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

~tcl,’source creatplane.tcl’

~tk,’source creatplane.tcl’

~eui,’source creatplane.tcl’

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

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

 

图1

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

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

 

图2

计算后的结果为:

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

 

图3

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



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3