神乎其技!“面向对象“的 ABAQUS PYTHON 二次开发体验

神乎其技!“面向对象”的 ABAQUS PYTHON 二次开发体验

昨天,从“面向对象”的角度带大家鸟瞰 ABAQUS PYTHON 二次开发。采用的例子简单,可能大家领会不到“面向对象编程”的魔力。(“鸟瞰”一文请看https://www.jishulink.com/content/post/441360神乎其技!“面向对象“的 ABAQUS PYTHON 二次开发体验的图1

今天这篇文字将紧密结合 ABAQUS/CAE 的脚本运行功能,带领大家一瞥“面向对象编程”的高效和神奇。

长长的命令

接触过 ABAQUS PYTHON 二次开发的朋友,应该对下面这种长长的命令有印象。

mdb.models['Model-1'].parts['Part-1].edges[1]

# 代码的含义是:选取Model-1模型中,Part-1部件的序号为1的轮廓线。

在 python 脚本中,可以用 highlight( )、unhighlight( ) 这两个函数将选取的线、面,进行高亮(取消高亮)显示。完整的代码如下:

# 高亮显示序号为1的边

highlight(mdb.models['Model-1'].parts['Part-1].edges[1])

# 取消高亮显示序号为1的边

unhighlight(mdb.models['Model-1'].parts['Part-1].edges[1])

可见代码变得更长了,编写脚本的效率低了,阅读脚本也不够清晰明了。如果采用“面向对象编程”的“封装”技术,情形就会截然不同。

“封装”立方体

ss.png

用一个“class”(类型)把选取立方体“线”、“面”的操作“封装”起来。python代码如下:

ss.png (根据 ABAQUS/CAE 命名的特点,在代码中为模型名称、部件名称定义了不传参数进去时候的默认值)

把这段代码保存在名为“script.py“的文本文件中。打开 abaqus/cae ,在 File / Run Script 导入脚本之后,就可以在命令行窗口用简短的命令来高亮显示线和面了。具体的命令如下:

box = box( ) # 实例化封装的类

highlight( box.face(1 ) ) #高亮显示序号为1的面

highlight( box.edge( ) ) #高亮显示序号为0的边

这些命令跟没有封装之前的命令比较,简短了很多,而且意义明确、看起起来清晰明了。可见“面向对象编程”的神奇,实际上这些命令还可以继续优化,变得更加的精简!

神乎其技!“面向对象“的 ABAQUS PYTHON 二次开发体验的图4

极致的“封装“,带来更神奇的效果

前面只把选取线、面的操作“封装“起来。如果将”高亮“、”取消高亮“这两个操作也封装进去,那命令会极致的简化。封装的python 代码如下:

ss.png

导入脚本之后,在命令行只要输入下面极简的命令就可以实现高亮(取消高亮)显示。

box = box( ) # 实例化封装的类

box.hf( ) #高亮显示序号为0的面

box.uhf( ) # 取消高亮显示序号为0的面

box.he(1) # 高亮显示序号为1的线

box.uhe(1) # 取消高亮显示序号为1的线

现在请再对比一下最开始的命令。相信“面向对象编程“的神奇之处你定能体会到了。

# 最开始的命令

highlight(mdb.models['Model-1'].parts['Part-1].edges[1])

神乎其技!“面向对象“的 ABAQUS PYTHON 二次开发体验的图6

注:python 代码源文件提供付费下载!对 python 不熟悉的朋友推荐前去下载。谢谢!(https://www.jishulink.com/content/post/441450

(1条)
默认 最新
6
评论 点赞
点赞 12 评论 1 收藏 6
关注