cmzeng 发表于 2015-5-3 15:40:35

材料名的参数化

我要做一些层合板的分析,已经做好1-500个层合板材料(laminate)。现在写了一个pcl程序,用循环的方式把500个层合板材料依次赋给2D shell(properties),进行分析。但是elementprops_create命令无法识别这个材料参数,不知何故?下面是程序开始的一段,finename无法传递进去。请高手指点下,是否哪里设置有问题,多谢!
FUNCTION calculate(loop_times)
integer i,loop_times
string filename
FOR (i=1 to loop_times)
filename = "temp"//str_from_integer(i)                     
elementprops_create( "shell", 51, 25, 35, 1, 3, 20, [13, 20, 4037, 4111, 4213, @
4265, 1005, 5, 8111], , ["filename", "Coord 0", "",@
"", "", "", "120.", "", ""], "Surface 1" )

huxin96 发表于 2015-5-3 23:34:07

1、从你所附的代码片段来直接解决你所遇到的问题,大抵是这样的:
FUNCTION calculate(loop_times)
INTEGER i,loop_times
STRING filename
STRING property_data(9)

property_data(1 ) = ""
property_data(2 ) = "Coord 0"
property_data(3 ) = ""      
property_data(4 ) = ""      
property_data(5 ) = ""      
property_data(6 ) = ""      
property_data(7 ) = "120."   
property_data(8 ) = ""      
property_data(9 ) = ""      

FOR (i=1 to loop_times)
property_data(1) = "temp"//str_from_integer(i)                     
elementprops_create( "shell", 51, 25, 35, 1, 3, 20, [13, 20, 4037, 4111, 4213, @
4265, 1005, 5, 8111], , property_data, "Surface 1" )

2、但是如果你所附代码是你真正的工作代码的话,你可能并不能达到你的目的。上述代码只会反复创建一个作用域为 "Surface 1"、名称为“shell”的属性,并不停弹出是否要覆盖已有属性提示框。只是每次材料参数不同。若果你一路点击确认,最后得到的仅仅是一个名为“shell”的属性,材料为“temp*”(*为你输入的loop_times值)。

happyph2 发表于 2015-5-4 08:30:17

本帖最后由 happyph2 于 2015-5-4 08:31 编辑

楼主的filename不用加“”;2楼的方法比楼主好,看上去更清晰:lol

cmzeng 发表于 2015-5-15 08:53:19

非常感谢huxin96和happyph2的答复,尤其是huxin96,写得很详细。最近因为忙其它事情,都没来看,不好意思。我马上试试!谢谢!

cmzeng 发表于 2015-5-17 13:48:12

试过了,可以了。确实如huxin96所言,要手动按yes。这段只是我程序的一部分,最后要提交分析。所以想再请教下,有没有自动处理按yes的操作命令,多谢!

huxin96 发表于 2015-5-18 13:28:05

你可以研究下这两个函数:
ui_answer_message ( msgcode, answer )
ui_override_message ( msgcode, answer )

cmzeng 发表于 2015-5-18 13:53:01

好的,我研究下,多谢huxin96回复!
页: [1]
查看完整版本: 材料名的参数化