首页/文章/ 详情

ANSA中的Script Editor怎么用?

3年前浏览2476
大家好,我是团长。
本期,我们具体来讲讲怎么用【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

本文完。

ANSA
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2020-12-20
最近编辑:3年前
团长
硕士 | 白车身结构设... 专注ANSA使用技巧-*****『CAEer』...
获赞 101粉丝 837文章 125课程 6
点赞
收藏

作者推荐

未登录
还没有评论

课程
培训
服务
行家

VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