本教程来自 3DEC 5.2 Help → Tutorials → Tunnel With Support in 3DEC

1.介绍(Introduction)

本教程将向用户介绍基本命令,以便在岩体中创建隧道并实现不同结构单元的支护。 用户将学习如何交互式在控制面板中创建可视化模型。

在未进行支护的节理切割的隧道岩体中产生了楔形破坏,因此需要进行支护。 隧道是分阶段开挖的,随着开挖的继续,增加了包括锚杆单元和衬砌结构的使用。

本教程包含四个data文件:(1)构建初始块体模型和隧道; (2)开挖隧道并查看破坏情况; (3)实施锚杆加固; (4)实施衬砌结构加固。

文件名称为:initial.3ddat, unsupported.3ddat, cable_support.3ddat, liner_support.3ddat

主题(Topics)

可变形体(Deformable blocks)

初始应力(In-situ stress)

锚杆支护(Cable support)

衬砌支护(Liner support)

涉及的命令有:bound, delete, generate, insitu, remove, reset, solve, struct, tunnel

2.创建项目(Project)

首先启动 3DEC,然后选择 “ New Project ...”

当出现提示时,将新项目另存为 “tunnel_tutorial.3dprj”。 通过选择 File → New Item → Data File... 创建一个新的数据文件,并将文件另存为 “initial.3ddat”

3.创建模型(Creating a Model)

使用 new 命令开始数据文件,这将清除之前可能已存储的所有模型信息。 这对于本教程而言也是有用的,因为它允许我们向文件中添加命令并一遍又一遍地重新运行它。 每次我们执行操作时,都会从 new 命令创建的清除状态中再向前运行。使用 poly brick 命令生成块体。 块模型为 20×20×20,质心坐标为(0,0,0)。

new
poly brick -10 10  -10 10  -10 10

我们可以通过选择 File→New Item→Plot 为模型创建一个新视图窗口。 将会出现提示框,要求输入新视图窗口的名称。 输入“Blocks”,然后单击 “OK”

将会出现一个新的空白视图,并且右侧控制面板(Control Panel)中提供了一个图项列表。 双击 List 选项卡中的 Blocks 项目,以在新图窗口上显示块体模型。

3DEC模型

使用鼠标右键可以旋转绘图,使用Shift +鼠标右键可以平移,使用鼠标滚轮可以放大和缩小。 旋转块体模型后,视图窗口应如下所示:

3DEC模型

为了建立隧道模型,我们使用一个名为 tunz 的简单FISH函数定义隧道的几何参数。 FISH 是3DEC使用的内置脚本语言,允许用户以比单独使用命令更高级的方式操纵所有模型数据。 FISH函数使用定义的 function_nameend 括起来,如下所示。

;定义FISH函数,dat文件中的分号表示注释
def tunz
;
; --- tunnel beginning and end ---
  yya = -10.0 
  yyb =  10.0
;
; --- tunnel extents in x and z direction ---
  txb1 = -4.0
  tzb1 = -4.0
  txb2 =  4.0
  tzb2 = -4.0
;
; --- semi-circle roof ---
  txc =  0.0
  tzc =  0.0
  tr  =  4.0
  tx1 =  txc + tr * cos(180*degrad)
  tz1 =  tzc + tr * sin(180*degrad)
  tx2 =  txc + tr * cos(135*degrad)
  tz2 =  tzc + tr * sin(135*degrad)
  tx3 =  txc + tr * cos(90*degrad)
  tz3 =  tzc + tr * sin(90*degrad)
  tx4 =  txc + tr * cos(45*degrad)
  tz4 =  tzc + tr * sin(45*degrad)
  tx5 =  txc + tr * cos(0*degrad)
  tz5 =  tzc + tr * sin(0*degrad)

end

有关使用FISH的更多详细信息,请参见FISH参考。在本教程中,将使用在 tunz 函数中定义的参数创建具有半圆形顶部的隧道。

接下来,我们定义隧道开挖各个阶段的范围。 沿隧道y轴以5个单位增量划分四个阶段。 为此又定义了另一个简单的FISH函数,称为 stage

; --- y coordinates for excavation stages ---
def stages
  stage0 = -10
  stage1 = -5
  stage2 = 0
  stage3 = 5
  stage4 = 10
end

