许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  ANSA二次开发:PID筛选案例介绍

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

阅读数 5
点赞 0
article_banner

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

  首先先看一下需求:在这里插入图片描述

     如上图所示。有一堆零件, 软件 已经自动区分出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
微信扫一扫,欢迎咨询~
customer

online

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

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空