Hello. In my opinion, it is better to create 3D models in Rhino software and then import them into the Flac-3D program. This way you will go easier and faster.
z_b(2,3) = 4.0 z_b(3,3) = 3.0 z_b(4,3) = 0.6 end def inip(iidx) global x1 = x_b(1,iidx) global x2 = x_b(2,iidx) global x3 = x_b(3,iidx) global x4 = x_b(4,iidx) global z1 = z_b(1,iidx) global z2 = z_b(2,iidx) global z3 = z_b(3,iidx) global z4 = z_b(4,iidx)
end @cab_parm ;
; install initial cables
;
def ins_cab global iidx global cab_seg global cab_seg_m loop iidx (1,3)
inip(iidx) cab_seg = cab_seg_m-3*(3-iidx) global y1 = 0. global y2 = float(cab_seg) command
sel cable id @iidx begin @x1 @y1 @z1 end @x1 @y2 @z1 nseg @cab_seg
sel cable id @iidx begin @x2 @y1 @z2 end @x2 @y2 @z2 nseg @cab_seg
sel cable id @iidx begin @x3 @y1 @z3 end @x3 @y2 @z3 nseg @cab_seg
sel cable id @iidx begin @x4 @y1 @z4 end @x4 @y2 @z4 nseg @cab_seg
sel cable pro emod 45e9 xcarea 1.57e-3 gr_per 1.0 &
yten 25e4 gr_k 17.5e6 gr_c 20e4 range id @iidx
end_command end_loop end
set @cab_seg_m 15
@ins_cab
; install pre-support concrete
;
sel shell id 10 group rock range cyl end1 0 0 -1.5 end2 0 1 -1.5 rad 7.4 &
cyl end1 0 0 -1.5 end2 0 1 -1.5 rad 6.7 not &
z -0.1 6
sel shell prop isotropic 10.5e9,0.25 thickness 0.3 density 2500
def monit
global ipt_surf global ipt_crown = gp_near(0,30,35)= gp_near(0,30,5.5)global ipt_spring = gp_near(7,30,0)
end @monit
save m_ini
table 1 name ’ground surface at tunnel center line’
table 2 name ’tunnel crown’
table 3 name ’tunnel sidewall’
;
; FISH function to control excavation and support sequence
def excav
y0 = y0+3 local cut_i = y0/3+1
global cut
loop cut (cut_i,16) local cut_cur = cut
local ii = out(’ EXCAVATION STEP ’ + string(cut))
y0 = 3*(cut-1) y1 = y0+3 global yp0 = y0+1 global yp1 = y1+1 global ys0 = yp0-3 global ys1 = yp1-3 global yc0 = y0-3 global yc1 = y1-3 global id_ = 10 ; id_ = 10*(cut+1) ; use if shells unconnected
command
; install pre support concrete
sel shell id @id_ group rock &
range cyl end1 0 @yp0 -1.5 end2 0 @yp1 -1.5 rad 7.4 &
cyl end1 0 @yp0 -1.5 end2 0 @yp1 -1.5 rad 6.7 not &
z -0.1 6
sel shell prop isotropic 10.5e9,0.25 thickness 0.3 density 2500 &
ran y @yp0 @yp1
; excavate next cut
model mech null range group tunnel y @y0 @y1
model mech null range group ’concrete liner’ y @y0 @y1
; delete-cables in the excavated area
sel delete cable range id 1 y @y0 @y1
sel delete cable range id 2 y @y0 @y1
sel delete cable range id 3 y @y0 @y1
end_command local cut_1 = cut-1 iidx=int(cut_1-3*(cut_1/3))+1 y2=min(y1+15,51) inip(iidx)
ii = out(’ CABLE BOLT PATTERN ’+string(iidx))
command
sel delete cable range id @iidx
; install new cables
sel cable id @iidx begin @x1 @y1 @z1 end @x1 @y2 @z1 nseg @cab_seg_m
sel cable id @iidx begin @x2 @y1 @z2 end @x2 @y2 @z2 nseg @cab_seg_m
sel cable id @iidx begin @x3 @y1 @z3 end @x3 @y2 @z3 nseg @cab_seg_m
sel cable id @iidx begin @x4 @y1 @z4 end @x4 @y2 @z4 nseg @cab_seg_m
sel cable pro emod 45e9 xcarea 1.57e-3 gr_per 1.0 &
yten 25e4 gr_k 17.5e6 gr_c 20e4 ran id @iidx
; shotcrete
sel shell prop isotropic 10.5e9,0.25 thickness 0.5 density 2500 &
ran y @ys0 @ys1
end_command if cut > 1 then command ; concrete liner
model mech el range group ’concrete liner’ y @yc0 @yc1
prop bulk @bmc sh @smc range group ’concrete liner’ y @yc0 @yc1