Abaqus二次开发:内核与GUI应用实例详解
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.1.1 Abaqus PDE

Abaqus PDE是一款由达索公司专为Abaqus开发的编辑器,它是一个单独的应用程序,可以创建、编辑、测试和调试Python脚本,主要用于Abaqus/CAE图形用户界面命令、内核脚本和普通脚本的编写及调试。Abaqus PDE最大的优点是内置了Abaqus自带的模块,脚本中导入模块即可直接使用,这种先天的优势是第三方编辑器无法比拟的。除此之外,Abaqus PDE还具有良好的集成性,可以方便地与Abaqus/CAE进行交互,更加直观地执行代码。

Abaqus PDE有三种打开方式。

1)在Abaqus/CAE中,点击主菜单选项File→Abaqus PDE。

2)打开Abaqus Command,输入abaqus cae -pde后按〈Enter〉键。

3)打开Abaqus Command,输入abaqus pde后按〈Enter〉键。

使用第二种方式打开Abaqus PDE的同时,还能一并打开Abaqus/CAE主窗口。第三种为单独打开Abaqus PDE,并不会启动Abaqus/CAE。

Abaqus PDE界面及使用说明如图2-1所示。

选择执行空间的GUI单选按钮时,用户可以通过点击按钮录制Abaqus/CAE中每一步的执行动作,并会自动生成guiLog文件。反过来,在Abaqus PDE中运行该guiLog文件,便可在Abaqus/CAE中完全复现每一步操作。

对于二次开发来说,Abaqus PDE最大的作用是调试脚本。代码调试过程中,经常需要实时掌握某变量在某个时刻的传入值。在Abaqus/CAE环境中调试时,采用的办法往往是用print方法将该变量打印出来。而Abaqus PDE调试功能的强大之处就在于,可以一次性自动获取许多变量的传入值,在很大程度上提高调试效率。此外,Abaqus PDE还可以设置断点,断点前的语句可以连续运行,直到断点处自动停止,再根据需求选择继续运行或手动逐行执行,同时,Abaqus/CAE中会实时显示对应代码的执行结果,给予用户直观的及时反馈。

图2-1 Abaqus PDE界面及使用说明

例如,图2-2所示为调试生成角钢模型的内核脚本。

图2-2 Abaqus PDE调试脚本

调试过程中,如果需要监控一些变量的传入值,以第8行的变量vp为例,用户只需在该行用鼠标选中变量名vp,点击右键,选择Add Watch:vp,如图2-3所示,即可在下方的Watch List表格中添加该变量以便监控。图2-2中关注了length、vp、modelName、m和p共5个变量。

图2-3 监控变量

有时脚本语句较多,需要做分段调试,例如图2-2中,要想明确第17行之前的执行结果是否符合预期,可将光标放在该行,点击图标,或在该行点击鼠标右键,选择Add Breakpoint,即可添加断点,接着点击按钮或按〈F5〉键便可执行脚本。程序运行到第17行时会自动停止,用户可在Watch List中观察当前变量的赋值是否正确。与此同时,Abaqus/CAE中的草图也会与脚本同步,草图停留在执行第16行后的状态,如图2-4所示。通过这种调试方式,可以非常方便地判断代码是否正确执行。如果语句无误,可以再次点击(调试模式下)按钮继续自动执行接下来的语句,也可以手动点击(调试模式下)按钮逐行往下执行。

图2-4 同步的草图模块

被监控的变量默认以str()显示,但对于诸如模型、部件或视图等对象来说,这些值的字符串非常长,不太利于理解,如图2-2所示的Watch List表格中的vp值。更好的方式是将它们以repr()格式展现,以变量m为例,右击后,选择Display str(not repr)value of m,该变量就会以对象的形式体现,一目了然。

由于图2-2中的脚本只执行到第17行,变量p还没有赋值,所以表格中的值为<not evaluated>。

该脚本最终生成的模型如图2-5所示。

图2-5 最终生成的模型

Abaqus PDE在调试功能上很有优势,不过它并不具备自动补全功能,编写环境也不算十分突出,用户可以在其他编辑器中编写代码,在Abaqus PDE中进行调试。