首页/文章/ 详情

新书上市《Abaqus二次开发:内核与GUI应用实例详解》评论送书

6月前浏览5909


导读:近日,笔者收到仿真秀专栏作者陈开伟老师编著的专业图书《Abaqus二次开发:内核与GUI应用实例详解》。这是我获赠的第三本CAE专业图书,内容夯实,强烈推荐读者朋友订阅和收藏。该书作者在仿真秀有对应的辅导视频,大家可在仿真秀官网搜索陈开伟 或点击文尾阅读原文,即可关注其专栏视频教程。

即日起到5月31日仿真秀APP公众 号粉丝在公众 号文章下方点赞并留言且邀请好友为自己点赞前3名将免费获得图书1本。此外,还将选出2位精彩评论的用户获得此书(每人仅限一本,总计5本),欢迎朋友们分享助力传播,大家可以在京东搜索购买。


以下是正文:

Abaqus作为一款高度可扩展的有限元仿真软件,提供了多种编程语言的API接口。我们通常所说的Abaqus二次开发,是基于Python语言的开发,开发流程一般是先进行实际操作,对自动生成的rpy文件进行适当修改。这些修改包括使用变量、判断语句、循环语句等方式,以及将其整理成函数形式,从而形成一个灵活可用的内核脚本。如果结合RSG对话框生成器,还能制作出带有对话框界面的插件,更加便于操作使用。

Abaqus二次开发链

实际上,Abaqus二次开发功能十分强大。达索公司提供了一套完整的开发工具,涵盖了从内核开发到插件GUI开发,再到主窗口GUI开发的全套体系,形成了一个从内到外的开发链。具体开发流程可以参照以下图示:



内核开发

1. Kernels:内核语句和代码。

2. Functions:内核语句构成的函数。

插件GUI开发

3. Widgets:插件对话框中的控件,如单选按钮、复选按钮、文本框等。

4. Layout Managers:对话框中各种控件的布局。

5. Dialog Boxes:插件程序对话框。

6. Forms/Procedures:Forms模式和Procedures模式。Forms模式允许通过对话框输入字符来收集参数,如泊松比或模型名称等;Procedures模式则通过在视口中用鼠标点选来收集参数,如选择几何、单元或节点等。

7. Modes:负责收集用户输入参数和处理命令的模式。

主窗口GUI开发

8. Menus/Icons:修改、增加菜单,以及自定义图标。

9. Modules/Toolsets:自定义模块和工具集。

10. AFXMainWindow:注册标准的和自定义的Abaqus模块和工具集。

11. AFXApp:创建一个Abaqus应用程序。

《Abaqus二次开发:内核与GUI应用实例详解》正是基于这一完整的开发链,详尽地介绍了内核开发和GUI开发的相关知识,并通过大量的实例阐释了各自的基本知识和实践技巧。

图书特点

《Abaqus二次开发:内核与GUI应用实例详解》(陈开伟编著,机械工业出版社出版)是一本关于通用有限元仿真软件Abaqus二次开发的书籍,详尽介绍了基于Python语言的内核开发和GUI开发知识,并辅以丰富的实例加以阐释。


   
   
   


书中有全部代码以及非常详细的注释,并且着重阐述了开发过程的思路和流程,并对需要注意和容易出错的地方进行了强调和提示。

图书内容 

全书共分为三个篇章,以下做简要介绍。
第一篇:基础篇
要进行Abaqus二次开发,需要掌握一些Python基本语法和知识。本书首先介绍Python的基础知识,包括数据类型、流程控制和函数等内容。内核开发通常以面向流程为主,因此需要掌握基本语法。而GUI开发则需要使用面向对象的相关知识,书中也对此进行了简要介绍。考虑到很多读者已经具备了一定的Python编程能力,因此介绍Python内容以够用为原则,不会过于冗长。
第二篇:内核开发篇
内核开发涵盖的知识点非常繁杂,在江丙云老师的《ABAQUS Python二次开发攻略》和曹金凤老师的《Python语言在Abaqus中的应用》中,已经完整地搭建了内核开发的知识体系,所以本书并没有过多重复阐述,而是在介绍基础知识之外,用大小实例来呈现内核开发的技巧与要点。
首先,本书举例说明了一个初级的操作实例:手动创建H型钢3D模型,获取rpy文件代码,然后对它做修改,将生成H型钢的过程转化为通用函数。如下图所示。


