s_akilla 发表于 2013-4-18 15:20:38

用FISH建立预应力锚杆遇到的问题

我是一个FLAC3D的菜鸟,才开始学习FLAC3D不长时间,提出的问题可能很不专业,还请各位高手不吝赐教,多多批评~
看了陈育民的书上有预应力锚杆的章节,也介绍了托盘的做法。不过书中只有涉及单根锚杆的例子。建立大量锚杆时候肯定不能一根根来建,太费时。于是就用FISH写了一段一排预应力锚杆的循环。问题来了!代码如下:def maogan1w
qingjiao=15
L1=8
L2=8
;锚杆坐标要素
bw1=-7.5-L1*float(sin(qingjiao*pi/180))
cw1=30+L1*float(cos(qingjiao*pi/180))
b11=bw1-L2*float(sin(qingjiao*pi/180))
c11=cw1+L2*float(cos(qingjiao*pi/180))

;自由段
loop n(0,24)
    a=0.6+n*1.2
    command
      sel cable id=1 begin=(a,30,-7.5) end=(a,cw1,bw1) nseg L1
      ;托盘      
      sel cable id=1 prop emod 1.95e11 ytens 430e3 xcarea 0.00042 & gr_c 10e8 gr_k 2e10 gr_per 0.5024 ra cid 1,1
      ;预应力
      sel cable id=1 pretension 301e3 range cid 1,8
      ;自由段
      sel cable id=1 prop emod 1.95e11 ytens 430e3 xcarea 0.00042 & gr_c 1 gr_k 1gr_per 0.5024ra cid 2,8
    endcommand
endloop
;锚固段
loop n(0,24)
    a=0.6+n*1.2
    command
      sel cable id=1 begin=(a,cw1,bw1) end=(a,c11,b11) nseg L2      
      ;锚固段      
      sel cable id=1 prop emod 1.95e11 ytens 430e3 xcarea 0.00042 & gr_c 25e5 gr_k 1.144e10gr_per 0.5024ra cid 9,17
    endcommand
endloop

end
maogan1w
代码中执行循环里的command生成锚杆后,附加锚杆参数的时候,只能写一句赋参数的命令,多于一句就不行了。。。但建立非全长预应力锚杆需要对锚杆托盘、自由段、锚固段、预应力分别赋值,至少得写四句赋参数的命令。所以,试过像上文命令那样,失败;试了把赋参数命令在循环中分条建立command,不会提示出错,可以运行过去,但是一计算,锚杆受力情况不对(部分区域受压),查了log,赋完参数系统并没反馈赋值的信息,原因应该是参数没有赋上,失败;或者在循环外、定义函数内分条用command写,跟上一条错误一样,失败;或先不定义参数只用FISH建立锚杆,待锚杆生成后再用FLAC3D命令定义参数,跟上条错误一样,失败。
自己也看了很多涉及桩锚支护基坑大模型建立锚杆的命令,基本都是忽略了预应力,不区分锚杆的锚固段和自由段,近似成全长锚固。基本没有用预应力的。这样是不是不太符合实际情况啊?

恳请各位高手大神指教,感激不尽!

s_akilla 发表于 2013-4-18 15:23:54

没有人吗?自己顶起来

enochwang 发表于 2013-4-19 11:59:29

按cid分段来施加,理论上应该可行、奇怪
页: [1]
查看完整版本: 用FISH建立预应力锚杆遇到的问题