⑴ hypermesh搜索命令在哪
搜索命令如下:
1、模型信息查询命令hm_entityinfo和hm_entitylist
进行数据查询时,尽量使用Hypermesh提供的API,避免直接操作数据库列表(如直接判断某个ID号是否在列表中)。Hypermesh所提供的数据搜索API一般都是用C/C++编写的,并通过算法进行了搜索优化,使用这些API比直接使用TCL命令能获得更大的性能优势。例如在某个模型中查询是否存在ID号为10000的单元,使用以上两种方法,并输出查询时间。
(Documents) 2 % set eid 100000
(Documents) 3 % puts [time {hm_entityinfoexist elems $eid}]
26 microseconds per iteration
(Documents) 4 % set allelems [hm_entitylistelems id]
(Documents) 5 % puts [time {expr {$eid in$allelems}}]
9388 microseconds per iteration
直接使用TCL列表命令进行查询比使用Hypermesh提供的数据查询API hm_entityinfo进行查询所花费的时间多了好几个数量级,这还不算使用hm_entitylist创建列表所消耗的时间。而且对于大型模型来说,创建列表也会消耗大量内存。
hm_entityinfo 还可以查询大量和某个对象类型相关的信息,比如查询某类对象的最大id号,命令如下:
hm_entityinfo maxid entity_type
hm_entitylist则可以直接得到某类对象的完整列表,例如上面的获取所有单元的ID号列表。下面的代码为获取所有comp的名字:
hm_entitylist comps name
2、模型数据库元素查询命令*createmark
*createmark是Hypermesh二次开发中查询模型数据库获取输入的重要命令,还可以配合*createmarkpanel和hm_getmark命令进行用户交互选择。*createmark获取的数据是无序的,即获取的数据列表和选择的顺序无关。有时需要获取有序数据(如使用Ruled命令进行网格划分),此时可通过*createlist命令获取有序数据列表,或使用lsort命令对*createmark得到的id号进行自定义排序。
系统提供了1和2两个mark,可以进行集合运算: