本帖最后由 liu000 于 2017-10-27 14:29 编辑
说明: 本实例仅供学习交流使用,实例中使用的软件版本如下 ABAQUS 6.14.4 Python 3.5.2 PyQt 5.
1、在PyQt5中完成界面布局设计,如下图:
界面中定义了七个label控件,六个lineEdit控件,两个pushButton控件,各控件主要信息如下:
模型主要参数如下: 几何参数:长度、宽度、高度; 材料参数:杨氏模量、泊松比; 载荷参数:载荷; 按钮控件:更新数据、分析计算。
2、pushButton控件信号与槽函数的实现: 更新数据控件槽函数: 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、小结: |