日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python调用hypermesh调用tcl_TCL/TK编程之语法与hypermesh api讲解

發布時間:2024/1/1 python 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python调用hypermesh调用tcl_TCL/TK编程之语法与hypermesh api讲解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

TCL/TK編程語法上一篇文章講了TCL命令的處理規則,那么這篇文章就說一說TCL的三大替換和兩大引用。三大替換:變量替換、命令替換、反斜線替換。兩大引用:雙括號引用、大括號引用。變量替換每種替換會把單詞中的一些原始字符替換為另外一些值。變量替換由"$"符號引發如下:set kgrams 20expr?$kgrams*2.2046#輸出為44.092上面兩行代碼,第一行將變量kgrams賦值為20,第二行為將變量kgrams的值與2.2046相乘。其中"$kgrams"即為變量替換。變量替換的目的是取值,即將$kgrams替換為20。expr?$result*$base#兩個變量的值相乘,其中expr為數學運算命命令替換

命令替換是把一個單詞的部分或者全部替換為一個命令的結果。命令替換通過方括號"[]"表示。set kgrams 20set?lbs?[expr?$kgrams*2.2046]

上面代碼中第二行,方括號是對命令進行取值,即取方括號內的返回值。并將值賦值給變量lbs反斜線替換

反斜線也是取值,但是反斜線取的是在TCL中具有特殊意義的字符例如"[, $, \"等等。set msg Eggs:\ \$2.18/dozen\nGasoline:\ \$2.49/gallon#輸出:Eggs:?$2.18/dozen# Gasoline: $2.49/gallon

上面代碼中使用"\"取到了空格符、$、?換行符。下表為可反斜線替換的字符:雙引號引用

TCL提供了一些方法,可以阻止解析器對$和分號等字符進行特殊處理。這些方法被稱為引用。雙引號引用可以取消單詞和命令分隔符的特殊解釋。大括號引用取消所有特殊字符的特殊解釋。

雙括號引用會將空格、制表符、換行符以及分號都當做普通處理set?msg?"Eggs:?\$2.18/dozen\nGasoline:?\$2.49/gallon"#這行代碼中空格符被解釋為普通字符,因為有雙引號所以就不需要在空格符前加"\"set?msg?Eggs:?\$2.18/dozen\nGasoline:?\$2.49/gallon#如果去掉雙引號,則會報錯

大括號引用

大括號引用將取消所有特殊字符的特殊意義。set?msg?{"Eggs:?\$2.18/dozen\nGasoline:?\$2.49/gallon"}#輸出:?"Eggs: \$2.18/dozen\nGasoline: \$2.49/gallon"#取值的雙引號,空格,反斜線等全部都被當做普通字符處理

hypermesh api講解代碼:#本腳本運行在nastran模板下,先獲取當前模板名稱set solver_name [hm_getsolver]puts $solver_name#判斷當前模板是否是nastran模板,如果不是,提示修改模板if {$solver_name == "nastran"} {#獲取hypermesh全部component名稱,hm_entitylist comps name的返回值是列表set comps_name_list [hm_entitylist comps name]set num_comps [llength $comps_name_list]#對component進行循環for {set i 0} {$i

下面為使用到的hypermesh api:hm_getsolverhm_entitylist comps name*createmark comps 1 $cur_comp_namehm_getmark comps 1*deletemark components 1hm_getsolver

set solver_name [hm_getsolver]set solver_name [hm_getsolver name]set solver_id [hm_getsolver id]

獲取hypermesh當前模板,命令后不跟參數時,默認返回模板名稱(nastran、abaqus、lsdyna),也可以跟字符串"id"則返回模板ID。hm_entitylist

hm_entitylist nodes idhm_entitylist comps nameif { [ catch {command_name...} ] } {# Handle error}

返回entity的名稱或者id列表。其中entity包括component、element、node、met、property等。通過這個命令可以獲取制定entity所有的名稱或者id。*createmark

mark在hypermesh二次開發中是一種容器,他可以以各種的方式存放各種entity的全部或者部分內容。

hypermesh api的mark容器一共有兩個且只有兩個,如同兩個杯子,他們的ID分別為1和2。但是卻可以在同一個ID的容器中存放不同的entity。*createmark elems 1 "all"*createmark elems 2 "all"*createmark?nodes?1?"all"*createmark nodes 2 "all"*createmark comps 1 "display"*createmark comps 2 "display"

存放entity的方式也多種多樣*createmark elems 1 "all"*createmark elems 1 "displayed"*createmark elems 1 "retrieve"*createmark elems 1 "by assem id" 10 20*createmark elems 1 "by comp id" 20*createmark comps 1 "by name only" X Y*createmark elems 1 "by comps on mark" 1

以上只列舉了部分entity和存放方式,更多詳情還可以參考幫助文檔。*createmark可以說是hypermesh二次開發最重要的api。

hm_getmark是獲取mark中保存的entity,*deletemark則是刪除mark中保存的entity

總結

以上是生活随笔為你收集整理的python调用hypermesh调用tcl_TCL/TK编程之语法与hypermesh api讲解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。