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.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语言本身就能够完成很多的工作,对于参数化过程非常方便。

免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空