基于Minecraft游戏的FLAC3D三维地质建模
2020-07-21王歆宇
王歆宇
(西南交通大学土木工程学院,四川成都 610031)
Minecraft是由Mojang公司开发的一款3D第一人称高自由度沙盒游戏,参与者可以在游戏中像玩乐高积木一样用方块搭建建筑、城市、山体,如长城、巴黎圣母院等名胜都已经在游戏中得到实现,在游戏中也可以利用特殊道具进行编程,实现复杂的计算机功能。这款游戏自从2009年面世以来已经在全球吸引了超过一亿玩家,覆盖全年龄段,即便在6~12岁的小学生群体中都已经具有很高的知名度,在世界范围内也有越来越多的学校将Minecraft纳入到教学中,以培养学生的建模能力、逻辑分析能力和编程能力,更有越来越多的科研人员利用Minecraft独特的功能进行各自领域的科学研究[1-3]。
FLAC3D作为一款专业的国际通用的岩土工程软件,在解决岩土工程问题上有许多其他有限元软件不可替代的优越性,然而,FLAC3D软件在模型建立的问题上却存在不足。在5.0版本以前只能采用命令的形式建模,建模过程非常抽象和困难,耗费了研究人员大量时间,在5.0版本以后虽有Extrusion建模工具,但只能实现平面拉伸功能,仍存在很大局限性。
许多的研究人员也提出了利用其他软件进行三维建模和网格剖分并导入FLAC3D的办法,如廖秋林[4]等人开发的ANSYS-FLAC3D接口程序,就很好的实现了在ANSYS中建模并剖分网格,最后导入FLAC3D中的功能。但采用这样的建模方法前提是需要熟练运用对应软件如ANSYS等。
本文在已有研究基础上,提出采用Minecraft进行搭积木式的直观三维建模,然后用Mineways程序将Minecraft的地图模型转化为.obj格式的三维图形,然后用3DMAX将文件打开,删除模型多余部分后,导出为.dwg格式,然后用AutoCad打开并保存为三维实体,然后导入ANSYSWorkbench,剖分网格后导入ANSYSAPDL,然后利用ANSYS-FLAC3D接口程序最后导入FLAC3D中。
1 FLAC3D模型生成
1.1 Minecraft模型的建立
与常用的三维设计软件建模基于点、线、面、体的拉伸、旋转、布尔操作等不同,Minecraft的建模是以一个正方体方块为基本单元,鼠标左键放置一个方块,右键敲除一个方块,通过操控游戏角色在三维空间中运动,不断放置方块即可进行三维模型制作,整个过程非常直观,非常简单。只要有充足的时间和耐心,可以创作出庞大和细致的模型。
打开Minecraft后,选择“创造模式”,会生成一个有陆地和海洋的三维地图环境,选择一处空旷地区,然后以一个实体单元为基点放置方块,即开始正式创作,模型搭建好后,保存即可(图1)。
图1 在Minecraft中建立模型
1.2 Mineways转化三维模型
Mineways是一款开源的工具,这款工具最开始开发的目的是为了方便Minecraft的玩家将游戏中的模型用3D打印机打印制作出实体模型[5]。
进入Mineways后,选择“File→OpenWorld”,浏览之前在Minecraft中创作时的大地图文件“level.dat”,然后选择右键框选模型所在范围,并设置模型所在的高度区间,然后选择“Exportfor3DPrinting”,设定方块的边长,由此来使模型尺寸与实际的大小相匹配,设置导出格式为.obj(图2)。
图2 Mineways选择并导出三维图形
1.3 3DMAX编辑模型
3DMAX是常用的三维建模软件,用3DMAX导入由Mineways生成的.obj文件,并选择作为单个网格导入,生成3维模型后,选择右侧工具栏的修改按钮,单击“元素”按钮,选择并删除模型下方多余的原始地图部分,再将模型导出为.dwg格式,导出过程中设置几何体选项同时勾选“将实例转化为块”,“跳过隐藏对象”和“忽略挤压封口”(图3)。
图3 3Dmax修改模型
1.4 AutoCad转化三维实体
在3Dmax中生成的模型为线框模型,不能直接导入ANSYS,因此AutoCad开打.dwg文件后,将模型转化为三维实体,然后保存。
1.5 ANSYS剖分网格
1.5.1ANSYSWorkbench剖分网格
ANSYSWorkbench与AutoCad有官方的接口,因此在进入ANSYSWorkbench后将左侧“Geometry”选项拖入工作区,然后导入.dwg文件,双击“Geometry”后进入模型编辑界面,点击“Generate”,生成三维模型,然后关闭窗口(图4)。
图4 ANSYS Workbench生成模型
将“StaticStructural”拖入工作区并与“Geometry”模块连接,然后双击“Model”进入分析界面,在左侧“Geometry→part1”选项右键添加命令,并换行输入“et1,182”,以保证网格剖分的形式是可以被ANSYS-FLAC3D接口读取并转化的。然后点击“MeshControl→Method”,选择剖分方式为“Automatic”,将“ElementMidsizeNodes”选项设置为“Dropped”。
点击左侧的“Mesh”,弹出参数设置窗口后点击“Sizing”栏,点击“RelevanceCenter”窗口,调整网格剖分精细程度,再点击上方的“Update”,划分网格见图5。
图5 ANSYS Workbench剖分网格
1.5.2ANSYSAPDL网格模型转化
关闭“Model”窗口,然后右键选择将模型导入“ANSYSAPDL”,分别右键“Model”和“ANSYSAPDL”并选择“Update”,待闪电箭头转化为对勾后表示模型传输完毕,然后右键打开“APDL”(图6)。
图6 ANSYS Workbench流程控制
在ANSYSAPDL中,选择“ReadInputfrom”,然后浏览并读取ANSYS-FLAC3D接口程序,最后生成.FLAC3D格式的网格文件(图7)。
图7 ANSYS APDL中生成FLAC3D网格文件
1.6 导入FLAC3D
打开FLAC3D后,选择“Input”之前生成的.FLAC3D文件,即完成模型的导入。然后就可以赋予材料参数、设置边界条件并开展力学分析。
2 应用实例
2.1 台阶式挡墙
台阶式挡墙作为一种新型的挡墙形式,其几何特征让人十分自然的联想到Minecraft中的模型,导入FLAC3D后的模型如图8所示,对模型进行边坡稳定性分析时响应正常。
图8 台阶式挡墙模型导入FLAC3D
2.2 矩形巷道
矩形端面的巷道在矿山开挖中十分常见,以十字交叉的矩形端面巷道为例,在Minecraft中建立模型如图9所示,并导入到FLAC3D中如图10所示。
图9 在Minecraft中建立矩形断面巷道模型
(a)正常视图 (b)透明视图图10 矩形断面巷道FLAC3D模型
3 结论
采用Minecraft进行三维地质建模,并利用一系列成熟的软件和接口,将模型剖分网格并导入FLAC3D中进行数值模拟是切实可行的,该方法涉及到较多的程序,但只要按照步骤操作可以很快的完成模型转化和导入的全部过程。
文中所举的矩形端面巷道和台阶式挡墙两个例子只是Minecraft建模能力的很小一部分,目前该法的可运用空间还尚待挖掘,比如该法可以建模并分析由矩形石块组成的内部有复杂通道的埃及金字塔,也可用于建模并分析乐山大佛这样的以直线居多的复杂模型。
虽然采用Minecraft进行建模非常直观,但建立一个稍大的模型相对于熟练使用ANSYS或CAD的人会耗费较长时间。不过另一方面,在Minecraft中建模本身的乐趣是采用ANSYS或CAD不能比拟的,该法也有助于引起广大的Minecraft玩家对岩土工程、地质工程等学科的兴趣。