zoukankan      html  css  js  c++  java
  • 根据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:ProgramFilesAnsys Incv100ANSYSlibintel下;

    (2) 用TXT打开ANS_EXT.TBL,在文件尾部追加一条:C:ProgramFilesAnsys Incv100ANSYSLibIntelAnsysToFlac3D.dll ~atf AnsysToFlac3D(64位ATF),其中~atf是在ansys中输入的命令;

    (3)设置环境变量(win7下右击计算机->高级系统设置->环境变量),新建一个名为ANSYS_EXTERNAL_PATH,值为C:ProgramFilesAnsys Incv100ANSYSlibintel的环境变量。此环境变量表示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中。

  • 相关阅读:
    flexbox子盒子order属性
    将页面中表格数据导出excel格式的文件(vue)
    vue.js生命周期钩子函数及缓存
    js获取n分钟(或n小时或n个月)后(或前)的时间(日期)
    微信小程序之模版的使用(template)
    微信小程序导出当前画布指定区域的内容并生成图片保存到本地相册(canvas)
    关于UUID
    关于axios及其在vue中的配置
    Vue.js之下拉列表及选中触发事件
    基于iview的后台管理
  • 原文地址:https://www.cnblogs.com/caizhao/p/10831657.html
Copyright © 2011-2022 走看看