根据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.htmlhttp://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中。

优质内容筛选与推荐>>
1、jquery动画
2、zoj 1073 Round and Round We Go
3、Qt:postEvent 与 customEvent() 函数 进行异步通信; 以及参数的传递 // 防止界面卡死;;
4、合并两个排序的链表
5、对于初学者学习HashTable 不该忽视的一点


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号