接着介绍了Abaqus内核开发的基本知识,包括Abaqus常见的四种数据类型,以及内核的三大对象。为了避免空洞的概念讲解,书中提供了19个小实例,通过实用的小段代码展示了前处理和后处理的内核开发知识点,使读者能够更直观地学习和掌握。
本篇还着重介绍了三个内核开发的应用实例。
1)批量施加螺栓力。模型中有4个螺栓,它们的尺寸和摆放角度都不一样。脚本能够为这些螺栓一键施加螺栓力载荷。
批量施加螺栓力的实例

2)对单元集 合自动截图后进行处理。脚本能够打开文件选择对话框,选中并打开一个odb文件后,对指定的单元集 合以四个不同角度进行截图并保存。

自动截图后处理的实例


3)自动生成PPT版仿真报告。其功能包括:

A. 自动获取装配体和每个部件实例在仿真过程中的最大应力。

B. 自动对最大应力界面截图,每张图片的右下角都会显示当前模型的信息。

C. 将装配体和部件实例的最大应力、部件名称、增量步等信息写入csv文件。

D. 自动创建一个PPT,其页数会根据图片的数量自动生成。截取的图片和收集的最大应力值会一一对应地添加到PPT中。装配体单独占据一页PPT,每4个部件占据一页,从而实现仿真报告的自动生成。


装配体和部件自动截图  
装配体和部件信息的csv表格  
自动生成PPT报告  

这三个实例分别从前处理和后处理的角度展示了如何进行内核开发。

第三篇:GUI开发篇

GUI开发分为两个部分,即插件GUI开发和主窗口GUI开发。


 

插件GUI开发

 

谈到创建插件对话框,Abaqus自带的RSG对话框生成器是一个常用工具。它集成了15种控件和6种布局,提供了简单易用的界面。尽管操作简便,但功能相对有限,有时无法满足一些复杂的开发需求。Abaqus提供了功能强大的GUI工具包——Abaqus GUI Toolkit,它提供了丰富的函数和接口,是Abaqus GUI开发的核心,所有与GUI开发相关的都与之紧密相关。

RSG对话框生成器中的控件和布局

书中首先制作了一个对话框,它不仅囊括了RSG所提供的全部控件和布局选项,还新增了三种RSG未收录的控件。书中从代码层面详细介绍了每种控件和布局的创建方法、各参数的含义及作用,并辅以一些控件的实例方法,帮助开发者更好地理解与实践。此外,文中还对原有代码进行了适当修改与拓展,可以让开发者能够更全面灵活地掌握这些控件的使用技巧。

对话框实例

在Abaqus GUI Toolkit中,不同的控件需与特定关键字配合使用。Abaqus提供了八种类型的关键字,它们用于收集用户在对话框中输入或获取的数据信息。在对话框脚本的开发中,tgt和sel这两个参数尤为关键,它们的作用是将控件、实例方法和自定义类得以有效联接,实现复杂功能。书中详细讲解了tgt和sel参数的三种设置方式,帮助开发者更灵活地创建功能丰富、交互性强的对话框。

有关控件相关内容介绍完毕后,本书提供五个插件对话框的实例,分为5章进行详细阐述。这些实例的核心功能是RSG无法实现的,有较高的实用性。以下是对这些实例的简要介绍:

实例一:创建方钢/方管插件的GUI实例。通过下拉列表的选项,能够实时切换其他控件的可用状态,为用户提供更加灵活的操作体验,如下图所示。

