首页/文章/ 详情

一文搞懂ANSYS的二次开发逻辑

10天前浏览329

01 引子

先做一个小例子。

(1)准备一个简单的、能算的 Ansys 算例,注意!一定要简单!!!

(2)导出求解文件(.dat)文件在 Solution  → Write Input File 中导出求解文件

(3) Win + R ,调出 运行 ,输入 cmd ,打开 cmd 命令窗口,在其中输入以下命令:

"D:\Program Files\ANSYS Inc\v211\ANSYS\bin\winx64\ansys211" -b -dir "E:\APDL-Batch-Demo" -i Static.dat -o file.out

其中:

"D:\Program Files\ANSYS Inc\v211\ANSYS\bin\winx64\ansys211" 是求解器的执行程序路径, ansys211 实际是 ansys211.exe 执行程序;

-b 表示Batch模式;

-dir "E:\APDL-Batch-Demo" 求解文件(.dat)的所在路径;

-i Static.dat 求解文件的名称;

-o file.out 指定输出文件

此外,还可指定求解时的CPU个数:

-np 4 指定计算核心数为4;

等待求解完成,文件夹的变化如下

求解器的执行程序路径也可以改写成:

"%AWP_ROOT211%\ANSYS\bin\winx64\ansys211"

其中:"%AWP_ROOT211% 是系统环境变量。

那为什么 "%AWP_ROOT211% 能够起作用呢?

这是因为 "%AWP_ROOT211% 已经添加到系统的环境变量中,所以在cmd中可以识别。这也是为什么有些软件在安装的过程中需要添加环境变量的原因。

同理求解器的执行程序路径也可以改写成:

"%ANSYS211_DIR%\bin\winx64\ansys211"

以上命令汇总:

"D:\Program Files\ANSYS Inc\v211\ANSYS\bin\winx64\ansys211" -b -dir "E:\APDL-Batch-Demo" -i Static.dat -o file.out

"%AWP_ROOT211%\ANSYS\bin\winx64\ansys211" -b -dir "E:\APDL-Batch-Demo" -i Static.dat -o file.out

"%ANSYS211_DIR%\bin\winx64\ansys211" -b -dir "E:\APDL-Batch-Demo" -i Static.dat -o file.out

"%ANSYS211_DIR%\bin\winx64\ansys211" -b -np 4 -dir "E:\APDL-Batch-Demo" -i Static.dat -o file.out

02 ANSYS的二次开发逻辑

上面展示了有限元分析(Ansys)的采用命令行方式运行 Batch 模式的基本流程:

输入求解文件求解器求解返回结果文件

其实以上的内容看似和二次开发关系不大,但如果以文本模式打开 .dat 文件,可以发现,它是ansys的本身的开发语言——APDL,也就是说,用户提交了一个以 APDL语言 编写的求解文件,通过求解器解释给计算机,让计算机进行计算,结果返回给求解器,求解器最终输出结果文件,也就是 .rst 文件(结构与耦合结果文件)。

通俗点说即:用户想进行有限元分析,提出了一些需求,有人(Ansys)开发出一个 求解器 ,并且为了保证用户和求解器能正常交互,所以定义了    交流语言 (APDL语言),这样用户的需求就可以通过 交流语言 , 借助求解器与计算机的 翻译交流 得以满足,以上的整个过程可以简称为 求解 或者  编译

实际上,作为用户而言, 求解器 是个黑匣子,里面具体如何运行无从得知,市面上有也有非常多的 求解器 ,商用的以及开源的都有。以 WorkBench 为例,这个产品本身就属于 一次开发 , 同时,它也开放了一些接口,得以让用户在 WB 的框架下进行相应的 二次开发,这个 二次开发 是基于有限元仿真的基本流程的,因为 编译 的过程是黑匣子,无需开发。那么 二次开发 的重点就在如何得到 求解文件 以及如何处理 结果文件 上。通常情况下,为了得到 求解文件 和处理 结果文件,用户会在Workbench平台中做非常多的操作,这些操作,可以通过鼠标点击来实现,当然也可以通过 特定语言 来实现(IronPython),然后WorkBench的执行程序会将这些 特定语言  翻译 给计算机,在去执行用户的 命令

