1.介绍(Introduction)

本教程将介绍首次使用 3DEC 时的基本步骤,这将帮助新用户了解如何开始一个新项目和开发简单模型的整个流程。 实例主要为一个简单的楔形体在重力作用下的破坏模型。 该实例将解释和说明在 3DEC 控制台中如何使用鼠标命令和脚本命令与 3DEC 进行交互。

本教程翻译整理自 3DEC 自带的3DEC 5.2 Help帮助文档手册:TutorialsGetting Started

1.1包含的内容

  1. 创建刚体
  2. 创建节理
  3. 如何记录变量历史
  4. GUI操作及绘图操作

1.2包含的命令

change, cycle, delete, fix, hide, gravity, group, jset, plot, poly, prop, save, seek (该实例没有FISH脚本)

2.数据文件(Application Data)

如果是第一次启动3DEC,系统将出现提示框,要求提供一个文件路径来复制 3DEC 软件包中附带的所有数据文件。 这些文件包括手册中示例的必要数据脚本以及成功执行脚本所需的任何其他必需文件(例如,几何集,FISH命令,项目文件等)。 文件比较小,一般选择默认位置即可,单击确定以复制这些文件。

复制后,可以从 3DEC 菜单栏内找到示例文件:helpExamples.
例如,本次的Getting Started的工程文件可以按以下方法打开:

打开后可以看到此工程文件的所有代码并运行(下一节的最后我也提供了Getting Started的所有代码)

3.创建项目(Project)

复制应用程序数据后,启动程序时将提供几个与项目相关的启动选项。分别为:打开上一个项目;打开已存在的项目;创建新项目;取消。选择Create New Project来创建新项目。

创建后,程序会要求选择一个保存路径,可以自己选择路径或者选择默认路径。保存新项目为getting_started.3dprj.

3DEC 默认的脚本文件格式为.3ddat,选择 FileNew ItemData File 创建,或者快捷键 Ctrl+ N。创建并保存文件后就可以写脚本命令了。本实例中,选择保存 getting_started.3ddat文件,注意,文件要与创建的工程文件getting_started.3dprj放在同一个文件夹中。

4.布局(Layout)

3DEC GUI(图形用户界面)包含用于数据文件,图形,命令控制台和项目文件的窗格。 可以自定义 3DEC 中窗格的布局以适合任何用户的偏好。 在Layout菜单下有几个预定义的布局选项,其中包括水平(Horizontal)垂直(Vertical)单个(Single)宽布局(Wide)项目布局(Project)几个选项。 通过使用鼠标设置首选布局并将不同的窗格拖动到位,也可以设置保存和恢复 3DEC 布局。 窗格放置到位后,单击Layout,然后点击Save layout选择保存布局。 点击后将会出现提示,要求选择保存布局文件的路径。

如果选择LayoutWide,将会出现以下布局结构:

新创建的数据文件在左侧的Data Files下列出。 空白的数据文件将显示在主窗格上。 Console Pane 在底部,Control Pane 在右侧。

5.创建模型(Creating a Model)

现在,我们可以开始输入命令来创建模型了。 命令既可以输入到数据文件中,然后再执行,也可以输入在底部控制台(Console pane)窗格中的命令行中,输入一行,执行一行。 建议将命令输入到文件中再执行,因为这样可以保存命令,也可以轻松地多次运行同一组命令。 如果确实选择直接在命令行上输入命令并输入了错误命令,则可以键入 undo撤回。

以下命令将清除先前的模型信息,创建初始块体并指定块体的大小。 我们使用poly brick命令指定一个多面体块。

new ;清空内存
poly brick (0,80) (-30,80) (0,50) ;创建一个多面体块

本文的代码可以直接点击代码框右上角的复制按钮进行复制╰( ̄▽ ̄)╭

这将创建一个尺寸为80×110×50的块体。 将以下命令输入到数据文件中以查看块体。 请注意,在执行数据文件之前不会创建绘图窗口(plot窗口)

plot create plot 'Blocks' ;创建一个名为'Blocks'的plot窗口
plot block ;绘制创建的块体

通过单击绿色的执行按钮来执行文件。 文件开头的new命令将清除所有模型数据。 对于本教程而言,这很有用,因为它允许我们反复添加命令并重新执行相同的数据文件。 每次我们执行第一行中的new命令后,系统就会处于一种纯净的环境中。

运行之后,你将看到以下视图:

绘图也可以交互式进行。 单击“Blocks”窗格右上角的“ X”,关闭当前视图。 现在单击FileNew ItemPlot。 将出现一个提示,询问创建的新绘图的名称,输入“Blocks”作为该绘图的名称。

现在,在右侧的控制面板(Control Panel)中,选择 List 标签,双击 Block 来绘制块体。

多面体的透视图将出现在屏幕上,模型的默认视图平行于xz平面。 尝试按住鼠标右键并移动鼠标以旋转视图, 下图显示了该块体的旋转视图。

此时,有两个绘图窗格:“ Plot01” 为空白,“Blocks” 显示块体模型。 每次使用plot命令时,都会自动创建一个新的绘图窗格,除非使用关键字add

