Hypemesh二次开发-部件名称修改
1 引言
在进行hypemesh前处理二次开发过程中,一个主要的工作就是对部件(compent)名称的管理,通过定义component的命名规范,促使部件名称中包含部件的单元类型、材料、厚度等信息,为后续的自动化处理提供基础。一种常见的命名规范为:单元类型编号_零件号(零件名称)_部件厚度_材料,以下划线“_”进行区分,这种命名方式必须保证原有的component名称中不包含下划线“_”。本文主要实现的功能为对导入的component名称进行检测,并将名称中的下划线“_”修改为中划线“-”。
2 基本思路及主要函数
基本思路如下:
获取部件名称;
判断名称中是否存在制定字符;
修改字符串并重新命名部件。
要实现上述功能,主要用到了TCl的流程控制命令Foreach、以及Tcl针对字符串操作的命令:string first、string map,主要功能及用法如下:
string first needleString haystackString ? startIndex?
搜寻在haystackString字符串中与needleString字符串完全匹配的字符段,如果找到了返回第一次匹配在haystackString字符串中的索引,如果找不到则返回-1。如果指定了startIndex则在haystackString中从索引startIndex开始搜索,用法:
string first "tcltk" "This is a tcltk example"
10
string map ?-nocase? mapping string
根据mapping表里面的key-value关系替换string中的子字符串,mapping是一个类似于key value key value …的列表,每个在string中的key都会被value替换。如果指定了-nocase,匹配就不需要考虑差别。key和value都可以是多字符的,置换按照一定的顺序进行,所以在列表前面的key会被优先置换。string只会被置换一次,所以前面做过置换操作的字符将不匹配后面的key。例如:
string map {abc 1 ab 2 a 3 1 0} 1abcaababcabababc
将返回01321221。
4 程序效果
部件名称:
调用TCl脚本,完成部件名称修改:
查看更多评论 >