下面给出WorkBench在cmd命令窗口运行.py 文件的命令

"%AWP_ROOT211%\Framework\bin\Win64\RunWB2" -b -i -r"path\main.py"

其中:

"%AWP_ROOT211%\Framework\bin\Win64\RunWB2"RunWB2.exe  执行程序的路径求解器的执行程序路径;

-i 表示交互模式

-b 表示Batch模式

-r"path\main.py" 是.py执行文件的 绝对路径

WorkBench 运行.py的逻辑和Ansys求解的逻辑一致,即采用了 求解器 能够识别的语言,并 编译 给计算机,最终执行用户的 命令

实际上 Mechanical 中的二次开发的语言也是 ironpython ,但是它的执行程序是嵌套在 Workbench 平台下的,并不能脱离 WB 平台单独运行,因此也就无法在 cmd 命令窗口使用命令去单独运行。它的安装路径如下:

D:\Program Files\ANSYS Inc\v211\aisol\bin\winx64\AnsysWBU.exe

双击打开会弹出一下窗口

最后总结一下:ANSYS 二次开发,或者说编程的逻辑就是用 解释器读懂的语言,执行用户下达的 命令

这里 能读懂的语言 如何编写,实际上就是用户需要学习的,即API(Application Programming Interface)。

03 简单案例

案例展示如何在WB平台下录制脚本,作为基础代码。

这样就得到了一个基础代码(未修改)。

# encoding: utf-8
# 2021 R1
SetScriptVersion(Version="21.1.216")
template1 = GetTemplate(
    TemplateName="Static Structural",
    Solver="ANSYS")
system1 = template1.CreateSystem()

test.wbjn 名称直接修改为 test.py , 在cmd窗口输入:

"%AWP_ROOT211%\Framework\bin\Win64\RunWB2" -b -i -r"C:\Users\Tiyaya\Desktop\test.py"

其中:

-r"C:\Users\Tiyaya\Desktop\test.py" 需要根据实际地址修改;

效果如下:

04 扩展

上面展示的是基于 ANSYS2021R1 的二次开发技术,实际上 Anasys 官方也做了python相关的二次开发的项目叫做 pyansys ,官方地址是:

https://docs.pyansys.com/

其中和结构相关的有关的主要如下图:

里面还有其它 Ansys 的产品模块,所以 pyansys 项目的目的就是通过 Python 使用 Ansys 产品,前提是需要安装 Ansys 的本体产品,例如做有限元分析的前后处理,调用 Ansys 的求解器求解等等,而且很多 Python 相关的 package 是后期开发出来的,对 Ansys 的版本是有要求的。

例如:PyMAPDL  最低的建议版本要求是2021R1,同时也对安装的 python解释器 有版本要求(3.9~3.12)。


PyMechanical  最低的建议版本要求是2023R2



来源:CAE中学生

附件

免费附件.txt
MechanicalWorkbenchSystem二次开发pythonANSYS
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-11-03
最近编辑:10天前
CAE无剑
硕士 | 仿真工程师 CAE中学生
获赞 680粉丝 1501文章 248课程 0
点赞
收藏
作者推荐

5.定制工具条

新版本中的命令主要是图标的形式。例如,在2D下面主要是2D网格划分的命令,图1。图1对于一些常用的命令,可以自定义工具条,并将常用的命令图标通过拖拽到Custom的方式,自定义常用的命令工具条。首先,通过“+”号,添加Custom工具条,将想要添加的功能拖拽至Custom上,直到出现小的“+”标志,松开鼠标左键,完成添加,图2。图2完成配置后,可以右击custom,点击float,将这些命令浮窗,图3,图4。这样可以更加方便的选取命令。图3图4此外,还可以将Custom的配置导出成.xml格式文件,作为模板分享。导入Custom的模板文件(.xml),可以先新建一个空白的Custom,再在下面的空白处右击,选择ImportCustomPages,即可导入.xml。图5以上,即在新版本中如何定制工具条。来源:CAE中学生

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