PyQt平台开发Abaqus计算程序
责任编辑:只要82分     时间:2021-01-29     来源:《技术邻》——长安CAE
责任编辑:只要82分
时间:2021-01-29  来源:《技术邻》——长安CAE
分类: 开发资源
浏览量: 750

PyQt平台开发Abaqus计算程序

1 概述

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

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

图1 平面开孔模型

2 程序界面

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

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

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

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

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

 

图2 程序界面

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

图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")

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

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

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

图4 Py脚本文件

(2)开始计算

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

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

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


来源:《技术邻》——长安CAE

点赞人: 麦田客 

齐琪  回复 2021-07-21 21:17:26
学到了
sky  回复 2021-06-27 15:11:13
学到了
chjiegg  回复 2021-01-31 16:54:10
拿走,谢谢LZ!
回复:

Copyright © 2021 .长沙麦涛网络科技有限公司 All rights reserved. 湘ICP备20015126号-2
联系我们