实例一的对话框界面  
实例二:创建角钢/圆管插件的GUI实例。该实例通过单选按钮的切换,能够灵活地隐藏或显示其他控件,实现界面的动态调整。文本框前添加的复选按钮能够与内核脚本配合使用,进一步增强了插件的交互性。  
实例二的对话框界面
实例三:连续拾取插件的GUI实例。这个实例可根据提示区域信息连续对模型进行拾取操作。在拾取过程中,用户可以根据界面提示快速拾取。拾取完毕后,插件会自动弹出对话框,为用户提供进一步的操作或确认选项。这一设计简化了拾取操作的流程,提高了插件的便捷性。


实例三的对话框界面

实例四:连续对话框插件的GUI实例。这个插件展示了如何创建能够连续弹出的对话框,通过引导用户点击“下一步”按钮,逐步完成一系列操作。这种设计方式在需要用户按照特定顺序或步骤进行操作时非常有用,能够确保用户按照正确的流程完成任务。

实例四的对话框界面

实例五:悬臂梁一键前处理插件升级实例,对原RSG对话框进行了升级与改进,通过修改脚本增添了一些功能。此外,还新增一个按钮,用于打开子插件,丰富了插件的原有功能。

以上实例中还加入了一些实用功能,比如若在对话框中输入的内容有误或相互关系不正确,会弹出错误提示、提示所选的元素重合、识别当前模块、自动切换至指定模块等。

为实现这些功能,脚本中会用到一些方法,比如转换方法、映射方法、切换器、进程更新方法、检查方法、激活方法和验证关键字值方法等,它们可以提高对话框的交互性和准确性。

 

主窗口GUI开发部分

 

开发链中的第8~11步是主窗口GUI开发,其实也是个性化定制,将我们开发出的插件以图标的形式放置到主菜单、工具条和左侧工具箱中。这一过程与插件GUI开发有显著差异,因为主窗口的个性化定制需要多个脚本的共同配合,才能呈现出一个完整的Abaqus主界面。
书中精心设计了三种不同使用场景,展示了插件在主窗口界面中的灵活摆放。
在场景一中,插件以图标形式放置在菜单栏、工具集和左侧工具箱中,它们始终保持可见,不受模块切换的影响,这种设计确保了插件的易访问性,如下图所示。

使用场景一
场景二中创建了一个自定义模块,这些插件仅在此模块中可见。一旦切换到其他模块,插件便会消失。这种设计使得插件更加集中,开发者可以根据自己的需求,在自定义模块中快速找到相关插件,如下图所示。

使用场景二  
场景三,在指定模块中的定制开发。书中以Step模块为例,将插件添加在Step模块的菜单、工具集和左侧工具箱中,它们仅在此模块中可见。这种设计使得插件与指定模块的功能紧密结合,如下图所示。  

使用场景三  
此外还穿插了一些局部定制,比如更改View菜单、设置添加子菜单等,在其中添加插件  

工具箱中设置飞出按钮。  
飞出按钮

以及把插件安放在一个已有的工具条中,如下图所示。还添加了一个刷新按钮,当调试脚本时,开发者只需点击这个刷新按钮,无需重启Abaqus,即可打开更新后的插件对话框,减少了因修改脚本而需要频繁重启软件的麻烦。

定制工具条

结语


以上是本书的一些主要内容概览,书中还包含了更多详细、深入的知识点和实例,其应用领域十分广泛,并不局限于某一特定行业,无论是有限元仿真专业人士还是高校学生,相信都能从中获取实用的参考和帮助。期待各位读者通过阅读本书,能够进一步提升自己的Abaqus二次开发能力。

(完)


来源:仿真秀App
Abaqus二次开发通用python控制螺栓装配
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-05-21
最近编辑:6月前
仿真圈
技术圈粉 知识付费 学习强国
获赞 10106粉丝 21586文章 3547课程 219
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