操作视图:按住鼠标右键,然后在绘图上拖动鼠标以旋转模型; 按住Shift +右键拖动以平移; 或按住Ctrl +右键拖动以放大和缩小视图,也可以使用滚轮进行缩放。 有关视图操作的更多详细说明,在绘图窗口单击鼠标右键,然后选择 “ Plot Control Help” 。

6.创建节理(Creating the Joint Sets)

使用 jset命令将创建节理。节理可以表示实际的岩石节理,也可以用作“构造”以创建特定的几何形状。对于此示例,实现了一系列节理集以创建边坡和楔形体。 我们首先使用关键字dip dd(倾角和倾向)和origin在两个位置水平切割节理。 注意:如果未使用任何关键字,则这些属性的默认值为0。

单击 “ getting_started” 选项卡以返回到数据文件并添加以下命令。 注意:对于具有多个关键字的 3DEC 命令,可以键入命令后按 F1 键以获取关键字列表。

jset dip 90 dd 180 origin  0,0,0 

jset dip 90 dd 180 origin  0,50,0

倾向的计算是从北(y)顺时针旋转的度数。 该块体沿y轴切为3个部分。创建一个分组,并使用范围命令range将中间块体纳入到名为 “inner block” 的组,以指定块质心的y坐标范围。 其他块称为 “outer blocks”,以定义充当边界的块。 hide命令用于隐藏 “inner block” 分组的所有块并进行 “outer blocks” 块体的分组。 jset命令不会切割隐藏的块体。

group block 'inner block' range y 0 50
hide range group 'inner block' ;隐藏'inner block'分组的块
group block 'outer blocks' ;将剩下的块分组到'outer blocks'
seek ;显示隐藏的块体

单击绿色按钮执行文件。 单击“Blocks”选项卡以查看绘图。 现在,您将看到三个不同颜色的块。 在右侧的控制面板下的Plot Items窗口中,可以看到绘制的对象,左侧像眼睛的图标可以控制是否显示该对象,点击可以关闭显示Block绘图。在下方 AttributesColor By 下,选择 Group,即以块体分组来显示颜色。

现在,块体显示的视图如下:

在模型中创建其他节理组,并为将来切割产生的楔形体在水平和垂直方向上创建了滑动平面。 首先,隐藏outer blocks。 创建了2个切割节理,然后创建了5个等距等角度的节理平面。

hide range group "outer blocks"
jset dip 2.5 dd 235 origin 30,0,12.5
jset dip 2.5 dd 315 origin 35,0,30
jset dip 76 dd 270 spacing 4 num 5 origin 38,0,12.5
;spacing指定这一组节理的间距,num指定节理的数量,origin指定原点

使用spacing关键字指定节理之间的平均间距。 num关键字定义了节理集合中的节理数目。

单击绿色按钮执行文件,然后查看 “Blocks” 窗口绘图。 如果重新运行数据文件后没有出现类似以下的图,则将刚才修改的 Color By 下面的选项更改回 Blocks 。 该模型应类似于下图:

现在,我们隐藏边坡块并创建一个水平节理平面,该平面将构成边坡开挖的基础:

hide range x 30,80 y 0,50 z 0,50 ;指定隐藏块体的范围
jset dip 0 dd 0 origin 0,0,10 ;创建水平节理
hide range z 0,10 
group block 'excavate' ;创建新的块体分组

我们将开挖区域内的块分配给命名为“excavate”的组。

7.创建楔形体(Creating the wedge feature)

最后,我们使用以下命令创建定义边坡中的楔形体的滑动平面:

seek ;显示所有块体

hide range group 'outer blocks' ;隐藏'outer blocks'分组下的块体

hide range z 0,10
hide range x 55,80
hide range x 0,30
;隐藏三个指定范围的块体

jset dip 70 dd 200 origin 0,35,0
jset dip 60 dd 330 origin 50,15,50
;创建两组节理(楔形体的滑动面)

单击绿色按钮执行文件,会看到以下视图:

8.边界条件(Boundary Conditions)

接下来,将边界块固定。 使用fix命令并指定必要的范围将冻结(freeze)每个块的质心速度为当前值。 在这种情况下,质心速度当前为零,即阻止指定范围内的块体的任何移动,从而创建边界条件。 如果块体已经在移动,使用fix命令,则该块将继续以当前速度移动。 模型的下部基础和叶面后面的块固定在适当的位置。 外部块也固定。 挖掘组将从模型中删除。 然后隐藏外部块以进行打印。

seek ;重新显示所有块体

fix range z 0 10
fix range x 55 80
fix range group 'outer blocks'
;固定选中范围内的块体,创建边界条件

delete range group 'excavate' ;删除开挖区域分组下的块体,形成边坡
hide range group 'outer blocks' ;隐藏'outer blocks'分组下的块体

单击绿色按钮执行文件,回到 “Blocks” 绘图窗口,添加坐标轴到视图中,选择 List 标签下的 MiscAxes .

可以通过左键单击并拖动坐标轴的边缘(红色选框)来调整坐标轴的大小。 可以通过单击鼠标左键并拖动它们的中间来移动它们。还可以在 Plot Items 选中 Axes ,然后在 Attributes 中进行坐标轴属性设置。

(未完待续)


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