Mechanical中如何快速开发自动化脚本

Posted ANSYS仿真与开发

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mechanical中如何快速开发自动化脚本相关的知识,希望对你有一定的参考价值。

各位好,最近很多工程师朋友 留言说,想实现 Mechanical 自动化,但编写脚本却无从下手,而且官方提供 API 文档和案例又惨不忍睹, 咨询有没有快速上手开发的方法。
上面是一个非常共性的问题,解决方法当然也是有的,今天小田老师就给大伙分享一个骚操作:在录制的脚本基础上进行二次开发。
肯定有很多朋友在疑问:Mechanical 现在 支持Python脚本录制功能了吗?
是的,在2019R3版本之前是没这个功能的,在2021R1之前是Beta功能,之后已经正式发布了,功能也逐渐在完善中。
2019R3~2020R2版本,需要在Workbench设置中Mechanical选项下,勾选Beta功能Journaling,重启软件后,再次打开Mechanical中脚本编辑器,点中录制按钮后即可激活录制功能,再也不用担心脚本代码编写啦。
Mechanical中如何快速开发自动化脚本
接下来,以往期文章《》中的模型为例,演示脚本录制的过程,如下:
Mechanical中如何快速开发自动化脚本
可以看到,点击录制按钮后,界面操作设置时,编辑器会自动录制对应 Python 代码;记录的脚本虽然可以记录结构树中操作过程,例如不同节点插入、删除不同分析设置,更改节点对象对应的部分设置属性等,但是却不能直接拿来复用,存在以下几个问题:
  • 录制脚本比较冗余,可读性较差;而且只录制了部分操作,如载荷加载位置选取操作目前是无法录制的;
  • 节点对象都是通过内部的ID去获取的,复用性较差;因为对于不同的几何模型,内部的ID肯定是不相同的
Mechanical中如何快速开发自动化脚本
所以,就需要我们把录制脚本作为骨架,在此基础上进行二次开发:首先删除冗余代码,然后将内部 ID获取的对象的代码,更改为通过结构树遍历访问的方式,并补充加载位置属性
在前期文章《 》中,我们详细介绍过 Mechanical 的结构树,各节点对应着不同的类对象,父子结构关系和数据对象 (DataModelObject) 的层次是一致的。
Mechanical中如何快速开发自动化脚本
上面图中的结构树为我们提供了对象访问方式: 从顶往下去遍历各节点对象,通过节点对象的索引或者属性(如Name)去引用对象的实例
例如,结构树 Model 父节点下的各子节点对象,可以通过父子关系访问,对于 Static Structural Solution 节点的访问,可以使用如下方式:
Mechanical中如何快速开发自动化脚本
Mechanical的结构树中,所有对象都是继承自DataModelObject基类,并且都有对应的属性:DataModelObjectCategory,对应着节点对象的类型枚举,例如节点:Named Selections 对应 着枚举类型是 NamedSelections,其子对象枚举类型是NamedSelection
节点对应的枚举类型,可以在开发文档《ANSYS_ACT_API_Reference_Guide》中找到命名空间:Ansys.Mechanical.DataModel.Enums,查看DataModelObjectCategory枚举类成员的介绍表。
Mechanical中如何快速开发自动化脚本
通过上面枚举类型,可以封装如下方法去遍历结构树,传入节点类型枚举名和显示名称,返回对象实例引用。
Mechanical中如何快速开发自动化脚本
载荷对象加载位置属性通常为Location,为可读可写的属性,需要赋予Scoping值类型,有GeometrySelectionNamedSelection两种方式,实际中更推荐大家在SCDM前处理中识别和创建边界命名,参见《》。
那么,可以调用GetDataModelObjByName方法,传入枚举类型:“NamedSelection”和提前创建的边界命名,可以获得加载位置的实例对象,传入到相应载荷对象的Location属性,就完成了相应的位置选择操作,如下:
最后,基于录制的基础脚本,我们删除冗余代码、修改变量命名、封装常用方法、赋予加载位置和更改对象访问代码等,修改后完整代码如下,朋友们可以做一个参考。
以上就是本期所有内容,希望对大家有所帮助;朋友们在实际开发过程中,如有相关技术问题或项目合作,可以直接在公众号后台留言,或者邮件至: tguangs@163.com ,小田老师都会定期查看和回复信息的。
点击阅读原文立即学习Python语言在ANSYS的应用52掌握Mechanical脚本自动化ACT二次开发能力,订阅用户可进入VIP群,享受课程答疑服务

以上是关于Mechanical中如何快速开发自动化脚本的主要内容,如果未能解决你的问题,请参考以下文章

Mechanical Simulation借助UE发力自动驾驶仿真

快速定位自动化脚本故障?只需学会这个!

如何快速构建YApi平台完成接口测试中心

闲鱼快速引流玩法3个实用分享!闲鱼自动化引流脚本!

闲鱼快速引流玩法3个实用分享!闲鱼自动化引流脚本!

闲鱼快速引流玩法3个实用分享!闲鱼自动化引流脚本!