我们通过在函数名称之前使用“ @”符号来执行每个函数。 这样做是为了确保赋予FISH函数的名称与3DEC中的内置命令不冲突。

; (execute functions)
@tunz
@stages

使用先前定义的隧道参数,我们使用 tunnel 命令为隧道的每个面指定径向点。 从输入中顺时针读取这些点。 本示例使用七个点来定义隧道的形状。

; create tunnel 
tunnel radial &
a @txb1,@yya,@tzb1 @tx1,@yya,@tz1 &
  @tx2,@yya,@tz2   @tx3,@yya,@tz3 &
  @tx4,@yya,@tz4   @tx5,@yya,@tz5 @txb2,@yya,@tzb2 &
b @txb1,@yyb,@tzb1 @tx1,@yyb,@tz1 &
  @tx2 ,@yyb,@tz2  @tx3,@yyb,@tz3 &
  @tx4 ,@yyb,@tz4  @tx5,@yyb,@tz5 @txb2,@yyb,@tzb2 &
reg 5

group block 'tunnel' range region 5 ;分组

save tun_a

注意:使用 表示连接符号,代码行在下一行继续,像单行一样执行。

运行模型后,最后一行的命令会将模型状态保存到名为 “tun_a” 的文件中。

3DEC模型的不同部分分配了不同的区域编号。 使用组可提供更大的灵活性。 但是,某些命令(例如tunnel)尚未更新使用组。 因此,使用tunnel命令将隧道分配给区域 5,然后使用 group block 命令将隧道区域设置为名为 tunnel 的块体组。

要查看组,请转到“Blocks” 视图,通过单击控制面板 Blocks 图项旁边的“眼睛”符号来显示或隐藏块体。 现在,在 List 中选择 Blocks → Group 。 在 Attributes中,取消选中透明度(Transparency)复选框。

3DEC隧道模型

4.创建节理集(Creating the Joint Sets)

现在,我们在模型中插入三个节理组,以在隧道顶部产生楔形体。 jset 命令用于指定必要的倾斜方向和倾斜角度以及节理平面的原点。

; --- joints --- 3 joints to form a wedge in the roof
;
jset dd 270 dip 70 origin 0 0,5.7 id 10
jset dd 40 dip 65 origin 0 0,5.7 id 10
jset dd 130 dip 60 origin 0 0,5.7 id 10
;
save tun_b

执行文件后,节理将被创建,当前状态将保存为 tun_b

3DEC隧道模型

要查看节理,请选择控制面板中的 List 选项卡。 双击 Joints 将其添加到绘图窗口中。 但是现在仍看不到任何节理,因为它们被块体遮住隐藏了。 通过单击 BGroup 绘图项, 在 Attributes 下,单击 Colors 旁边的小三角形展开选项,然后取消选中 Default

现在,节理将如下所示:

3DEC隧道模型

5.划分网格(Zoning)

通过将块划分为四面体区域,可以使块变形。 这是使用generate命令完成的。 我们首先通过隐藏隧道,指定隧道周边的网格大小。

; --- mesh generation ---
;
; rock blocks
hide range group 'tunnel' ;隐藏名为tunnel的块体组
gen edge 5  ;划分网格

然后隐藏隧道周围岩体,并使隧道可见。

; tunnel (with stages)
seek ;使全部块体可见
hide range group 'tunnel' not ;not相当于逻辑里面的“非”

通过沿 y 轴添加虚拟的垂直节理,将隧道体积分为四个区域,然后使用更细的网格划分区域。

; --- fictitious joints --- 3 joints for excavations
;
jset dd 0 dip 90 origin 0,@stage1,0 join
jset dd 0 dip 90 origin 0,@stage2,0 join
jset dd 0 dip 90 origin 0,@stage3,0 join
;
seek
gen edge 2
save tun_z

注意,已经由generate命令划分网格的块体将不会由后续的generate命令重新离散化。 因此,无需为第二个generate命令提供范围,它只会离散化未划分网格的隧道块体。模型状态将保存为 “tun_z.3dsav”

将上一步创建节理后显示节理的操作“逆向操作”,可以将整个模型显示出来,如下图所示:

3DEC隧道模型

未完待续...

下一篇:3DEC入门教程实例图文讲解:隧道支护建模(2)


长风破浪会有时,直挂云帆济沧海。