首页/文章/ 详情

Python与Workbench联合仿真设置

7月前浏览14327

本文摘要(由AI生成):

文章主要介绍了如何使用PyWbUnit模块实现Python与Workbench的联合仿真设置。PyWbUnit模块提供了Python与Workbench的双向数据接口,支持实时数据传递,但仿真流程的实现还需通过Workbench中的脚本开发实现。安装PyWbUnit模块时,需要提前配置好Python的系统环境,并使用相应的命令进行安装。在联合仿真设置过程中,需要导入CoWbUnitProcess类,进行实例化和初始化,然后执行脚本代码,最后保存项目和退出。在数据查询方面,可以通过创建输出参数或写入临时文件的方式获取仿真计算结果。总之,借助PyWbUnit模块,可以实现对Workbench的联合仿真和高度定制化的二次开发。


在前期更新中给大家分享过《MATLABANSYS联合仿真设置》和《PythonFluent联合仿真设置》,之后就一直有朋友问说:能否使用Python实现与Workbench的联合仿真呢?

当然是可以的,使用小田老师开发的PyWbUnit模块包,就能支持PythonWorkbench间的数据通信,实现二者间的实时数据传递,`ANSYS仿真与开发`后台回复关键字“PyWbUnit”即可获得模块下载链接。

那么,本期就给大家详细介绍下PyWbUnit模块的安装、使用和联合仿真设置的方法。

1、PyWbUnit概述

本模块包提供PythonWorkbench联合仿真的支持:可通过Python启动Workbench,并打开Workbench的TCP服务器通过Socket连接实时发送脚本代码执行,同时支持查询代码执行结果和脚本变量值。

说明:本模块只负责提供PythonWorkbench的双向数据接口,仿真流程的实现还需要通过Workbench中的脚本开发实现,可以参考以下文章:

2、安装使用

提供预编译的二进制库(whl)安装方式,目前只支持windows x64平台的Python3.73.8版本,安装前需提前配置好Python的系统环境,然后在模块文件所在目录下打开CMD窗口,根据Python版本不同,使用如下不同命令安装:

pip install PyWbUnit-0.2.0-cp37-none-win_amd64.whl
pip install PyWbUnit-0.2.0-cp38-none-win_amd64.whl

3、API说明

可以通过Python内置的help方法,查看模块包中类和方法的使用说明,其中CoWbUnitProcess为主要的接口实现类,类的API说明如下:

图片


4、使用方法

首先从PyWbUnit模块中导入CoWbUnitProcess类,接着指定工作目录和版本号,进行实例化和初始化(initialize)后,此时会打开Workbench程序,然后可以通过方法execWbCommand执行脚本代码,最后保存项目(saveProject)和退出(finalize)

以前期文章:《ANSYS中使用Python实现高效结构仿真》为例,演示如何使用PyWbUnit调用Workbench完成联合仿真的过程详细操作步骤和对应代码参考如下:

(1)初始化模块设置


图片


(2)创建分析流程

  • 创建Static Structural分析系统,系统中包含结构分析中的所有流程

图片

(3)定义材料属性

  • 创建Steel材料,密度:7500kg/m3,杨氏模量:209.0E3,泊松比:0.3


图片


(4)SCDM脚本建模

  • 按照尺寸参数进行脚本参数化建模,并对相应的压力和约束加载面创建边界命名


图片


(5)Mechanical前处理

  • 指定材料属性、设置网格尺寸,指定固定约束和压力载荷加载的位置


图片


代码执行完成后,Mechanical中的材料、网格及载荷参数成功设置,模型求解完毕。

图片

(6)Mechanical后处理

  • 添加Mises等效应力后处理,然后调整视角,输出后处理云图

图片

(7)项目保存及退出

图片

5、数据查询

文章读到这里,相信大家都了解使用PyWBUnit驱动Workbench自动化仿真的方法,但是对如何获取仿真计算结果存在疑问。

这里给大家分享两种有效方法,可以根据不同的场景灵活选用:

(1)创建输出参数,查询变量值

在仿真后处理中,将结果属性创建为输出参数,参考《Mechanical中如何实现自动参数化》,之后会在Workbench中的Parameter Set标签下显示,这样能通过脚本访问到如下所示参数P1的数值。


图片


CoWbUnitProcess类中,封装了实例方法:queryWbVariable,通过此方法可以查询Workbench脚本环境中的变量值,如下:

图片

(2)写入临时文件,读取变量

在仿真后处理流程中,使用脚本获得结果数值并写入到临时文件中,然后在Python中读取临时文件读取结果,如下所示:

图片


6、总结

Workbench作为Ansys主打的多物理场仿真平台,借助PyWbUnit模块的双向数据接口,和Python科学计算的优势,能快速去集成科学计算、可视化、人工智能等领域的相关模块,实现对Workbench的联合仿真和高度定制化的二次开发。


SpaceClaimACTMechanicalFluentWorkbench
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2021-06-17
最近编辑:7月前
小田老师
硕士 | 仿真工程师 欢迎关注ANSYS仿真与开发!
获赞 650粉丝 3789文章 62课程 4
点赞
收藏
作者推荐
未登录
6条评论
6月前
老师,您好,可以实现多个模型装配并且有多个力加载的模型自动化仿真吗?
回复
拿铅笔的赵威克.
签名征集中
1年前
这个pywbunit是不是只能和2020 R1通讯
回复
拿铅笔的赵威克.
签名征集中
1年前
怎么获PyWbunit啊
回复
xiaofei
签名征集中
2年前
您好,在使用这个模块的时候发现一个bug。如果初始化后打开一个原有的wbpj文件,然后进行命令传输的时候就会卡住,无法操作,请问有什么解决方法吗
回复
D.
签名征集中
3年前
小田老师您好,我在使用pywbunit的时候遇到了一个问题,请问templatename除了static structural还可以设置成别的吗,如何设置成fluid flow(fluent)?
回复 1条回复
于欢
签名征集中
3年前
小田老师您好,请问act开发模板中的help可以去掉吗?在右侧占据了很大比重,但是一般不需要设置help解释。
回复 1条回复
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