当前位置:服务支持 >  软件文章 >  “面向对象”的ABAQUS PYTHON二次开发深度体验

“面向对象”的ABAQUS PYTHON二次开发深度体验

阅读数 11
点赞 0
article_banner

神乎其技!“面向对象”的 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的边

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

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

前面只把选取线、面的操作“封装“起来。如果将”高亮“、”取消高亮“这两个操作也封装进去,那命令会极致的简化。封装的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])

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


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删
相关文章
QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空