hello
今天文章主要内容是讲解上一期分享的脚本。
本意是希望通过小例子讲解,让大家明白相关的函数用法,在实际编写过程中会遇到的问题,以及解决办法。
由于,第一次录制HyperMesh二次开发相关的视频,虽然前面已经做了PPT,还是免不了在录制过程翻车了,真是槽点满满,啊哈哈哈哈。
后面会根据程序的难易程度,来录制视频。程序太长了录制视频所花费的时间也会随之增加。
现在把注意事项写出来:
1、看十遍不如自己做一遍
2、程序量大的时候,一定要写一部分测试一部分
3、清理HyperMeesh命令行,使用clear命令;运行脚本文件,使用source{path}
4、tcl语言对于空格很重视
5、
6、出现错误注意左下角的报错信息
给大家留下一个小问题,如何让把赋予空材料的Comps提出来。
1、将创建材料的语言改成不创建卡片类型,在材料浏览器,ShowOnly没有卡片的材料
2、创建一个Assembly,增加一个if语句,只要创建了新材料就将本次循环的Comps放在所创建的装配中,会用到的函数
*createmark components 1 "Comps"
*assemblyaddmark 1 components 1
代码如下
1set location [hm_getstring location "厚度位置 材料位置 以下划线区分从零计算 "]
2*createmarkpanel comps 1 "select"
3set CompName [hm_getmarkvalue comps 1 name 1]
4set Tlocation [lindex $location 0]
5set Mlocation [lindex $location 1]
6*createmark materials 1 "all"
7set MATname [hm_getmarkvalue materials 1 name 1]
8foreach q $CompName {
9 set compID [hm_getvalue comps name=$q dataname=id]
10 set t [string range [lindex [split $q "_"] $Tlocation] 1 end]
11 set mat [lindex [split $q "_"] $Mlocation]
12 if { [lsearch $MATname $mat]<=0} {
13 catch {*createentity mats cardimage=MAT1 name=$mat}
14 }
15 set matid [hm_getvalue materials name=$mat dataname=id]
16 *createentity props cardimage=PSHELL name=$q
17 set maxID [hm_entitymaxsolverid props]
18 *setvalue props id=$maxID STATUS=1 95=$t
19 *setvalue props id=$maxID materialid="$matid"
20 *setvalue comps id=$compID propertyid="$maxID"
21}
有问题欢迎在后台留言,
您的分享是我创造的动力