导读:本文深入浅出带读者真正了解Ansa二次开发,给你一条学习Ansa二次开发的路径。为了帮助大家更好理解和掌握零基础入门ANSA二次开发,笔者受邀在6月9日为读者朋友带上线上直播《ANSA二次开发学习方法,资料和工程案例详解》详情见后文,以下是正文。
目前CAE 工程师的主流前处理软件主要有Hypermehs以及Ansa。Hypermesh是Altair旗下的产品,进入中国市场比较早,市场占有率较高。并且相关的软件操作以及二次开发教程也很丰富,有很多还是官方发布的。Ansa相对而言进入中国市场的时间也比较晚,网上高质量的操作教学视频和二次开发教程都很少。但是在使用下来后本人觉得Ansa在网格以及模型的前处理方面相比于Hypermesh更为便捷,目前使用Ansa作为有限元模型前处理的公司也越来越多。即使你已经是一名资深的Hyermesh软件使用者,还是建议大家在空余时间了解、学习一下Ansa,也许会为你打开新的大门。
相信在看文章的仿真工程师们在日常建模过程中经常会进行很多重复性的操作,就比如进行刚度分析时需要对不同的节点加载集中力,Optistruct求解器需要写Header中的Subcase,Abaqus求解器也需要定义Step部。后续还需要从结果文件(h3d/odb或pch/dat)中计算刚度。
那我们能不能在界面中只选择节点,或者输入节点ID让一个程序自动帮助我进行加载以及模型的输出,最后在输出一个刚度结果文件呢?
甚至我们还可以衔接求解器的计算过程,让软件自动提交计算、检测是否计算完成。做到模型加载、输出、提交计算、结果输出的全自动。
直观看学习Ansa二次开发能够大大提高工作效率,其实另一方面他也提高了我们有限元模型的标准性,不同的人使用程序得出的模型以及结果一定是相同,避免的人为的错误。
总结来说Ansa二次开发能够实现你在Ansa界面中99%的操作自动化,那剩下的1%呢,说实话我还没遇到。
对于想要解放双手,让工作自动化提高工作效率的仿真工程师,Ansa二次开发都是你绕不过的一条路。
网上的Ansa二次开发的教程比较少,成体系的课程就更少了。那我们应该如何快速入门呢?作为一名从事Ansa二次开发多年的仿真工程师,我可以负责任的告诉大家,看完这篇文章能让你少走很多弯路。
首先,你需要对Ansa界面操作很熟悉。因为二次开发中很多命令与Ansa界面操作都是一一对应的,甚至他们的名字都一样。
二次开发的过程也是将你界面操作的流程通过循环、判断等操作固定为一个流程。要至少熟悉下面图片中的按钮及其功能。
工欲善其事必先利其器,正式开始学习Ansa二次开发之前我们需要先准备好“武器”,这里给大家提供两种选择:
一个是Ansa自带的原生开发环境—Script Editor,第二个是商业IDE开发环境—Pycharm、Vscode,两者各有优点。Srcipt Editor能够边编写代码边运行,并且能够搜索相应的API(自带小例子);商业的开发环境相较于Script Editor功能更加强大,在进行大型项目开发时更加实用,并且通过“语法补全包”能够做到下面这种自动提示、补全的功能,对于新手入门很有帮助。
下面简单介绍一下上述两种开发环境:
(一)Ansa自带的原生开发环境—Script Editor
通过Srcipt→Script Editor进入
布局很简单,主要分为菜单栏、工具栏、项目文件窗口、快速搜索窗口、结果输出及帮助文档窗口。
(二)商业IDE开发环境—Pycharm、Vscode
从网上就能够下载到免费的Pycharm以及Vscode,打开界面后我们可以利用在Ansa安装后自带的“语法补全包”,将其加入到以上两个软件的配置环境中。该安装包如果各位朋友需要,可以联系仿真秀工作人员,大家可以加入我们的Ansa知识权获得。
配置的方法也很简单,大家在网上搜找即可,实在搞不明白的同学们,可以关注我,后续会专门写一篇文章进行详细介绍。
Ansa二次开发的语言是Python,但是初学者日常开发中不会用到很多高深的技巧,大家入门前只需要在网上简单学习一下:变量、列表、字典、**、字符串、函数、循环、判断以及类这些知识就够了,后续需要的我们在实战中逐步完善,很多同学学了一个月的Python基础,但是却只停留在这一步,总是认为准备不够。本人负责人地告诉你,学会上面那些相关知识就足够开始进行下一步了。
想要学会Ansa二次开发,“实体”这个概念是你绕不过去的一个坎。了解透彻实体的相关API可以说你计算是入门Ansa二次开发了。
我们在ANSA中看到的点、线、面、各种类型的网格、甚至连接触对都可以被称为实体。其实最常见的实体就是在我们左侧模型树中看到的,如下图所示。
在ANSA二次开发中通过下属命令打印实体的类型,可以看到ANSA二次开发中的实体是Python中类的概念。
这也很好理解,实体中不管是点、线、面这些几何元素,还是壳网格、实体网格这些单元,亦或是属性、材料等都是由自己的名字、ID、comment一些通用的属性。创建一个Class-类作为所有实体的父类,然后再继承这个父类,通过增添不同的属性形成新的子类,这样做既能够提高代码使用效率,还能够使得更好地封装代码。
既然作为Python语言中的类,那么必然有两个最基本的“属性”:
(1)类属性
(2)类方法
下面我们注意详细讲解实体的这两种“属性”。
a、Entity属性
那我们把ANSA中的元素即Entity比作不同工种的人。那么人就会有一些最基本的属性,比如说姓名、身高、体重等等,同样ANSA中即使不同种类的Entity也都会的属性。
ANSA中有些Entity的属性存在,但是为空。这是因为你没有将属性赋予给他,比如说Entity的名字,不进行设置默认是空字符串。
下面是一些常用的Entity属性,当然有些属性是某些Entity特有的。
(1)_id (int) —— 在相同种类Entity中的id号
(2)_name (string)—— 该Entity的名字,当然如果没有返回的是空字符串
(3) _edge_index (int)—— 不是所有的Entity都有,我也不知道代表啥
(4)_comment (string)—— 该Entity的描述,类似于个人简介
(5)_bname (string)—— 以二进制命名的名字
(6)_bcomment (string)—— 以二进制表示的Entity的描述
(7)position (object)—— Entity的位置信息,但是只有以下种类的Entity有这个属性:GRIDs, MORPH POINTs, CONNECTION:SpotWeld_Points,CONNECTION:GumDropsCONNECTION:Bolts, CONNECTION:Robscans, CONNECTION:Points,TARGET POINTs, POINTs, CENTERs, HOT POINTs, CONNECTOR ENTITY, GENERIC_ENTITIES_BUILDER, GEB_BC, GEB_OR, GEB_MT,GEB_SB, GEB_GN, A_POINT, LC_POINT.
b、Entity方法
上面我们知道Entity有着不同的属性,那我们如何获得这些属性,如何修改这些属性?
下面就介绍一下Entity的不同方法
(1) __init__ 这个方法负责初始化Entity类
(2)ansa_type 返回该Entity在不同deck中的类型,比如说点在ABAQUS中叫NODE,在NASTRAN中叫GRID
(3)card_fields 返回该Entity的各种参数组成的列表,这里的参数时在ANSA中点击不同deck中INFO弹出界面所显示的内容,下面是GUI中在ABAQUS中现实的壳单元参数与使用card_fields方法打印出来的参数对比,可以发现两者完全一样。
(4)get_entity_values 获取该Entity指定参数的值,例如可以查询上面图片中Shell单元的ID,PID等等
(5)is_visable 返回布尔值,该Entity在屏幕中可见返回True,否则返回False
(6)set_entity_values 设置该Entity指定参数的值
好了过多的就不在这里介绍了,大家可以知乎关注“开车小王子“、仿真秀”ANSA攻城狮“,上面已经发布了多篇关于Ansa二次开发的系列文章,相信看完你能够对Ansa二次开发成体系的了解。
学习Ansa二次开发绝对不能“纸上谈兵“,一开始不用一定使用二次开发完成很复杂的操作,你可以用二次开发试着解决一些小问题,比如:将Property的名字改为Part名称-材料名称-厚度。这个小需求就会涉及到实体的搜集、便利;字符串切分、组合;实体属性的设置等知识点。看似小需求但确实你学习后很好的练习例子。
四、ANSA二次开发有哪些好的学习资料?
最后再给大家来电点硬货,给大家提供一些学习的好资料。首当其冲的就是Ansa自带的帮助文档,入口在这里:
里面有API的解释以及一些小例子。再有就是网上的一些文章,这里给大家推荐几个博主:知乎—‘开车小王子’,CSDN-‘CAECoder’,仿真秀—‘ANSA攻城狮’和‘团长’。里面有很多对于初学者和有帮助的文章。
读者福利:请在文章附件直接下载以下学习资料,如果遇到麻烦,请在文章下方留言或联系平台客服领取。
最后也可以在仿真秀平台系统地学习Ansa二次开发,这里我就毛遂自荐一下自己的课程——ANSA二次开发从入门到精通22讲。
此外,笔者为所有订阅用户提供知识圈答疑服务和VIP用户交流群。并附赠课程相关资料等(平台支持自行开具电子发票)。
最后希望大家能够顺利入门Ansa二次开发,借助二次开发彻底解放双手,提高你的工作效率。为了帮助大家更好理解和掌握以上内容,笔者受邀在6月9日(周五)19时30分,为大家带上线上直播交流,以下是我的的直播安排:请扫码报名和回放。
零基础入门ANSA二次开发:学习方法、资料和工程案例详解-仿真秀直播