ANSA Script Editor使用教程

本期,我们具体来讲讲怎么用【Script Editor】这个工具进行二次开发。



我们的目标是:

识别所有包含“PART”字节的Property,并判断是否为PSHELL类型,如果是,将该Property的厚度更改为2mm。完成更改后,打印更改信息以告诉操作者。



第一步,打开测试模型,模型如下所示,其实,模型长啥样没关系,这里我也只是需要这个模型的Property信息而已。



这个模型的Property信息如下所示。


分析下Property信息就可以发现,满足我们条件的Property只有两个,PID分别为101和104。最终的结果应该是将厚度更改为2mm。

当然,我们可以直接手动更改厚度,毕竟只有两个要改的嘛,改起来也是分分钟的事。不过如果满足这个条件的有成千上万个呢?有点难办了。


所以,此处强行将简单问题复杂化,我们用代码的方式来更改。




首先,我们打开Script Editor,打开方式如下所示。



打开的界面如下所示。



选择File --> New --> Python script --> OK,新建一个脚本编辑文件,如下所示。



在如下的新生成界面中,就可以写点程序了。



在写代码前,我们先来理一理思路。


1、检索所有的Property实体。

2、判断检索到的每一个Property实体的名称。

3、判断名称是否包含“PART”字节。

4、进一步判断实体类型是否为“PSHELL”。

5、更改满足3和4的Property的厚度为2mm。

6、更改后打印出更改信息。

接下来,我们按照以上思路按部就班地的实现功能。




我们来偷偷懒。



我们首先需要用CollectEntities来检索到所有的Property,在检索栏输入collect即可发现base.CollectEntities函数被筛选出来,选中这个函数,右键点击鼠标该函数立即直接出现在编辑窗口,双击该项目,也会发现关于这个函数的使用说明和使用示例出现在下端的Help栏中




参考Help栏里的函数示例,我们可以写出以下程序实现步骤1的功能。

import ansafrom ansa import basefrom ansa import constantsdef main():  props = base.CollectEntities(constants.NASTRAN, None, "__PROPERTIES__")  print("props:",props)  for prop in props:    print("PID: ", prop._id)main()


在如下的界面中,1展示了以上的代码,2展示了如何保存该段代码,3展示了如何运行代码(也可以按键盘上的F5快捷键运行代码),4展示了输出的运行结果。



继续根据以上步骤继续对该段代码进行扩充,(建议新手对每一步的执行结果进行检测,用print函数打印出每一步的执行结果),不断调试,获得实现以上要求的所有代码内容:


import ansafrom ansa import basefrom ansa import constantsdef main():  props = base.CollectEntities(constants.NASTRAN, None, "__PROPERTIES__")  #print("props:",props)  for prop in props:    print("PID: ", prop._id)    propName = prop._name    print("propName: ", propName)    propName.find("PART")    if propName.find("PART") == 0:      print("[PART] Found!!!")      propType = prop.ansa_type(constants.NASTRAN)      if propType == "PSHELL":        print("[PSHELL] Found!!!")        vals = {'T': 2}        changeStatus=base.SetEntityCardValues(constants.NASTRAN, prop, vals)        if changeStatus == 0:          print("the thickness is changed.")main()


以上代码的执行结果如下所示:

Generating code...PID:  101propName:  PART_extra_reinf[PART] Found!!![PSHELL] Found!!!the thickness is changed.PID:  102propName:  SideMemberPID:  103propName:  CrossUpperPID:  104propName:  PART_CrossLower[PART] Found!!![PSHELL] Found!!!the thickness is changed.PID:  105propName:  ReinfPID:  106propName:  SideMemberPID:  110propName:  PART_suport[PART] Found!!!Code generation completed.running...finished.


回到ANSA打开的模型界面,打开Property属性,我们发现满足要求的Property的厚度已经被修改,如下:



本文不仅展示了如何使用Script Editor,还展示了更改参数的常用函数搭配,这在二次开发中是非常常见的搭配。


a、检索得到实体:CollectEntities

b、更改实体参数:SetEntityCardValues



本文完





免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空