⑴ 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,可以進行集合運算: