找回密码
 注册
Simdroid-非首页
查看: 552|回复: 13

[二次开发] 分享一个实例:PyQt创建GUI调用 Abaqus/Kernel自动完成计算

[复制链接]
发表于 2017-10-27 14:26:55 | 显示全部楼层 |阅读模式 来自 亚太地区
本帖最后由 liu000 于 2017-10-27 14:29 编辑

说明:
本实例仅供学习交流使用,实例中使用的软件版本如下
ABAQUS 6.14.4
Python 3.5.2
PyQt 5.

1、在PyQt5中完成界面布局设计,如下图:

界面中定义了七个label控件,六个lineEdit控件,两个pushButton控件,各控件主要信息如下:


模型主要参数如下:
几何参数:长度、宽度、高度;
材料参数:杨氏模量、泊松比;
载荷参数:载荷;
按钮控件:更新数据、分析计算。

2pushButton控件信号与槽函数的实现:
更新数据控件槽函数:
defon_pushButton_clicked(self):
FID= open('para.txt','w')
FID.write(str(self.lineEdit.text())+'\n'+str(self.lineEdit_2.text())+'\n'+
str(self.lineEdit_3.text())+'\n'+str(self.lineEdit_4.text())+'\n'+
str(self.lineEdit_5.text())+'\n'+str(self.lineEdit_6.text()))
FID.close()
获取lineEdit控件内容存储到para.txt文件中,以备后期内核程序参数调用。

分析计算槽函数:
defon_pushButton_2_clicked(self):
p=subprocess.Popen("C:\Windows\SysWOW64\cmd.exe/k abaqus cae
       script=A_111.py")
通过subprocess.Popen()创建cmd.exe子进程,在cmd子进程中执行abaqus cae
script=A_111.py命令,启动Abaqus Command命令执行A_111.py文件。
A_111.py文件为Abaqus分析计算文件。


3、内核程序:
FID = open('para.txt','r')
LinesOfFID =FID.readlines()
L_1 = float(LinesOfFID[0])
L_2 = float(LinesOfFID[1])
L_3 = float(LinesOfFID[2])
L_4 = float(LinesOfFID[3])
L_5 = float(LinesOfFID[4])
L_6 = float(LinesOfFID[5])
FID.close()
os.remove('para.txt')
从para.txt文件获取存储的数据,即获取lineEdit控件更新后的内容,赋值给L_1- L_6,随后将para.txt文件删除;
from abaqus import *
from abaqusConstantsimport *
……
s.rectangle(point1=(-L_1/2,-L_2/2), point2=(L_1/2, L_2/2))
p = mdb.models['Model-1'].Part(name='Part-1',dimensionality=THREE_D,
    type=DEFORMABLE_BODY)
p =mdb.models['Model-1'].parts['Part-1']
p.BaseSolidExtrude(sketch=s,depth=L_3)
……
将内核程序中与模型参数有关的参数用L_1- L_6替换,并保存文件名为A_111.py。







4、执行程序:




5、小结:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
发表于 2017-10-30 14:40:43 | 显示全部楼层 来自 辽宁大连
Simdroid开发平台
真不错,谢谢分享
回复 不支持

使用道具 举报

发表于 2017-11-12 10:34:09 | 显示全部楼层 来自 台湾
很不錯,感恩分享

回复 不支持

使用道具 举报

发表于 2017-11-15 10:44:50 | 显示全部楼层 来自 澳大利亚
大致思路是先用界面生成一个对应的py文件,然后提交py文件计算吗?
回复 不支持

使用道具 举报

发表于 2018-1-24 19:17:46 | 显示全部楼层 来自 河北秦皇岛
我想问下为什么我用subprocess.Popen()  现实abaqus不是内部命令
回复 不支持

使用道具 举报

发表于 2018-1-24 20:07:19 | 显示全部楼层 来自 河北秦皇岛
p=subprocess.Popen("C:\Windows\SysWOW64\cmd.exe /k abaqus cae noGUI=jiazaili.py")

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复 不支持

使用道具 举报

发表于 2018-6-8 17:25:48 | 显示全部楼层 来自 广东广州
MAKE 发表于 2018-1-24 19:17
我想问下为什么我用subprocess.Popen()  现实abaqus不是内部命令

在系统环境变量path项里添加abaqus.exe所在路径即可
回复 不支持

使用道具 举报

发表于 2019-3-30 12:22:55 | 显示全部楼层 来自 美国
   xiexie
回复 不支持

使用道具 举报

发表于 2019-5-23 08:09:24 | 显示全部楼层 来自 浙江舟山
这个PyQt5是如何调用的
回复 不支持

使用道具 举报

发表于 2019-11-13 10:00:58 | 显示全部楼层 来自 吉林
可以的,66666
回复 不支持

使用道具 举报

发表于 2019-12-20 15:19:23 | 显示全部楼层 来自 陕西西安
点击分析计算之后就闪退了 还出现这个错误
回复 不支持

使用道具 举报

发表于 2019-12-20 15:29:55 | 显示全部楼层 来自 陕西西安
lbzjxsd 发表于 2019-12-20 15:19
点击分析计算之后就闪退了 还出现这个错误

D:\1
回复 不支持

使用道具 举报

发表于 2019-12-20 15:37:01 | 显示全部楼层 来自 陕西西安
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-4-27 08:57 , Processed in 0.049543 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表