首页/文章/ 详情

建立更真实的数值模型(2):FLAC3D与曲面地形的集成

1年前浏览2826

1. 引言

在上一个笔记《建立更真实的数值模型:FLAC3D导入地形图 (1)》中,讨论了如何使用SketchUp把Google地图导入到FLAC3D中,尽管沿着这条路径走下去还有许多工作要做,但已经迈出了半里长征的第一步,以后会逐步完善这种方法。今天的笔记顺着上一篇的思路但使用了不同的方法---“沙箱创建地形geometry”来讨论如何把一个自由产生的曲面geometry与FLAC3D集成在一起,从而形成复杂地形的三维计算模型。与上一篇描述的流程一样,首先需要在SketchUp内创建地形,然后把地形导入到FLAC3D中。

2. 使用沙箱创建地形geometry

我们的目的是使用沙箱功能在SkecthUp中创建.stl格式的地表形状。废话不讲,按照下面的步骤顺序操作:

【1】启动SketchUp后,建立一个新的文件,首先检查单位设置,参看《建立更真实的数值模型:FLAC3D导入地形图 (1)》,然后从菜单“视图->工具栏”中选择“沙箱”,关闭窗口。

这时工具栏内会出现“沙箱”的工具集,包括7种工具,这7种工具的含义从左到右依次为:

(1) 根据等高线创建沙盒;

(2) 根据网格创建沙盒;

(3) 曲面起伏;

(4) 曲面平整;

(5) 曲面投射;

(6) 添加细部;

(7) 对调角线

如同任何标准的Windows程序一样,沙箱的这些工具你也可以在菜单中找到,如下图所示。

【2】选择“沙箱”工具栏中的第二项“根据网格创建沙盒”,系统出现如下提示

不知道为啥默认的栅格间距定义为3m, 感觉有点太大了,改为2m, (注意这个栅格值最好与后来FLACD3D的网格值设置为一样)然后输入所需表面的长度和宽度,我都输入了50m (注意这个值也应该与后来FLAC3D Block的尺寸对应), 于是形成了如下图所示的平面。

【3】创建完平面后,从沙箱工具栏中选择第三项“曲面起伏”,

并定义平滑的半径。这个半径表示更改曲面时受影响区域的距离。

由于是演示,随便产生一些曲面,如下图所示。

【4】将曲面输出为.stl文件,保存文件名为su-slope.stl,准备将其导入FLAC3D。

3. FLAC3D导入地形geometry

【1】打开FLAC3D程序,首先使用geometry工具输入su-slope.stl,检查这个曲面的坐标,包括x,y,z的坐标范围,这一点非常重要,否则这个曲面不能与FLAC3D 的block正确地衔接在一起。FLAC3D手册关于这一点有非常详细的描述。不过,如果不动手去试验,很难确切理解它表述的意思。

