首页/文章/ 详情

ANSA中快速调用脚本的5种方法

5月前浏览13729

本文摘要(由AI生成):

本文介绍了在ANSA中快速调用脚本的五种方法,包括通过Script Editor调用、通过Load Script调用脚本、创建固定按钮调用脚本、设置一级菜单按钮以及为按钮设置快捷方式。文章详细解释了每种方法的操作步骤和注意事项,并强调了自定义功能按钮的便捷性和实用性。通过本文的介绍,读者可以更加高效地利用ANSA进行工程分析和设计,提高工作效率。


大家好,我是团长。


本期介绍下当我们有现成的脚本或者程序后,我们如何在ANSA中调用它们,按照调用的便捷程度,团长总结出5中方法以供大家学习和参考。




我们拿上一期文章中的用到的根据名称识别Property后修改零件厚度的脚本来说事。我们保存好的脚本名为:change-Thickness.py
(想看上一期的内容,可以关注团长的微 信公众 号【CAEer】,订阅所有相关文章)

1

通过Script Editor调用


通过Script Editor界面的File --> Open --> Select files --> Open 选择已经准备好的脚本文件并打开。


打开的文件会出现在当前界面,只需要按键盘上的【F5】或者点击Editor的Run按钮,就能运行当前的文件中的程序。


这种运行脚本的方式有利有弊。好处是能自由修改脚本,坏处则是运行脚本的路径有点长,每次运行都要经过漫长的点击找到这个脚本来运行,而且容易不小心更改掉脚本的内容。所以如果知识单纯的想要调用脚本,是不太建议这中方式的。

2

通过【Load Script】调用脚本


通过ANSA界面上方的工具栏找到Script --> Load Script选项,选择要加载的脚本,双击可直接运行。


运行完成后,我们查看Property信息,可见包含【PART】关键字的PSHELL的厚度已经被修改。同时,脚本运行的信息(主要为print的内容)会显示在ANSA界面左下角的info栏。


上述的方式不会打开具体的脚本内容,杜绝了误改脚本的可能性。但是这个方法貌似也并没有方便多少,因为还是要找到脚本所在地,双击来执行脚本。但是的但是,这个脚本被加载过一次,机会被记住哦,下次只需要点击【Reload All】即可快速在此执行,如下所示。


如果担心【Reload All】一下子不分青红皂白把所有脚本都执行一遍(毕竟load的脚本都会记忆在这里),那么你可以选择【Run function】,这样呢,你可以选择性的去执行你想运行某个函数。


好了,这种方法从便捷性来将已经比方式1好了很多了,但还是有些不便性,一个是去加载这个脚本需要制定路径,另一个是ANSA关掉后再打开,这个路径又需要重新去指定。为了解决这个麻烦,我们接下来介绍方式3。

3

创建【固定按钮】调用脚本


怎么样在ANSA的操作界面中创造出一个按钮,要使用的按钮,每次点击一下就可以调用出来呢?这里就要介绍到ansa的User Script Buttons功能了。可以通过以下方式打开,点击自己设定的按钮,就可以了。


可问题是,怎么在这个窗口创造出来自己需要的按钮呢?

这个就要用到ansa的一个自定义文件了,其名为【ANSA_TRANSL.py】,其路径也必须在ansa的安装路径下,一般来讲ansa在启动时就会自动打开该路径下的该文件,检索里面的用户自定义程序,以按钮的形式显示在ansa界面中。这个路径很关键,文件的名字也很关键,两者都正确,才能正确调用,如果没有名为【ANSA_TRANSL.py】的文件,则需用户自己创建一个同名文件。这里展示下我的电脑上的文件路径名。


为了更好得演示调用脚本的效果,我们将原本要调用的脚本【change-Thickness.py】进行改造。主要更改是将原本定义的函数复 制出一个,一个用来把厚度改为2,一个用来把厚度改为3。其内容如下所示。


import ansafrom ansa import basefrom ansa import constantsdef thickness2():  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.")def thickness3():  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': 3}        changeStatus=base.SetEntityCardValues(constants.NASTRAN, prop, vals)if changeStatus == 0:          print("the thickness is changed.")



然后,我们在【ANSA_TRANSL.py】文件中写入以下内容。


import ansafrom ansa import betascript@ansa.session.defbutton('TuanZhang','Thickness=2')def ssss():  betascript.LoadExecuteFunc('F:/ANSA-files/test/test_scripts/change-Thickness.py', 'thickness2')@ansa.session.defbutton('TuanZhang','Thickness=3')def dddd():  betascript.LoadExecuteFunc('F:/ANSA-files/test/test_scripts/change-Thickness.py', 'thickness3')



重新打开ANSA,我们发现Script Buttons处出现如下两个按钮。


通过以下的比对我们就能发现【ANSA_TRANSL.py】中几处变量各代表什么。


a:组名。一个组里可以放很多个按钮
b:按钮名
c:按钮调用的脚本。(必须包含详细路径)
d:脚本里的函数名。(按钮真正的功能)

照葫芦画瓢,我们可以照这个格式加入我们想加入的任何自定义的功能。不过团长仍然嫌弃这个路径有点长,毕竟点击【Script】--> 【User Script Buttons】 --> 打开界面 --> 【按钮】,至少需要点击三次,而且如果自己创建的脚本按钮太多(如下所示),到时候打开也得找半天,依然比较费事。


所以有没有一种方法,将自己最常用的功能做一个类似于ANSA自带的图形按钮放在最顶端,一下就能点到它呢?





4

一级菜单按钮


大家都知道ANSA比Hypermesh快的一大原因就是ANSA的一级菜单系统,很多功能只需要点击一次就能实现,接下来,我们来看下,我们怎么自己造一个一级菜单的功能按钮出来。

我们在步骤3的基础上,继续下一步。找到设置栏,如下所示,定位到User Script,在右侧的空白界面右键新建Toolbar。


然后将自己希望设置的按钮功能拖到新建的Toolbar上。


按【OK】键退出后,我们会发现这个功能按钮出现在ANSA的界面上。


回到上一步的参数设置,如下所示,各个参数代表什么意思呢?


a:按钮调用的函数;
b:给这个按钮设置一个快捷方式;
c:给这个按钮设置一个显示名称;
d:当鼠标移到这里时显示的提示消息;
e:给这个按钮设置一个图标;


如此,我们便设置了一个图标按钮来快速调用自定义的命令。

需要注意的是,为了每次打开ansa都有这个图标按钮,需要对之前的设置进行保存。


5

按钮的快捷方式


还有比方法4更快捷的方法,答案就在方法4中,我们还可以对这个快捷方式设置一个快捷方式,如此一来,连鼠标点击都省了。


设置好自己喜欢的快捷方式,按【OK】键确认,回到ANSA界面,直接键盘上敲击自己设置的快捷方式,该命令即可立刻被执行。

总结

ANSA中快速调用脚本的5种方法:
1、通过Script Editor调用
2、通过【Load Script】调用脚本
3、创建【固定按钮】调用脚本
4、一级菜单按钮
5、按钮的快捷方式

你学到了吗?

本文完。







结构基础复合材料汽车ANSA材料
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2020-09-05
最近编辑:5月前
团长
硕士 | 白车身结构设... 专注ANSA使用技巧-微信公众号『C...
获赞 114粉丝 949文章 139课程 6
点赞
收藏
作者推荐
未登录
2条评论
团长
专注ANSA使用技巧-微信公众号『C...
3年前
关注*****【CAEer】,了解更多ANSA的使用技巧。
回复
宋军
不断学习,不断前行。
4年前
非常不错的 希望能多分享这方面的内容 二次开发相关的文章和教程太少了
回复
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