Hypermesh二次開發系列002

2021-10-23 05:35:05 字數 3001 閱讀 6865

在hypermesh裡有三類tcl命令:

a).tcl gui command(介面命令);

b).tcl modify command(修改命令);

c).tcl query command(查詢命令);

其中a類和c類以【hm_】開頭,但是a類一般不帶引數和返回值,而c類通常會帶有引數和返回值。比如【hm_callhelp】屬於a類,其功能是呼叫help幫助文件,【hm_viewleft】屬於a類,其功能是模型的左檢視;【hm_ce_state ce_id】屬於c類,其功能是返回目前connector的狀態 (unrealized, realized or failed),ce_id是引數,即connector的編號,【hm_nodevalue node_id】屬於c類,其功能是返回指定節點的座標,node_id是引數,即指定節點的編號;b類是以【* 】開頭,比如【createnode x y z system_id su***ce_id geom_index】,其功能是建立臨時節點,其中x y z system_id su***ce_id geom_index*都是帶輸入的引數,x y z 是座標值,system_id 是所在座標系。

從上文介紹可以看出有的tcl命令引數需要指定元素的id編號,那id怎麼獲取呢?這個問題先保留(埋坑1),我們來看一下,怎麼通過*createmark命令來建立乙個mark,或者說怎麼建立乙個集合,再或者是乙個容器,裡面存放著節點,單元,點,線等。

*createmarkentity_type mark_id 「?option?」 list

其中:entity_type 表示mark裡面要存放的元素型別,比如:節點/單元等;

mark_id 表示所建立mark的編號,只有1 和2可以使用(埋坑2);

「?option?」 表示用來定義建立的規則或者邏輯,比如:當前顯示的,當前啟用的,名字包含xx字母的等等。

list 表示?option?指定後一些具體的值,比如option是id時,表示編號等。

舉幾個具體的例子:

ex1:

命令:*createmark node 1 「by id only」 1 2 3

解釋:將編號為1,2, 3的3個節點放入編號為1的mark中。

ex2:

命令:*createmark comps 1 「by id only」 1 2 13

解釋:將編號為1,2, 13的3個元件放入編號為1的mark中。

ex3:

命令:*createmark comps 1 -1 -2 -3

解釋:將最後建立的3個元件放入編號為1的mark中。

填坑2:,如果ex2,ex3連續使用,且mark編號都是1,那之前建立的將被覆蓋。)

ex4:

命令: *createmark comps 1 front side

*deletemark comps 1

解釋:將名字front 和side的2個元件放入編號為1的mark中,並刪除。

ex5:

命令: *createmark elems 2 「all」

*deletemark elems 2

解釋:刪除所以單元。

ex6:

命令:*createmark elems 1 「by material id」 50

解釋:將材料屬性編號為50的單元放入編號為1的mark中。

總結下來呢,就是可以通過編號,座標,屬性,名稱等建立節點,單元,材料等的集合,方便進一步的使用。

先介紹一下hm_getvalue的功能:查詢並獲取指定元素的一些具體屬性或值。其命令格式如下:

hm_getvalueentity_type   = dataname=?row=?  ?column=?

其中:entity_type :待查詢的元素類,如node elem等。

=:被查詢的元素;解釋比較拗口,不直觀,直接上具體的,比如可以是id=,name=,mark=;

dataname=就是data names:這個更不直觀,再上具體的,比如: dataname=id,dataname=name,dataname=centerx,內容比較多,也正是這命令強大的地方,不同的enity_type,其的dataname還不一樣。

命令的功能和引數的意義如上所述,如果比較暈可以看下面具體的命令,順便填坑1

ex7:

命令:hm_getvalue nodes id=1 dataname=x

解釋:獲取編號為1的節點的x座標值(全域性座標系)

ex8:

1   *createmark node 2 「by id only」 1

2   set nodecor [ hm_getvalue nodes mark=2 dataname=x]

3   *createnode $nodecor 0 0 0

解釋:1   將節點編號為1 的節點,放入編號為2 的nark裡;

2   先看[ ] 裡面的: 獲取編號為2的mark裡的節點的x座標值。這樣該命令就等效為 set nodecor 10.1,其中10.1為 [ hm_getvalue nodes mark=2 dataname=x] 返回值,set是tcl的關鍵字,是將10.1 賦值給nodecor這個變數(涉及tcl語言,先埋坑3)。

3   在編號0的座標系下(沒錯,座標系也有編號,預設整體座標系編號為0),在($nodecor, 0, 0)位置建立臨時節點(涉及tcl語言,先埋坑3)。

ex8的3條命令功能是參照節點1建立臨時節點,其x座標同節點1的x座標,而y和z值均為0。高逼格的說法是:展示了從hypermesh資料庫獲取資訊,並組合使用tcl命令修改資料的功能。

postek二次開發 POSTEK二次開發介面

例項簡介 例項截圖 核心 using system using system.collections.generic using system.componentmodel using system.data using system.drawing using system.text using ...

BIMFACE二次開發系列教程

不用懷疑 它是目前中國最全面 最好用的bimfce二次開發全系列教程 涵蓋bimface伺服器端所有api詳解 整合應用開發 demo,開箱即用 bimface應用場景包含但不限於以下內容 以上眾多應用場景,都需要結合bimface提供的豐富介面進行二次開發才能實現強大的功能。本系列全面 細緻地介紹...

mcms二次開發 YzmCMS二次開發手冊

摘要 yzmcms是採用mvc設計模式開發,基於模組和操作的方式進行訪問,採用單一入口模式進行專案部署和訪問,無論訪問任何乙個模組或者功能,只有一.yzmcms是採用mvc設計模式開發,基於模組和操作的方式進行訪問,採用單一入口模式進行專案部署和訪問,無論訪問任何乙個模組或者功能,只有乙個統一的入口...