• 根据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中。

  • 相关阅读:
    记一道有趣的数学题
    BJOI2018 二进制
    BJOI2016 IP地址
    BJOI2016 回转寿司
    BJOI2017 开车
    BJOI2019 光线
    java 下载
    springboot 运行相关命令
    sql mapper 里面 Integer 类型判断
    springboot 访问jar同级别下的文件访问问题
  • 原文地址:https://www.cnblogs.com/caizhao/p/10831657.html
Copyright © 2020-2023  润新知