【2】对照着su-slope.stl的坐标范围,写一个FLAC3D的数据文件:

    ; Created on 6/2/2020 by GeotechWumodel newmodel deterministic onmodel precision 6model random 10000geometry import 'su-slope.stl'  ;importing the surface topography in .stl formatzone create brick size 50 50 10 ...                  point 0 0, 0, -20 ...                  point 1  50, 0, -20 ...                  point 2 0, 50, -20 ...                  point 3 0,0,-10zone group 'Rock'zone generate from-topography geometry-set 'su-slope' segments 10 ratio 1 group 'Sand'

    这样便顺利把.stl曲面文件集成到FLAC3D的模型中。

    下面简要解释一下这段代码的工作机理:

    (1) 首先使用 geometry import 'su-slope.stl'命令把.stl文件导入到FLAC3D中;

    (2) zone create brick命令用来产生底部绿色的块体,然后把这部分块体使用命令zone group 'Rock' 定义为一组;

    (3) zone generate from-topography geometry-set 'su-slope' segments 10 ratio 1 group 'Sand' 划分曲面单元,并且定义组名。


    4. 其它的例子

    下面演示的例子均来自FLAC3D手册。

    【1】这个例子与上述我们的例子相同。假定我们SketchUp中产生一个曲面文件surface1.stl, 使用下面的代码产生FLAC3D模型这部分没有什么难的应该注意的只是如何设置brick尺寸和坐标

      model newgeometry import 'surface1.stl'zone create brick size 50 40 5 ...   point 0 0 0 -4000 ...   point 1 15000 0 -4000 ...   point 2 0 12000 -4000 ...   point 3 0 0 -2000 ...   group 'Layer1'zone generate from-topography ...   geometry-set 'surface1' ...   segments 8 ...   group 'Layer2'

      【2】下面这个例子使用了关键字range position-x 0 5000 position-y 0 5000取曲面的一部分。这个也没有什么难理解的, 只是没有想到什么场景下需要这么作。 

        model newgeometry import 'surface1.stl'zone create brick size 50 40 5 ...   point 0 0 0 -4000 ...   point 1 15000 0 -4000 ...   point 2 0 12000 -4000 ...   point 3 0 0 -2000 ...   group 'Layer1'zone generate from-topography ...   geometry-set 'surface1' ...   segments 8 ...   ratio 0.6 ...   group 'Layer2' ...   range position-x 0 5000 position-y 0 5000

        【3】下面这个例子显示了与geometry set 命令联合建立多个地层。

          model newgeometry import 'surface1.stl'geometry set 'surface2'geometry polygon create by-positions ...   0 0 -2000 ...   15000 0 -3500 ...   15000 12000 -3500 ...   0 12000 -2000zone create brick size 50 40 5 ...   point 0 0 0 -6500 ...   point 1 15000 0 -6500 ...   point 2 0 12000 -6500 ...   point 3 0 0 -5000 ...   group 'Rock'zone generate from-topography geometry-set 'surface2' ...   segments 5 ...   ratio 1.0 ...   group 'Sand'zone generate from-topography geometry-set 'surface1' ...   segments 8 ...   ratio 0.8 ...   group 'Clay'

          5. 结束语

          本文描述了使用SketchUp的沙箱功能建立曲面的几何形状,并且无缝集成于FLAC3D的模型中。显然,这种自由生成的曲面不能代表真实的地形。接下来要作的是从Google地图中提取地形等值线,利用沙箱工具建立地形曲面,然后再集成到FLAC3D模型。

          来源:计算岩土力学
          FLAC3D试验曲面
          著作权归作者所有,欢迎分享,未经许可,不得转载
          首次发布时间:2022-09-27
          最近编辑:1年前
          计算岩土力学
          传播岩土工程教育理念、工程分析...
          获赞 131粉丝 929文章 1776课程 0
          点赞
          收藏
          作者推荐
          建立更真实的数值模型:FLAC3D导入地形图 (1)

          1. 引言FLAC3D计算边坡稳定性有时需要建立相对真实的地形地貌模型。经常使用的一种方法是在Autocad中建立一个二维边坡剖面,然后把产生的DXF文件导入到FLAC3D,在FLAC3D中利用《FLAC3D三维模型的建立---Extrusion工具》所述的方法生成三维模型,对于一些复杂地形来说,显然这是一种非常近似的做法。现在FLAC3D提供了geometry接口,因此我们想把更真实的地形输入到FLAC3D模型中。这个笔记尝试使用SketchUp和Google地图建立地表的geometry, 然后输入到FLAC3D。2. SketchUp生成地形geometry使用下面的步骤生成地形geometry:【1】单位选择----启动SketchUp,新建一个文件,选择"模型信息"菜单。然后在打开的窗口内选择“单位”,如下图所示。检查长度单位是不是“米”, 如果是“英尺”的话,切换成“米”,这更符合中国用户的习惯。关闭这个窗口。 【2】选定位置----选择菜单“添加位置”,如下图所示。点击'添加位置'后,转换到Google地图,下图中所示的白色正方形是一个区域选择框,想选择哪个区域,就把框移动到要相应的位置,这个选择框的边长是1公里,用户不可改变其大小,这意味着Google一次只允许选择1平方公里的区域,如果想选择范围大一点儿,可以多操作几次,然后拼接在一起,但拼接起来的图形肯定有拼接误差。我不确定这是不是Google的一个收费项目,如果用户付费,是不是选择的范围能比1公里大一些呢?在地图上面的搜索框内输入想要显示的位置,例如我输入"Hohhot, CN",Hohhot是内蒙古自治区呼和浩特的英文名称,不过目前的版本只可以输入英文搜索,不接受中文字符搜索地名。下图所示是呼和浩特,具体这是哪个位置我也不清楚,可能是市中心吧。我只知道呼和浩特的北面是大青山,因此向上移动鼠标,移动到城市的边界外便进入山地区域。沿着去武川的线路随便找了一块地方,如下图所示。【3】导入地图----按地图右侧的"选择区域"按钮,然后按"导入"按钮,刚才选择的地图区域便导入到SketchUp中,如下图所示。按照相同的方法再输入临近的三块区域,于是拼成下面的地形图。从主菜单“视图”选择“工具栏”,选择“地点”然后在工具栏中点击“切换地形”,于是显示出三维的地形。【4】导出地图----选择“导出”-> “三维模型”, 以stl格式保存,保存文件名为dixing.stl。3. 导入stl文件到FLAC3D打开FLAC3D的Geometry工具,导入dixing.stl,如下图所示。应该注意,目前的工作只是演示了一个真实地形的输入方法,输入进来的这个网格并不能直接用于计算,还需要与FLAC3D命令联合在一起才能建立起完整的模型。 4. 导入stl文件到Rhino事实上,对于象上面例子的不规则形状曲面来说,FLAC3D自身没有能力处理为规则的形状,因此必须使用另一个工具软件Rhino, 进一步,可以使用Rhino的插件Griddle来进行处理,这是后话了。现在我们仅把dixing.stl 输入到Rhino中,如下图所示。5. 结束语本文简要描述了使用SketchUp导入Google地图的过程,生成的stl文件能够直接输入到FLAC3D建立模型或者输入Rhino中作进一步处理。总之,这种方法能够为FLAC3D产生出真实的地表模型。不过,本文没有进行更深入的工作,许多因素,例如地形的坐标和高程还没有来得及考虑。来源:计算岩土力学

          未登录
          还没有评论
          课程
          培训
          服务
          行家
          VIP会员 学习 福利任务 兑换礼品
          下载APP
          联系我们
          帮助与反馈