大家新年好呀,最近空闲的时间,我都在研究ANSA在LSDYNA求解器下的二次开发。
所以最近的大部分文章更新都是和ANSA的二次开发相关的内容,我会慢慢的教大家怎么去开发一个个的小功能,最后把这些小功能组合起来,开发出一个大型的脚本。
万事开头难,所以我们就从简单的基础的来,这次就先创建一个边界条件。
有这个想法的原因是,我觉得从ANSA原本的界面里,找BOUNDARY这个按钮太麻烦了。
所以干脆自己写了一个,拿出来自己用,等到时候要用了,直接点就行。
请看效果;
下面请看代码:
import ansa
from ansa import base
from ansa import constants
@ansa.session.defbutton("Script", "BOUNDARY")
def BOUNDARY():
deck=constants.LSDYNA
cset=base.CollectEntities(deck,None,"SET")
n=cset[-1]._id
set_nodes=base.PickEntities(deck, "NODE")
node_set=base.CreateEntity(deck, 'SET',{'SID':n+1})
base.AddToSet(node_set, set_nodes)
val={"NSID":n+1,"c":"123456"}
base.CreateEntity(deck, 'BOUNDARY_SPC(SET)',val)
下面我就开始讲一下用到的几个函数,这些函数在我们后面的二次开发中还会频繁使用,所以我们要掌握好他的使用方法。
base.CollectEntities这个函数可以收集实体,我用他先来收集一下SET。
看一下SET的编号,为后面创建的nodes_set做准备。
base.PickEntities这个函数可以让我们用鼠标选择实体,这里就是用来选择做约束的节点了。
base.CreateEntity这个函数可以让我们创建实体,这里就用他来创建SET和BOUNDARY。
base.AddToSet这个函数可以让我们把前面鼠标选择的节点放到我们创建的SET里。
可以看到,这么简单的一个小脚本里,我就用了四个函数。说明这四个函数的使用还是很频繁的。
今天的教学就到这里,本文完。