加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

PyQt平台开发Abaqus计算程序

(2016-03-26 20:13:42)
标签:

pyqt

python

abaqus

二次开发

程序设计

分类: Abaqus技术及二次开发

PyQt平台开发Abaqus计算程序

1 概述

PyQt平台是Qt里针对Python语言程序进行界面设计的平台,借助这个平台采用Python编程语言可以开发各种各样的程序。Abaqus的执行命令也是采用Python编写的,因此可以结合这个平台开发Abaqus计算程序,调用Abaqus执行有限元分析过程。

本次以一个平面开孔模型为例,如图1所示,设计一个程序能够通过程序界面设置相关参数并执行计算。

PyQt平台开发Abaqus计算程序

1 平面开孔模型

2 程序界面

参数化的参数包括矩形长度w、矩形宽度h、圆的半径r、材料的弹性模量E、泊松比以及压力载荷p,并设置三个按钮:

生成脚本:利用VB生成Abaqus可以执行的脚本文件;

开始计算:启动Abaqus,调用生成的脚本文件进行有限元分析。

同时还添加了一个Label控件,用于显示图片,方便参数输入。

最终得到的程序界面如图2所示,给所有的Textbox命名,方便后台代码调用,并设置默认值。

 

PyQt平台开发Abaqus计算程序

2 程序界面

这里注意一下,在Label如何插入图片?如图3所示,图上内容为Label的属性设置框,通过Pixmap可以设置图片,通过scaledContents可以调整图片适合Label控件大小。

PyQt平台开发Abaqus计算程序

3 Label加载图片

 

3 功能代码

PyQt自由化设计程序界面,而编译界面的代码一般用Eric。并且在Eric里面为了编写方便通常将界面与逻辑代码分离,此操作可回看之前发的文章。

通过定义两个槽函数,分别执行脚本文件生成和启动Abaqus计算的操作。

1)代码转换

定义脚本文件的槽函数为:

self.GenerateBtn.clicked.connect(self.GeneratePy) 

定义槽函数时采用write逐行输出Python命令行,在命令行中获取界面参数的内容如下:

        f.write("ww="+self.ww_lineEdit.text()+"\n")

        f.write("hh="+self.hh_lineEdit.text()+"\n")

        f.write("rr="+self.rr_lineEdit.text()+"\n")

        f.write("EE="+self.EE_lineEdit.text()+"\n")

        f.write("bb="+self.bb_lineEdit.text()+"\n")

        f.write("pp="+self.pp_lineEdit.text()+"\n")

这里一定要注意写法,Python连接字符串用的是+,注意分号。

同时,在代码里出现的任何以上参数均采用变量名代替,比如ww

生成脚本文件同样需要打开一个py格式的文件,将嵌入进来的代码再输出到py文件中。

最终实现的功能如图4所示,生成的py文件:

PyQt平台开发Abaqus计算程序

4 Py脚本文件

2)开始计算

启动Abaqus调用Python脚本文件在PyQt里面比较好的实现方法是利用Abaqus Command命令提示符窗口。因此,在PyQt里面只需要通过subprocess函数启动计算机里面的Abaqus Command并且在窗口输入调用语句即可。

最终即可实现参数化计算,程序界面输入参数,程序自行启动Abaqus执行计算。

当然,程序还可以结合PythonAbaqus的计算结果进行后处理,此次不作阐释。




0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有