ANSYS程序的二次开发

ANSYS程序的二次开发

标准ANSYS程序是一个功能强大、通用性好的有限元分析程序,同时它还具有良好的开放性,用户可以根据自身的需要在标准ANSYS版本上进行功能扩充和系统集成,生成具有行业分析特点和符合用户需要的用户版本的ANSYS程序。开发功能包括四个组成部分:
参数化程序设计语言(APDL)
用户界面设计语言(UIDL)
用户程序特性(UPFs)
ANSYS数据接口

参数化程序设计语言(APDL)
参数化程序设计语言实质上由类似于FORTRAN77的程序设计语言部分和1000多条ANSYS命令组成。其中,程序设计语言部分与其它编程语言一样,具有参数、数组表达式、函数、流程控制(循环与分支)、重复执行命令、缩写、宏以及用户程序等。标准的ANSYS程序运行是由1000多条命令驱动的,这些命令可以写进程序设计语言编写的程序,命令的参数可以赋确定值,也可以通过表达式的结果或参数的方式进行赋值。从ANSYS命令的功能上讲,它们分别对应ANSYS分析过程中的定义几何模型、划分单元网格、材料定义、添加载荷和边界条件、控制和执行求解和后处理计算结果等指令。
用户可以利用程序设计语言将ANSYS命令组织起来,编写出参数化的用户程序,从而实现有限元分析的全过程,即建立参数化的CAD模型、参数化的网格划分与控制、参数化的材料定义、参数化的载荷和边界条件定义、参数化的分析控制和求解以及参数化的后处理。
宏是具有某种特殊功能的命令组合,实质上是参数化的用户小程序,可以当作ANSYS的命令处理,可以有输入参数或没有输入参数。
缩写是某条命令或宏的替代名称,它与被替代命令或宏存在一一对应的关系,在ANSYS中二者是完全等同的,但缩写更符合用户习惯,更易于记忆,减少敲击键盘的次数。ANSYS工具条就是一个很好的缩写例子。

用户界面设计语言(UIDL)
标准ANSYS交互图形界面可以驱动ANSYS命令,提供命令的各类输入参数接口和控制开关,用户在图形驱动的级别上进行有限元分析,整个过程变得直观轻松。用户图形界面设计语言(UIDL)就是编写或改造ANSYS图形界面的专用设计语言,主要完成以下三种图形界面的设计:
主菜单系统及菜单项
对话框和拾取对话框
帮助系统
通过用户界面设计语言(UIDL),用户可以在扩充ANSYS功能的同时建立起对应的图形驱动界面,如在主菜单的某位置增加菜单项,设计对应的对话框、拾取对话框,实现参数的输入和其它程序运行的控制,同时提供相应的联机帮助,使操作者能方便地获取系统帮助。

用户程序特性(UPFs)
用户程序特性(UPFs)向用户提供丰富的FORTRAN77用户程序开发子程序和函数,用户利用它们从开发程序源代码的级别上扩充ANSYS的功能。使用这些子程序和函数,编写用户功能的源代码程序,在与ANSYS版本要求匹配的FORTRAN或C++编译器上重新编译和连接,生成用户版本的ANSYS程序。另外,还提供了外部命令功能,允许用户创建ANSYS可以利用的共享库。用户可以开发下列方面的功能程序:
开发用户子程序实现从ANSYS数据库中提取数据或将数据写入ANSYS数据库。该种子程序可以编译连接到ANSYS中,此时ANSYS提供了10个数据库操作命令;如果作为外部命令处理,可以在ANSYS的任何模块中运行;
利用ANSYS提供的子程序定义各种类型的载荷,其中包括BF或BFE载荷、压力载荷、对流载荷、热通量和电荷密度等;
利用ANSYS提供的子程序定义各种材料特性,包括塑性、蠕变、膨胀、粘塑性、超弹、层单元失效准则等;
利用ANSYS提供的子程序定义新单元和调整节点方向矩阵;
利用ANSYS提供的子程序修改或控制ANSYS单元库中的单元;
利用UEROP创建用户优化程序;ANSYS程序作为子程序在用户程序中调用。

ANSYS数据接口
ANSYS程序在分析过程中存在大量的设计分析数据,一部分在运行时置于计算机的内存之中,一部分以文件的形式存放在工作目录中。除LOG文件和出错文件等文本文件之外,其它文件都是二进制文件,分别以不同的格式进行写入,如:数据库文件、结果文件、模态结果文件、单元矩阵文件、子结构矩阵文件、对角化刚度矩阵文件、缩减位移矩阵文件、缩减频率矩阵文件和完整的刚度-质量矩阵文件等等。ANSYS数据接口详细地阐述每种二进制文件的格式,然后介绍从这些数据文件提取各种数据的子程序或函数,从而实现对二进制数据的读写和修改。显然,它满足了用户以下三种基本需要:检查或观察过程数据或结果数据;通过修改ANSYS的数据文件达到控制或修正计算;提取结果数据进行分析处理。
ANSYS数据接口提供了两条模型和数据库信息的转换和传递命令,即CDREAD和CDWRITE,前者将一个符合ANSYS读入或写出格式的模型和数据库文件信息读入到ANSYS数据库中,后者的作用正好相反。同时,为了减少转换或传递的时间,提高效率,还提供重定向自由度映射关系和其它数据库代码化的辅助命令,如/DFLAB、NBLOCK、EBLOCK、EN等等。该功能大大提高了ANSYS与其它有限元程序之间的模型数据的传递和转换,也实现了ANSYS自身数据库文件代码化后便于存储或机器之间的传递。

返回ansys文章列表>>>