首页/文章/ 详情

ANSA_META二次开发——破冰之旅:批量提取DOE采样结果数据

3月前浏览1677
  • 背景

做DOE时,批量提交了一系列计算模型,产生了对应的结果文件。如何不通过界面操作,快速批量地提取关注的结果数据,如指定节点的位移,指定部件的最大应力/应变。此外,针对瞬态或准静态工况,还需要对结果数据的曲线进行一些处理,如数据截取、求平均值、求导、积分、傅里叶变换等。

*如上图计算结果中,是一个准静态的计算结果,需要提取指定点的位移,同时,需要截取曲线红色方框内的数据段,再求得所截取数据的平均值,作为该计算的位移指标。

*此外,还需要提取部件的最大应变(应力),由于是准静态工况,因此也需要截取应变曲线红色方框内的数据段,再求平均值,作为该计算此部件的应变(应力)指标。



  • 工具

    本次将使用BETA/META软件来进行开发,开发语言采用python。



    最后统计的结果数据文件就可以通过简单整理,导入HyperStudy或者Optimus软件进行进行代理模型的创建,或用作其他。



    • 流程

    上图为此次开发脚本的大致流程,仅供参考  

    • 关键接口函数
    1. meta.nodes.Node.get_deformations

      获取指定节点的变形,示例代码如下:





















      # PYTHON scriptimport metafrom meta import nodesfrom meta import models
      def main():  m = models.Model(0)  n = nodes.Node(id=161, model_id=m.id)  res = m.get_current_resultset()    deform = n.get_deformations(res)  if deform:    print(deform.x) # X deformation    print(deform.y) # Y deformation    print(deform.z) # Z deformation    print(deform.total) # Total deformation    print(deform.node_id) # Id of the node
      if __name__ == '__main__':  main()
       


    2. meta.models.Model.get_centroid_scalar

      This method gets all centroid scalar values for a model specified by its id.

      # PYTHON scriptimport metafrom meta import models
      def main():  m = models.Model(0)  res = m.get_current_resultset()    model_centroid = m.get_centroid_scalar(res, 'min')  #model_centroid = m.get_centroid_scalar(res, 'all', non_zero = True)  #model_centroid = m.get_centroid_scalar(res, 'min', layer = 'top' )  for centroid in model_centroid:    print(centroid.value, centroid.element_id, centroid.second_id, centroid.type)
      if __name__ == '__main__':  main()  
       

      类似的还有meta.models.Model.get_corner_scalar等接口可供调用。


      另外还有一个基于指定PID来获取该部件最大应力(应变)的接口,感兴趣可私信后台。

    • Meta无窗口调用运行脚本
      meta -nogui -s *.py  

    "C:\Users\Administrator\AppData\Local\Apps\BETA_CAE_Systems\meta_post_v22.0.0\meta_post64.bat-nogui -s *.py


    希望大家点个关注,不迷路。

来源:TodayCAEer
SystemDeform二次开发ANSApythonMETA
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-08-14
最近编辑:3月前
TodayCAEer
本科 签名征集中
获赞 18粉丝 28文章 249课程 0
点赞
收藏
作者推荐

ANSA二次开发:钣金三角形单元消消乐

CAE分析流程当中,通常分为三个阶段:1、前处理,2、求解,3、后处理。其中,前处理作为CAE分析当中最耗时耗力的阶段,会花费大量的时间在划分网格上。虽然现在的BatchMesh划分钣金零件的算法相较几年以前,已经有非常大的提升了,但在网格流向,非标准特征划分还有再优化的空间,那么调整流向就涉及到了如何减少三角形单元的占比,让三角形单元朝向同一方向。当然缩小网格尺寸可以解君愁,不管哪款软件都能生成流向很棒的网格。但是带来的计算资源消耗将是成倍的增加。以四边形单元为例,采用平均尺寸8划分网格,一个单元所占的面积将是64,当网格尺寸缩减到5,占用的面积将是25,虽然网格尺寸缩减了3,但是原本一个8mm单元所占的面积,如果用5mm划分,那么就需要2.56个单元,随之而来带来的计算量也是成倍增加。对于不同的三角形将采用不同的处理方式,视频中仅演示了两个三角形相对的情况,如何合并三角形,例如视频中还有三角形背对的情况,那就得采用paste节点的方式处理三角形,只需针对不同的三角形调用不同的策略即可,对于部分特征也可采用固定的画法,例如粘胶槽,溃缩槽等。目前视频中采用的是手动选择三角形。如何自动识别成对的三角形单元,这就需要通过算法来实现。这就涉及到如何将网格的topo关系转化为数据结构,再调用程序来进行处理、或者通过图像识别的技术识别三角形单元。这样就将需要人工识别三角形的的操作,转化为程序识别的方式实现,这样自动划分网格就不在局限于某一程序,ANSA,HyperMesh皆可实现。程序返回成对的单元ID,即可调用对应软件API,从而实现自动调整三角形。来源:TodayCAEer

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