- 积分
- 0
- 注册时间
- 2009-5-25
- 仿真币
-
- 最后登录
- 1970-1-1
|
看了论坛中关于施加刚拱架的例子,我觉得挺不错的,遂将自己的一个模拟也按照同样的方法添加进钢拱架,可是每次运行的时候,总是出现target node and source node are the same,不论怎么调间距和参数都没有用,请问,这到底是怎么回事,谢谢了!
new
gen zone radcyl p0 0 0 0 p1 50 0 0 p2 0 100 0 p3 0 0 50 &
size 5 50 10 25 dim 6.5 6.5 6.5 6.5 rat 1 1 1 1.2 group outsiderock
plot block group
plot add axes red
gen zon reflect normal 0 0 -1
def excav
loop cut (1,13)
y0=4*cut
y1=y0+4
ys0=y0-4
ys1=y1-4
yc0=y0-2
;yc1=y1-2
h=24*(cut+1)
id_=10
command
;support the previous 4 m
sel shell id id_ range cyl end1 0 ys0 0 end2 0 ys1 0 rad 6.5 &
x -0.01 6.51 z -6.51 6.51 y ys0 ys1
sel shell id id_ prop isotropic 25e9,0.25 thickness 0.25 density 2500 range y ys0 ys1
end_command
command
sel delete link
sel set link node_tol 0.30
end_command
;beam the previous 4 m
w_y=2.00
p=13
rbeam=6.12
rshell=6.25
det=9.00
;beam半径稍小于shell(洞室)半径
link_id=10000
w_y=2.00
loop m(1,p)
loop n(31,51)
x_shellnode=rshell*cos((n-1)*det*degrad) ;计算rshell的节点坐标
y_shellnode=w_y
z_shellnode=rshell*sin((n-1)*det*degrad)
x_beamnode=rbeam*cos((n-1)*det*degrad) ;计算钢拱架的节点坐标
y_beamnode=w_y ;既然可以计算钢拱架的节点坐标,为什么不可以再这里定义呢?
z_beamnode=rbeam*sin((n-1)*det*degrad)
xx_beamnode=rbeam*cos(n*det*degrad) ;计算钢拱架的节点坐标
yy_beamnode=w_y
zz_beamnode=rbeam*sin(n*det*degrad)
if n<51 then
command
sel beam id 1000 beg x_beamnode y_beamnode z_beamnode end xx_beamnode,yy_beamnode,zz_beamnode
sel beam prop emod 2e11 nu 0.3
sel beam prop xcarea 6e-3 xciz 200e-6 xciy 200e-6 xcj 0.0
end_command
endif
sn_pointer=nd_near(x_shellnode,y_shellnode,z_shellnode)
bn_pointer=nd_near(x_beamnode,y_beamnode,z_beamnode)
shellnode_id=nd_id(sn_pointer)
beamnode_id=nd_id(bn_pointer)
command
sel link id link_id beamnode_id target node tgt_num shellnode_id
sel link attach xdir=rigid ydir=rigid zdir=rigid range id link_id
sel link attach xrdir=free yrdir=free zrdir=free range id link_id
end_command
link_id=link_id+1
end_loop
w_y=w_y+4
end_loop
end_loop
end
excav |
|