ANSA二次开发PID筛选案例介绍

2017-03-13  by:CAE仿真在线  来源:互联网


今天我们来介绍一个二次开发案例—ANSA中零件PID的筛选与操作。

首先先看一下需求:

ANSA二次开发PID筛选案例介绍ANSA技术图片1

如上图所示。有一堆零件,软件已经自动区分出PID。它们的PID名字都以“part”加数字开头。现在要求:

将名称含PART1的PID仅显示,topo

将名称含PART2的PID仅显示,topo

将名称含PART3的PID仅显示,topo(判断是否有part4,如果有topo,继续判断PART5,6,7……如果没有终止topo)

首先分析一下需求,将名称含有XXX的PID做指定操作,其实就是对PID进行分类,通过名称含有XXX来筛选,这刚好可以应用字典来解决,那么剩下的就是逻辑了。

下面来具体写一下这个程序:

importansa

from ansaimport base

from ansaimport constants

defmain3():

#根据SHELL_PROPERTY收集实体

shells=base.CollectEntities(constants.FLUENT,None,'SHELL_PROPERTY')

namelist=list()

adict={}

#对收集到的实体列表进行遍历

for shell in shells:

val=('Name',)

#取到PID名字的字典(单个)

namedict=base.GetEntityCardValues(constants.FLUENT,shell,val)

#取到字典键‘Name’所对应的值(PID名字)

name=namedict.get('Name')

#每次将PID名字加入名字列表里

namelist.append(name)

#对PID名字列表进行遍历

for name in namelist:

if name[0:5]not in adict:

adict[name[0:5]]=[]

#取到字典键所对应的值(列表)

list2=adict.get(name[0:5])

#将名字加入这个列表

list2.append(name)

print(adict)#测试

#取到字典键的列表

keys=list(adict.keys())

keys.sort()

parts=list()

#对字典键的列表进行遍历

for key in keys:

#取到字典键所对应的值(列表)

list3=adict.get(key)

i=0

#对这个存有PID名字的列表进行遍历

for l in list3:

part=base.GetPartFromName(str(list3[i]))#取到PID名字所对应的零件

parts.append(part)

i+=1

base.Or(parts)

base.Topo()

options=[ "UNCHECKEDFACES","NEEDLE FACES", "COLLAPSED CONS", "TRIPLECONS", "OVERLAPS", "CRACKS", "SINGLE CONS"]

fix=[1,1,1,1,1,1,1]

ret=base.CheckAndFixGeometry(parts,options,fix,True,True)

if ret==None:

print ('No errors!')

#清空parts列表

del parts

base.All()

#注:因为本身的PID名称列表是无顺序的,所以取到的名字的先后顺序也是跟随PID名称列表的(无序的),就算能够排序,但是不确定含有相同part字段的名字有几个。所以在判断名字中含有part几的时候,不能使用part i,i+=1这种自增形式来顺序的判断part4、part5...


开放分享:优质有限元技术文章,助你自学成才

相关标签搜索:ANSA二次开发PID筛选案例介绍 ANSA培训 ANSA培训课程 ANSA软件培训班 ANSA在线视频教程 ANSA学习教程 ANSA软件教程 ANSA资料下载 Fluent、CFX流体分析 HFSS电磁分析 Ansys培训 Abaqus培训 Autoform培训 

编辑
在线报名:
  • 客服在线请直接联系我们的客服,您也可以通过下面的方式进行在线报名,我们会及时给您回复电话,谢谢!
验证码

全国服务热线

1358-032-9919

广州公司:
广州市环市中路306号金鹰大厦3800
电话:13580329919
          135-8032-9919
培训QQ咨询:点击咨询 点击咨询
项目QQ咨询:点击咨询
email:kf@1cae.com