ANSA二次开发 - PID筛选案例介绍
今天我们来介绍一个二次开发案例—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+=1base.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 partsbase.All()
注: 因为本身的PID名称列表是无顺序的,所以取到的名字的先后顺序也是跟随PID名称列表的(无序的),就算能够排序,但是不确定含有相同part字段的名字有几个。所以在判断名字中含有part几的时候,不能使用part i,i+=1这种自增形式来顺序的判断part4、part5…
转载自 :http://blog.sina.com.cn/s/blog_68d0921b0102wqzi.html
原文作者: 有限元在线
发表日期: 2016-12-23
扫描下方二维码关注我的微信公众号 - CAE软件二次开发Lab,精彩内容!
![](/assets/blank.gif)
CAE软件二次开发Lab
ANSA二次开发 - PID筛选案例介绍相关推荐
- ANSA二次开发 - 抽中面的两种方法
文章目录 (一) 使用Skin命令抽中面. (二) 使用Casting抽中面. ANSA是一款非常强大和快捷的前处理软件,用过的人都知道,ANSA在几何清理.模型简化功能方面尤为突出.不仅如此,A ...
- ANSA二次开发——初识Entity
在之前的四篇文章中 ANSA二次开发--BCGUI简介(1) ANSA二次开发--BCGUI简介(2) ANSA二次开发--BCGUI简介(3) ANSA二次开发--BCGUI简介(4) 我们已经对A ...
- python仿真搭建_仿真秀学院|从零开始学ANSA二次开发:如何利用Designer搭建窗口,含安装步骤...
原标题:仿真秀学院|从零开始学ANSA二次开发:如何利用Designer搭建窗口,含安装步骤 作者 | 团长 仿真秀专栏作者 首发 |仿真秀App 导读:大家好,我是团长,是一名CAEer,还是一名C ...
- ANSA二次开发——BCGUI简介(3)
ANSA二次开发--BCGUI简介(3) 上篇文章ANSA二次开发--BCGUI简介(2)主要介绍了在创建GUI界面中常见的组件创建函数,那如何在窗口中将各种不同的组件排列出我们想要的布局呢?下面就介 ...
- Revi二次开发_3.筛选不合格厚度的叠合板
Revi二次开发_3.筛选不合格厚度的叠合板 前言 代码思路 效果 参考 前言 做了一个使用外部接口实现筛选不合格厚度叠合板(属于常规模型)的程序,记录一下. 代码思路 主要借用了IExternalC ...
- ANSA二次开发 - 安装外部python库(以xlrd为例)
Python由于其易用性和良好的可扩展性以及丰富的第三方库,而被越来越多的CAX软件作为二次开发的脚本语言. ANSA前处理软件得二次开发语言就是Python语言,但其与常规Python发行版 ...
- ANSA二次开发 - 加密py文件为pyd格式
文章目录 加密过程 CompileScript加密函数 函数名称 函数语法 功能描述 函数参数 返回类型 返回值 示例 有时候我们希望保护所开发的ANSA二次开发python代码,需要对明文代码进 ...
- ANSA二次开发 - 在PyCharm上搭建ANSA/META二次开发环境
文章目录 与PyCharm IDE集成 简介 ANSA和META自动补全 安装说明 在PyCharm中工作 与PyCharm IDE集成 简介 PyCharm 是一个集成开发环境(IDE).它是专 ...
- php织梦二次开发的功能例子,织梦DedeCMS二次开发联动筛选功能的实现(含多选功能)...
织梦默认的列表页没有筛选功能,但有时候我们做产品列表页的时候,产品的字段比较多,很多人都需要用到筛选功能,这样可以让用户更方便的找到自己所需要的东西,实现这个联动筛选功能需要对织梦进行二次开发,下面就 ...
最新文章
- 两数之和C++代码实现超详细讲解
- Provided path doesn't exist. pylama Please fix pylama path or install latest version(UBuntu版本下的情况)
- spring对事务的控制 AOP
- 安装两个mysql3308_在同一台机器上安装两个版本的MySQL
- cad道路里程桩号标注_cad桩号标注插件
- linux5 iso镜像下载,Redhat Linux5.4/5.5/5.8/6.0/6.3 ISO镜像文件下载
- 环境试验之模拟运输试验
- 计算机为什么不用三十二进制,32位进制导致2038年问题
- ASPECT RATIO
- Hive开启WebUI
- 数据投毒攻防对抗技术-1.数据投毒简介
- modelsim 常用快捷键
- 表格一分为二html,如何在excel表中的将一个格子一分为二
- php 解压dat,如何打开dat文件?
- php中下载xls某个文件,php下载excel文件
- web之HTML入门02
- C++版本OpenCv教程(二十七)图像中添加高斯噪声
- 第9课:jvm的gc时候核心参数详解:-XX:NewRatio、-XX:SurvivorRatio、-XX:NewSize、-XX:MaxNewSize
- 【python3学习笔记】os.chdir(path)用法
- vSphere备份实践(一)——用赛门铁克备份还原vSphere中的虚拟机