Meta是与Ansa配套的一款后处理软件,操作方法、逻辑与Ansa基本一致,如果让同时用过Meta与Hyperview的我来选择一款软件做后处理,我一定毫不犹豫选择Meta。
作为一名仿真工程师,经常会对一些常规工况进行后处理工作,有很多时候所做的工作重复且没有意义!就比如说汽车行业的抗凹工况,一个翼子板可能有几十上百个点,如果一个结果一个结果进行查看,光是加载结果就会让人崩溃!更别说还要做位移-载荷曲线,写报告!像这种重复性的工作,我们完全可以交给Meta二次开发去解决!
本文主要内容是介绍Meta二次开发的三种方法,希望能够让大家对meta二次开发有一个基础的认识!
下面直接进去正题!
一、session语言开发
通过meta界面对gui操作进行录制,基本上所有的meta界面操作都能录制成session语言!session语句都是由英文单词或头几个字母组成的,非常简单易懂,通过单词含义很容易就能了解这句代码的含义!就好像下边这张图片中的Session语言,从英文意思就能知道这是在打开模型,加载应力结果,并且显示节点上平均后的Mises应力。
图一 Session语言
session语言还可以进行简单的逻辑判断以及循环操作,大大增加了代码开发的灵活性!一般来讲如果不涉及到复杂逻辑判断,数据查询、储存,只是对gui界面操作进行复现,使用session语句无疑是首选!并且session语言还可以让用户定义一些窗口和用户进行交互,用户可以输入信息传给定义好的变量!这些信息可以是路径,数字,字符串!
图二 Session语句与用户进行信息交互
关键是meta提供了快速进行变量定义的工具,大大加快了开发的速度!讲了很多session语言开发的优点,接下来就要说缺点了!
首先session语言无法获取到有限元模型结果中的数值。
其次,session语句对于变量的存储不是很友好,没有类似于python的列表、字典这样的数据结构,因此无法进行大量数据的储存、操作、查询!需要进行模型结果读取、输出等的场景来基本无法使用session语言!
session语言本身没有办法进行复杂的逻辑判断和循环,有时候如果需要重复进行某一个操作,代码量可能会远远多于python!
最后,session语言无法进行复杂界面的定制开发,它仅仅支持弹出一些简单的输入对话框或者路径选择框!无法按照自己的想法进行界面布局、创建回调函数!
不过session语言的这些缺点我们完全通过在session语言中调用python语言来完美解决!不过囿于篇幅限制,我就不展开介绍了!
二、python语言
python语言是当今应用最为广泛的编程语言之一,丰富的外部库服务了它无限的可能性,我们在meta二次开发中也能够充分利用python的外部库matplotlib的例子运用python进行meta二次开发过程中。
首先就是要熟悉python操作的基础对象-实体!实体的种类非常多,一共有34种,不过其中常用的也就大约6种,meta中的实体其实就是python中类的概念,拥有属性与方法!所以我们学习的路径也是先熟悉实体属性,然后了解搜索实体(实际上绝大部分场景我们都不需要创建实体,这和ansa的二次开发不一样,meta二次开发中我们更多的是对后处理结果的读取、筛选!当然必要时候会创建标注、取消等)创建实体、设置实体属性等的api。这些api能够让用户轻松过去有限元结果模型中的任何结果!这完美弥补了session语言的一个缺点。
除此之外python语言不论是本身还是meta针对python语言开发的库,都有图形界面开发的功能!能帮助用户进行复杂界面的开发!这里还是推荐大家使用meta针对ansa开发的guitk库进行图形界面开发,因为使用外部的图形开发库可能会由于兼容性问题遇到很多难以处理的bugpython语言有很多操作实体的api但很多界面操作没有对应的api,不过不要慌,我们可以在python语言中调用session语句!
三、ToolBar
最后一种开发方法是使用toolbar工具,这种方法实际是通过toolbar来进行界面的快速创建,通过python或者session语言实现核心功能!主要的优点就是小白也可以在几个小时内快速掌握界面开发,对于不复杂的界面开发,相比于python,使用toolbar工具能够做到事半功倍!在toolbar中经过应用python及session语言则是这种二次开发方式的重点与难点!
图三
总而言之,meta二次开发的方式还是很灵活的,三种开发方式对应不同的应用场景!而且python与session语言还可以相互调用,弥补了各自的缺点!欢迎大家关注我在仿真秀(Ansa攻城狮)以及知乎(开车小王子)的账号,我会不定期更新一些关于有限元知识、软件操作以及课程等的干货!