本帖最后由 33477347 于 2015-12-10 14:57 编辑
四月末,参加了altair官方的二次开发网络公开课,受益匪浅,经过一段时间的学习,将一点心得发出来与大家分享,以飨坛友
由于能力原因,批处理中还有部分局限性,因此需满足以下要求,才能够进行批处理。
一、为便于材料属性的批处理,首先对名字的标准做如下要求:
1)集的名字分为三个字段,各字段之间以下横杠“_”分隔;
2)第一段为零部件的编号及自定义的名称,并以“A”字母开头:如某支架编号为“5101010”; 第二段为材料名称:如该支架的材料为“SAPH440”; 第三段为截面厚度:如该支架的截面厚度为“2.5mm”, 根据三段信息,将comp命名为“A5101010_SAPH440_2p5”或“A5101010bracket_SAPH440_2p5”;
3)名称中的几点注意事项;
a、首字母“A”大写,模型中统一符号标准; b、材料的名字需与材料库中的材料名称保持一致,区分大小写(图片中红方框位置); c、截面厚度2.5,以2p5代替,中间为小写字母“p”; d、各字段间的分隔符号“_”;
二、导入已有材料库,若无材料库,则需及时定义;
三、批处理文件的调用方法(推荐b方法):
a、在File--Run--Tcl Script中直接调用对应模板的*.tcl文件; b、在工具栏中,Run Tcl Script快捷键,调用对用模板的*.tcl文件; c、在Preference--Keyboard Settings中,自定义快捷键,指向对应模板的*.tcl文件,按快捷键直接调用;
四、批处理注意事项:
a、该方法只批量定义2D单元属性,1D及3D单元属性需要手动定义; b、完成批处理以后,随即抽查,以验证可靠性。
五、运行批处理后:
以截面属性为1.8mm的comp为例,编辑属性如下三幅图所示,坛友们可以试试update一下comp看看是否对应prop。
set complist [hm_entitylist comps name];
foreach cname $complist {
set b [split $cname {_}]
foreach {mat serial c} $b {
}
set d [split $c {p}]
set e [join $d {.}]
*collectorcreate properties $cname $mat 11
set tplpath [hm_info exporttemplate]
*createmark properties 2 $cname
*dictionaryload properties 2 $tplpath "SHELL"
set prop_id [hm_entityinfo id props $cname -byname]
*attributeupdateint properties $prop_id 3240 1 2 0 1
*attributeupdatedouble properties $prop_id 95 1 0 0 1
*attributeupdateint properties $prop_id 884 1 2 0 0
*attributeupdatedouble properties $prop_id 114 1 0 0 1
*attributeupdateint properties $prop_id 885 1 2 0 0
*attributeupdatedouble properties $prop_id 116 1 0 0 0.833333
*attributeupdatedouble properties $prop_id 96 1 2 0 0
*attributeupdateint properties $prop_id 118 1 2 0 0
*attributeupdateint properties $prop_id 7253 1 2 0 0
*attributeupdatedouble properties $prop_id 95 1 1 0 $e
*createmark components 2 $cname
*propertyupdate components 2 $cname
}
|