ANSA二次开发PID筛选实战案例

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


首先先看一下需求:

001V0u0Pzy77pD7KeDh9b&690.jpg

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

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

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

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

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

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

import ansa

from ansa import base

from ansa import constants



def main3():

    #根据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=[ "UNCHECKED FACES","NEEDLE FACES", "COLLAPSED CONS", "TRIPLE CONS", "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...

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

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

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

* 公司名称:

姓名不为空

手机不正确

公司不为空