王歆宇
(西南交通大學土木工程學院,四川成都 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中。
與常用的三維設計軟件建模基于點、線、面、體的拉伸、旋轉、布爾操作等不同,Minecraft的建模是以一個正方體方塊為基本單元,鼠標左鍵放置一個方塊,右鍵敲除一個方塊,通過操控游戲角色在三維空間中運動,不斷放置方塊即可進行三維模型制作,整個過程非常直觀,非常簡單。只要有充足的時間和耐心,可以創作出龐大和細致的模型。
打開Minecraft后,選擇“創造模式”,會生成一個有陸地和海洋的三維地圖環境,選擇一處空曠地區,然后以一個實體單元為基點放置方塊,即開始正式創作,模型搭建好后,保存即可(圖1)。

圖1 在Minecraft中建立模型
Mineways是一款開源的工具,這款工具最開始開發的目的是為了方便Minecraft的玩家將游戲中的模型用3D打印機打印制作出實體模型[5]。
進入Mineways后,選擇“File→OpenWorld”,瀏覽之前在Minecraft中創作時的大地圖文件“level.dat”,然后選擇右鍵框選模型所在范圍,并設置模型所在的高度區間,然后選擇“Exportfor3DPrinting”,設定方塊的邊長,由此來使模型尺寸與實際的大小相匹配,設置導出格式為.obj(圖2)。

圖2 Mineways選擇并導出三維圖形
3DMAX是常用的三維建模軟件,用3DMAX導入由Mineways生成的.obj文件,并選擇作為單個網格導入,生成3維模型后,選擇右側工具欄的修改按鈕,單擊“元素”按鈕,選擇并刪除模型下方多余的原始地圖部分,再將模型導出為.dwg格式,導出過程中設置幾何體選項同時勾選“將實例轉化為塊”,“跳過隱藏對象”和“忽略擠壓封口”(圖3)。

圖3 3Dmax修改模型
在3Dmax中生成的模型為線框模型,不能直接導入ANSYS,因此AutoCad開打.dwg文件后,將模型轉化為三維實體,然后保存。
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網格文件
打開FLAC3D后,選擇“Input”之前生成的.FLAC3D文件,即完成模型的導入。然后就可以賦予材料參數、設置邊界條件并開展力學分析。
臺階式擋墻作為一種新型的擋墻形式,其幾何特征讓人十分自然的聯想到Minecraft中的模型,導入FLAC3D后的模型如圖8所示,對模型進行邊坡穩定性分析時響應正常。

圖8 臺階式擋墻模型導入FLAC3D
矩形端面的巷道在礦山開挖中十分常見,以十字交叉的矩形端面巷道為例,在Minecraft中建立模型如圖9所示,并導入到FLAC3D中如圖10所示。

圖9 在Minecraft中建立矩形斷面巷道模型

(a)正常視圖 (b)透明視圖圖10 矩形斷面巷道FLAC3D模型
采用Minecraft進行三維地質建模,并利用一系列成熟的軟件和接口,將模型剖分網格并導入FLAC3D中進行數值模擬是切實可行的,該方法涉及到較多的程序,但只要按照步驟操作可以很快的完成模型轉化和導入的全部過程。
文中所舉的矩形端面巷道和臺階式擋墻兩個例子只是Minecraft建模能力的很小一部分,目前該法的可運用空間還尚待挖掘,比如該法可以建模并分析由矩形石塊組成的內部有復雜通道的埃及金字塔,也可用于建模并分析樂山大佛這樣的以直線居多的復雜模型。
雖然采用Minecraft進行建模非常直觀,但建立一個稍大的模型相對于熟練使用ANSYS或CAD的人會耗費較長時間。不過另一方面,在Minecraft中建模本身的樂趣是采用ANSYS或CAD不能比擬的,該法也有助于引起廣大的Minecraft玩家對巖土工程、地質工程等學科的興趣。