Workbench中利用python实现材料参数化定义

2017-09-15  by:CAE仿真在线  来源:互联网

在workbench中实现整个过程的参数化过程除了前几次文章介绍的模型与网格,还应该包括材料参数的参数化定义。利用Python进行二次开发能够实现材料参数的自由定义,比如来源于excel表格或者文档的数据,通过Python代码的自动读取,参与到实际的有限元分析进程中。


由于在workbench中定义材料的操作比其他有限元软件麻烦很多,因此先就在workbench中如何定义多种材料属性作一些说明,以加强对材料定义过程的认识。此后再进行python材料参数的定义。

在Workbench平台添加一个结构分析系统,右键进入材料编辑状态,如下所示:


Workbench中利用python实现材料参数化定义ansys分析图片1

图1

打开之后的界面如下所示,默认已经有了Structural Steel材料。

Workbench中利用python实现材料参数化定义ansys分析图片2

图2

如果需要添加第二种材料,则进入Engineering Data Sources,如下所示。

Workbench中利用python实现材料参数化定义ansys分析图片3

图3

进入之后如下所示。

Workbench中利用python实现材料参数化定义ansys分析图片4

图4

材料参数可以进行修改,如下所示,按照图5的顺序即可修改某些材料参数,其中勾选1处表示进入编辑模式,只有进入编辑模式后才可以修改具体的某些参数。

Workbench中利用python实现材料参数化定义ansys结果图片5

图5

如果想要添加第二种材料,那么点击如下图所示的添加按钮即可。

Workbench中利用python实现材料参数化定义ansys结果图片6

图6

同样的,如果想要添加同一种材料但是不同的材料参数时,例如添加第二种钢材,也是点击添加按钮,不过需要修改参数后再添加,注意,添加材料时需要先退出编辑模式。

最终添加了三种材料如下所示:

Workbench中利用python实现材料参数化定义ansys结果图片7

图7

图7中有是否抑制材料的选择,如果选择抑制,那么在后续选择材料赋予时将看不到该材料。

上面的过程是如何定义多种不同的材料,下面便是具体给模型赋予材料。给模型赋予材料的基础是solid,因此只有不同的solid才可能赋予不同的材料,在建模时需要考虑此问题。

进入Model模块,先通过File-Refresh更新数据,然后如下所示:

Workbench中利用python实现材料参数化定义ansys结果图片8

图8

可以给每一个solid分别赋予不同的材料,然后划分网格即可。


以下一段代码是在Workbench中通过Python设定材料的弹性模量和泊松比参数:

# encoding: utf-8

# Release 16.0

SetScriptVersion(Version="16.0.361")

template1 = GetTemplate(TemplateName="EngData")

system1 = template1.CreateSystem()

template2 = GetTemplate(

TemplateName="Static Structural",

Solver="ANSYS")

system2 = template2.CreateSystem(

Position="Right",

RelativeTo=system1)

engineeringDataComponent1 = system2.GetComponent(Name="Engineering Data")

engineeringDataComponent2 = system1.GetComponent(Name="Engineering Data")

engineeringDataComponent1.ReplaceWithShare(

TargetSystem=system2,

ComponentToShare=engineeringDataComponent2,

SourceSystem=system1)

engineeringData1 = system1.GetContainer(ComponentName="Engineering Data")

material1 = engineeringData1.GetMaterial(Name="Structural Steel")

matlProp1 = material1.GetProperty(Name="Elasticity")


E=220000000000

nu=0.29

E_str="%s [Pa]" % E

nu_str="%s" % nu

matlProp1.SetData(

Variables=["Young's Modulus"],

Values=[["%s" % E_str]])

matlProp1.SetData(

Variables=["Poisson's Ratio"],

Values=[["%s" % nu]])

engineeringDataComponent2.Update(AllDependencies=True)

上述代码在workbench平台定义了一个Engineering Data模块和一个Static Structure模块。该例子中将弹性模量和泊松比作为可以修改的材料参数,利用字符串变量E_str和nu_str获取弹性模量和泊松比的值,再利用SetData函数将这两个参数给Engineering Data模块。

Workbench平台的界面如下所示。

Workbench中利用python实现材料参数化定义ansys结果图片9

图9

进入Engineering Data模块,可以看到如下所示的结果,弹性模量和泊松比和上述python代码中定义的数值一样。

Workbench中利用python实现材料参数化定义ansys结果图片10

图10

同样,图10中的其他参数也可以进行参数化定义。如果在上述python代码中添加相关的文件读写,那么就可以实现从已有文件中读取相关的材料参数进行替换。


姊妹篇:

《Workbench利用Python驱动MAPDL执行APDL命令》

《Workbench利用Python驱动DM执行Js进行建模》

其他workbench二次开发细节:

《利用Python在Workbench的DM中进行几何操作》

《利用Python和API函数创建几何模型实例说明》


开放分享:优质有限元技术文章,助你自学成才

相关标签搜索:Workbench中利用python实现材料参数化定义 Ansys有限元培训 Ansys workbench培训 ansys视频教程 ansys workbench教程 ansys APDL经典教程 ansys资料下载 ansys技术咨询 ansys基础知识 ansys代做 Fluent、CFX流体分析 HFSS电磁分析 Abaqus培训 

编辑
在线报名:
  • 客服在线请直接联系我们的客服,您也可以通过下面的方式进行在线报名,我们会及时给您回复电话,谢谢!
验证码

全国服务热线

1358-032-9919

广州公司:
广州市环市中路306号金鹰大厦3800
电话:13580329919
          135-8032-9919
培训QQ咨询:点击咨询 点击咨询
项目QQ咨询:点击咨询
email:kf@1cae.com