首页 > 技术 > CAE其它 > > ABAQUS前、后处理模块二次开发的应用

ABAQUS前、后处理模块二次开发的应用

作者:Simwe    来源:达索SIMULIA公司    发布时间:2011-12-19    收藏】 【打印】  复制连接  【 】 我来说两句:(0逛逛论坛

0 引言

ABAQUS是国际上最先进的大型通用有限元计算分析软件之一,可以模拟绝大部分工程材料的线性和非线性行为。ABAQUS自带的CAE是进行有限元分析的前后处理模块,也是建模、分析和后处理的人机交互平台,它具有良好的人机对话界面,因此ABAQUS软件在工程中得到了广泛的应用。

Python是一种面向对象的脚本语言,它功能强大,既可以独立运行,也可以用作脚本语言。特别适用于快速的应用程序开发。

1 ABAQUS/CAE处理过程和二次开发接口介绍

ABAQUS/CAE处理有两个程序:①内核程序;②GUI程序。内核程序实际上就是它的脚本语言,它采用的是Python语言,同时扩展了Python语言,额外提供了大约500个对象模型,对象模型之间的关系复杂,它们间部分关系如图1所示。

 \

图1 ABAQUS对象模型


图1中,Container表示容器,里面包括其他对象,而Singular object只表示单个对象。

而对于GUI程序来说,它是一个方便用户输入或选择参数的图形用户接口,ABAQUS/CAE是采用IPC协议来完成内核程序和GUI程序的通信的。它们之问的通信如图2所示。

 \

图2 内核程序和GUI程序的通信


ABAQUS有限元程序通过集成Python语言向二次开发者提供了很多库函数,通过ABAQUS脚本接口(ABAQUS Scripting Interrace),Python语言调用这些库函数来增强ABAQUS的交互式操作功能。它允许用户绕过ABAQUS/CAE的GUI(graphical user interfaces)直接与内核交互,可以大大提高工作效率或完成ABAQUS/CAE没有提供的功能。但是凶为它没有通过GUI,显的不那么直观,而且如想改变某些参数就不得不修改脚本程序,这些对一般用户来说就显的比较麻烦。因此,对ABAQUS二次开发一般应先开发出GUI后,让用户输入或选择有关参数后,然后生成ABAQUS的脚本语言来自动处理。ABAQUS的GUI是用ABAQUS GUI Toolkit来编写,它也是对FOX GUIToolkit的拓展,它在编写程序时也是遵循Python语言的格式。
    ABAQUS二次开发有如下几种途径:①通过用户子程序可以开发新的模型,控制ABAQUS计算过程和结果;②通过环境初始化文件可以改变ABAQUS的许多缺省设置;③通过内核脚本建立的函数可以用于前处理建模和后处理分析计算结果;④通过GUI脚本可以创建新的图形用户界面。本文将使用联合使用第3、4种方法,来实现对ABAQUS的前后处理的二次开发。

2 应用举例

本文将以庄茁老师出版的《ABAQUS非线性有限元分析与实例》一书中的P392页的ABAQUS/Explicit凹槽成型为例来说明二次开发在ABAQUS中的应用。在本文中我们将使用GUI来方便用户选择或输入参数,而在对ABAQUS的界面开发有两种方法,一是建立自己的应用程序,另一种是在ABAQUS的Plugins菜单中加载自己的菜单来实现。在本文中将分别使用这两种方法来完成预期的功能。

2.1 二次开发在前处理中的应用

我们都知道二次开发在前处理中主要功能是提高工作效率,对与上述例题如按照一般步骤来要完成先建模、创建材料特性、装配等过程。而在建模和装配过程中是比较费时的,尤其是在装配过程中容易出错。本节将使用第一种方法即开发出自己应用程序的界面,只要用户输入相关参数就可是自动完成建模和装配任务,以提高工作效率。

要开发出自己的应用程序就必须综合应用Python语言和ABAQUS GUI Toolkit进行编程。为了使程序编写方便和便于检查错误,我们把不同功能的程序写在不同的文件中(也叫不同模块)。通过模块问的调用来完成整个过程。在调试好程序后,我们可以在ABAQUS Command中输入如下语句:abaqus cae-custom meichongyaApp-noStartup然后回车即可。图3是开发出来的自己应用程序界面。在工具栏菜单中选择chongy-Part and Assembly就可以得到网4的界面。在输入如图4的相关参数后,按下OK键就可以得到我想要的结果如图5所示。图6表示了不同模块之问的调用关系。

\

图3 应用程序界面

 \
图4 用户输入对话框

\
图5 装配效果图

  \
图6 不同模块间的调用关系


在图6中meichongyaApp模块的主要作用是修改标准的ABAQUS/CAE GUI并初始化应用程序。chongyaMainWindow模块的主要作用是创建主窗口并加载相关标准菜单和模块。chongyaGuiModule模块的主要作用是定义用户自己的菜单,并初始化。honyga模块。chongyaForm模块中主要完成相关关键字的定义、定义好getFirstDialog并为AFXGuiCommand定义好参数。chongya模块的作用是按照图4的参数来创建模型并自动完成装配功能。

chongyaD B模块的作用是应用ABAQUS GUI Toolkit来完成对图4的界面的排序功能,并调用Icons。模块或相关图片。本例中在此使用是调用图片,如果,要使用调用Icon。模块的方法则要用XPM图片数据作为Python的字符列表来定义icon,这样比较麻烦,尤其对于复杂的图形。(注:ABAQUS GUI Toolkit支持以下n种格式来创建icon;① XPM格式;QBMP格式;③ GIF格式;.PNG格式,而后三种格式是一般的绘图软件就支持的格式,如windows自带的画图软件就支持后三种格式,这样我们就可以不要去写复杂的Python语句了)。

 
分享到: 收藏