根據AutoCAD地形圖建立ANSYS和Flac3D實體模型
0. 說明
為方便計算建模,分別采用VB.Net、C#和C++編制了幾個插件,(ACAD_SurferAns.dll、AutoCADToANSYS.dll、AnsysToFlac3D.dll),下面解釋幾個插件配合使用,根據AutoCAD地形圖建立ANSYS和Flac3D實體模型的過程。
1. 軟件環境
(1)AutoCAD(2007~2013,測試于win7_64bit下AutoCAD2012)
(2)Surfer(測試于Surfer 11、Surfer 12)
(3)ANSYS(測試于ANSYS10.0、ANSYS12.1)
2. 加載插件方法
2.1 AutoCAD插件
(1)打開AutoCAD,輸入NETLOAD,分別加載AutoCADToANSYS.dll和ACAD_SurferAns.dll;
(2)更多方法見 http://forum.simwe.com/thread-1070119-1-1.html 。
2.2 ANSYS插件
見http://forum.simwe.com/thread-1075857-1-1.html ,http://forum.simwe.com/thread-1107630-1-1.html,注意32位和64位的區別,以32位為例。
(1)將AnsysToFlacD.DLL放入C:\ProgramFiles\Ansys Inc\v100\ANSYS\lib\intel下;
(2) 用TXT打開ANS_EXT.TBL,在文件尾部追加一條:C:\ProgramFiles\Ansys Inc\v100\ANSYS\Lib\Intel\AnsysToFlac3D.dll ~atf AnsysToFlac3D(64位ATF),其中~atf是在ansys中輸入的命令;
(3)設置環境變量(win7下右擊計算機->高級系統設置->環境變量),新建一個名為ANSYS_EXTERNAL_PATH,值為C:\ProgramFiles\Ansys Inc\v100\ANSYS\lib\intel的環境變量。此環境變量表示Ansys外部命令(放置AnsysToFlacD.DLL)的文件路徑。
3. 操作流程
(1)準備地形圖。一般設計文件會給出等高線形式的三維地形圖,從地形圖中選出要建模的部分,并剔除雜線,只保留等高線。
示例原始地形圖,見圖1。

圖1 原始地形圖
選出合適的部分,刪除文字、無關點線,只保留等高線,得到干凈的地形圖,如圖2。
* 等高線支持“直線”、“多段線”、“三維多段線”、“樣條曲線”;
* 刪除雜線的方法可以用快速選擇的方式來實現;
* 地形圖必須為矩形的,可繪制矩形后進行修剪地形線。

圖2 修整后的地形圖
(2)畫隧道及地層線
通過旋轉視圖調到合適的視角,繪制隧道結構與地層線,目前只能簡單的進行地層分界,復雜地層情況只能在有限元軟件中處理。
* 圖3中紅色線條為一矩形(也可使用PL命令繪制),以確定基準面和尺寸范圍使用。
* 視圖必須為“視圖→三維視圖→俯視”,然后用3DFORBIT命令旋轉視圖。不要采用其他視圖,因為插件中提取是的局部坐標系的坐標而非世界坐標系。

圖3 繪制隧道結構與地層線
(3)生成地形部分
AutoCAD加載ACAD_SurferAns.dll成功后,執行SFANS命令,輸入各參數后,生成ANSYS命令流文件,本例SurfAnsCmd.txt保存于桌面,如圖4。

圖4 執行SFANS,生成地形部分ANSYS命令流
* 此處借用Surfer的空間插值功能;
* 地形等高線:拾取各等高線,不要選擇無關的線;
* 地域范圍:拾取紅色的矩形;
* 原點:拾取紅色矩形上的某一點,矩形相當于地面,選擇地面上的一點作為原點。而且要記住此點,因為在第四步中還要生成隧道和地層的命令流,他們需要同一個原點;
* x、y方向節點數,由于ANSYS中樣條曲線的限制,節點數不要超過12。
(4)生成隧道部分
AutoCAD加載AutoCADToANSYS.dll成功后,執行ACTAN命令,注意拾取紅色矩形以下的曲線集,原點要與第三步相同,如圖5。將生成的命令流粘貼到第三步SurfAnsCmd.txt之后,方便一次性執行ANSYS命令流。

圖5 執行ACTAN,生成隧道部分ANSYS命令流
(5)ANSYS建模
打開ANSYS,讀取命令流文件,生成上部地形的體和下部隧道地層的線框,如圖6~7。

圖6 讀取命令流文件

圖 7 顯示線框
接下來處理下部的隧道和地層部分,建面→拉伸→切割,壓縮點號,使上下部分合成一整體,如圖8所示。最后劃分網格,如圖9所示。

圖8 整體模型

圖 9 網格劃分
(6)生成Flac3D模型
ANSYS中加載AnsysToFlac3D.dll成功后,執行~atf命令,導出Flac3D網格如圖10。

圖10 導出Flac3D網格文件
(7)生成Flac3D模型
打開Flac3D,導入生成的網格文件,得到Flac3D模型,如圖11。

圖11 Flac3D模型
------------------------------------------------------------
4. 后記
(1)比起C++來,C#進行AutoCAD二次開發效率更高,所以采用了C#開發AutoCADToANSYS.dll;ACAD_SurferAns最初是用VBA寫的一系列腳本,后來想打包的時候發現用VB.Net直接翻譯更快捷,所以采用了VB.Net;AnsysToFlac3D.dll采用C++對ANSYS二次開發,在吳冬博士的基礎上優化改進而來,以前研究3DEC的時候寫過ABAQUSTo3DEC.exe(ABAQUS的網格劃分確實比ANSYS優秀,自用未發布),想整合寫個AnsysToItasca.dll,把ANSYS轉3DEC的功能也加進去,但后來呵呵,畢業之前不再瞎整。。。
(2)上述方法調用了Surfer的插值功能(也可以用MATLAB的插值,只是調用起來太慢),后來想自己寫空間插值,但由于各種原因無精力去優化而擱置。
(3)由于ANSYS由樣條曲線拉伸成曲面時點數的限制,在遇到復雜地形面時精度損失較大,可以采用其他建模軟件例如CATIA、Civil3D生成體導入到ANSYS中。
工程師必備
- 項目客服
- 培訓客服
- 平臺客服
TOP




















