将材料信息写到一个csv文件中,通过tcl编写的脚本,实现材料批量的创建,减少重复性的工作。
尝试编写了一个脚本,共同学习。
#打开一个csv文件
set csvfile [tk_getOpenFile -title "seclet a csvfile"]
#读取csv文件
set MaterialFileID [open $csvfile r]
#逐行读取csv中的数据
while {![eof $MaterialFileID]} {
#获取数据为字符串
set line [gets $MaterialFileID]
#将字符串转换为列表
set matparam [split $line ,]
#将列表元素赋予到单独变量
lassign $matparam Matname Rho E Nu
#读取列表长度
set mat_len [llength $matparam]
#判断材料是否重复
if {[hm_entityinfo exist mats $Matname -byname]} {
continue
#判断材料数据是否为空
} elseif {$mat_len!=0} {
#创建材料
*createentity mats cardimage=MAT1 name=$Matname
*setvalue mats name=$Matname STATUS=1 1=$E
*setvalue mats name=$Matname STATUS=1 3=$Nu
*setvalue mats name=$Matname STATUS=1 4=$Rho
} else {
#结束跳出循环并关闭文件
break
close $csvfile
}
}