求解命令 这个是在网上下的那个基坑开挖的例子
flac3d吧
全部回复
仅看楼主
level 2
谁0523 楼主
;建立结构单元分组
sel group linerwall range sel liner
sel group struct1 range sel beam x (90.0 110.0) z (-0.1 0.1)
sel group struct2 range sel beam x (90.0 110.0) z (-5.1 -4.9)
sel group struct3 range sel beam x (90.0 110.0) z (-10.1 -9.9)
sel group struct4 range sel beam x (180.0 202.0) z (-0.1 0.1)
sel group struct5 range sel beam x (180.0 202.0) z (-5.1 -4.9)
sel group struct6 range sel beam x (180.0 202.0) z (-10.1 -9.9)
;删除beam单元的link
sel dele link range sel beam z(-30 0)
;建立liner间的节点间的刚性link
def merge_link0
node_num=0
node_pnt0=no_head
loop while node_pnt0#null;寻找总结点数,注:不能自己任生成node,程序缺省的方式为连续生成无不连续
node_num=node_num+1
node_pnt0=nd_next(node_pnt0)
endloop
node_num_minus1=node_num-1
link_id=30000
loop ii(1,node_num_minus1)
node_pnt1=nd_find(ii)
xxa=nd_pos(node_pnt1,2,1)
yya=nd_pos(node_pnt1,2,2)
zza=nd_pos(node_pnt1,2,3)
ii_puls1=ii+1
loop jj(ii_plus1,node_num)
node_pnt2=nd_find(jj)
xxb=nd_pos(node_pnt2,2,1)
yyb=nd_pos(node_pnt2,2,2)
zzb=nd_pos(node_pnt2,2,3)
node_dist =sqrt((xxa-xxb)^2+(yya-yyb)^2+(zza-zzb)^2)
dist_tol=1e-1
if node_dist<=dist_tol then
link_pnt1=nd_link(node_pnt1)
link_pnt2=nd_link(node_pnt2)
;if link_pnt1#null then
;temp1=lk_delete(link_pnt1)
;endif
if link_pnt2#null then
temp2=lk_delete(link_pnt2)
endif
link_id=link_id+1
command ;生成新link(6自由度全固结),大的大的node的id作为target node,
;小的node的id作为source node,需注意不同情况下的灵活调整
sel set link node_tol=dist_tol
sel link id=link_id jj target = node tgt_num = ii;指定link的ID
;sel link ii target = node tgt_num = jj;不指定link的id,自动生成
sel link attach xdir=rigid ydir=rigid zdir=rigid xrdir=rigid yrdir=rigid zrdir=rigid range id=link_id
endcommand
endif
endloop
endloop
end
merge_link0
2013年12月21日 08点12分 1
level 2
谁0523 楼主
有人告诉这样做的目的也行啊 ! 求大神![墙角]
2013年12月27日 06点12分 2
1