ANSA二次开发API应用简易指南

点击蓝字,关注我们

0.

 概述

本文旨引导用户初步了解ANSA API(应用程序编程接口),撰写实用脚本,并在ANSA内进行调用。

1.

 关于ANSA API

打开ANSA后可以通过[ANSA Help > Documentation Index > Automation Guides >  BETA Suite API]选项找到对应ANSA版本的API资料库,使用关键词查找相关API,并查看各个API的实用案例。
ANSA API由一系列直接与ANSA GUI功能接口交互的函数和类组成。这些功能和类被分为不同的模块(如表1所示),每个模块都需要在使用前被导入。

ANSA二次开发API应用简易指南

表1 ANSA API Modules

2.

常用的ANSA API

如表2所示为一些最常用的ANSA API。作为面对对象的编程,ANSA的大部分API都基于ANSA实体对象运行,可以使用base.GetEntity()获取特定ANSA实体,或是使用base.CollectEntities()收集特定类型的ANSA实体;使用base.CreateEntity()可根据参数创建ANSA实体对象;base.GetEntityCardValues() 和 base.SetEntityCardValues()可用于获取和修改ANSA实体卡片信息;base.AddToSet()可用于增加SET的内容。

ANSA二次开发API应用简易指南

表2 常用的ANSA API

3.

调用ANSA API实现简单功能

在这一板块,我们将调用先前介绍过的基础ANSA API实现以下功能:

  • 收集所有ANSAPARTs,并创建新的SETs;

  • 根据COG Y位置将它们加入对应的SET(Left,Right,Middle);

  • 根据COG Y位置修改其名称(添加后缀)。

ANSA二次开发API应用简易指南

图1 收集ANSAPARTs并创建SETs

首先,收集所有的ANSAPARTs并创建SET。使用base.CollectEntites()函数可以搜寻指定过滤器内的所有ANSA实体,该函数的返回值为包含所有符合条件的“ansa.base.Entity”对象的列表。在使用部分APIs时,需要指定对应的求解器, 不同求解器对应的ANSA实体关键字会有所不同,例如ABAQUS求解器对应的节点关键字为NODE,而在NASTRAN求解器下为GRID。
每个API都包含一些可供选择的参数,比如收集实体的功能可以指定只收集可见实体-filter_visible = True。具体每种API对应的参数都可以在ANSA API资料库中找到,用户也可以在Script Editor右侧的列表中通过关键词搜索指定函数进而获得相关帮助文档。
base.CreateEntity()功能可以根据字典内容,创建对应的ANSA实体。在这个案例中,我们将创建名字为“Left”、“Right”和“Middle”的三个空SET,用于放置对应的ANSAPARTs。

ANSA二次开发API应用简易指南

图2 判断ANSAPART位置,并将其放入对应的SET中

其次,对所有收集到的ANSAPARTs进行遍历并确定每个部件的COG Y位置,根据位置参数值将其分配到对应的SET中。使用base.GetEntityCardValues()函数收集ANSA实体卡片中的重心的y坐标值,该函数的返回值是字典。使用base.AddToSet()功能可以用于将实体加入SET中。

ANSA二次开发API应用简易指南

图3 根据COG Y位置在ANSAPART名字添加后缀

除了使用base.GetEntityCardValues()函数,也可以直接调用“ansa.base.Entity”对象的属性。使用dir(object)可以获取对象的所有属性,部分卡片参数可以直接被调出。object.card_fields(deck)方法可以用于查看在该ANSA实体卡片中可以获取的属性。使用base.SetEntityCardValues()函数可以直接设置ANSA实体卡片中的参数。

4.

在ANSA中调用Python脚本

用户可以直接通过ANSA Script Manager管理脚本。首先选择Script Manger选项,点击弹窗右上角“Load”按键,在Select Files窗口选中对应的Python脚本,点击“Open”将其导入。最后在Script Manager界面选中脚本的主函数运行即可。

ANSA二次开发API应用简易指南

图4 在ANSA中调用Python脚本

END

作者 | 陈安生

BETA CAE 工程师

ANSA二次开发API应用简易指南

 

评论