利用Python在Workbench的DM中进行几何操作/运算【转发】
2017-07-03 by:CAE仿真在线 来源:互联网
编者按
文中所出现的代码来自于ANSYS帮助手册,需要深究的话可以多研究研究手册的内容。
Workbench几何部分除了建模还包括对几何模型的一些操作,这些也能够用Python和API函数完成。
正文
Workbench的几何建模程序DesignModeler(DM)虽不支持APDL参数化建模,但是却支持Python和C#,大量的API函数也是基于IronPython的。灵活运用Python和DM中的API函数接口,可实现模型的参数化以及模型的一些操作,比如拉伸、旋转、布尔运算等。
本次对这些几何模型的操作作简单阐述。
利用Python和API函数可进行的操作如下图所示,熟悉Workbench几何建模的应该对这些都不陌生。
图1
这些API函数的入口为:ExtAPI.DataModel.GeometryBuilder.Operations。
(1)拉伸操作
利用Python和API函数进行拉伸操作的代码如下:
def Ongenerate(feature,function):
# 定义函数
length = 0.3
# 定义变量
bodies = []
# 定义空列表
builder = ExtAPI.DataModel.GeometryBuilder
# 获取入口,并赋值给变量builder
polygon=builder.Primitives.Sheet.CreatePolygon([0.,0.,3*length,0.,0.,2.*length,length,0.,2.*length])
# 通过CreatePolygon创建三角形的三条边
polygon_generated = polygon.Generate()
# 生成线体(对应workbench的generate操作)
extrude = builder.Operations.CreateExtrudeOperation([0.,1.,0.],length/2.)
# 利用CreateExtrudeOperation函数进行拉伸操作,定义方向向量和拉伸长度
bodies.Add(extrude.ApplyTo(polygon_generated)[0])
# 定义拉伸的对象为前面生成的线体
feature.Bodies = bodies
# 生成的拉伸模型赋值给变量
feature.MaterialType = MaterialTypeEnum.Add
# 类型为add
return True
上面代码注意一个: bodies.Add(extrude.ApplyTo(polygon_generated)[0]),其中有一个[0],这是因为ApplyTo()会返回一个体列表,[0]表示这个列表的第一个体。
生成的图形如下:
图2
(2)转换
利用Python和API函数进行移动操作的代码如下:
def Ongenerate(feature,function):
# 定义函数
length = 0.3
# 定义变量
bodies = []
# 定义空列表
builder = ExtAPI.DataModel.GeometryBuilder
# 获取入口,并赋值
polygon = builder.Primitives.Sheet.CreatePolygon([0.,0.,2.*length,0.,0.,1.*length,length,0.,0.7])
# 通过CreatePolygon函数创建线体
polygon_generated = polygon.Generate()
# 生成片体
body = builder.Operations.Tools.EdgesToWireBody(polygon_generated.Edges);
# 利用函数EdgesToWireBody将片体的边转换为线体
bodies.Add(body)
# 添加到列表
feature.Bodies = bodies
# 赋值
feature.MaterialType = MaterialTypeEnum.Add
# 定义类型为Add
return True
最终如下所示,将一个三角形的面转换为三条边。
图3
转自公众号:CAE技术分享
相关标签搜索:利用Python在Workbench的DM中进行几何操作/运算【转发】 Ansys有限元培训 Ansys workbench培训 ansys视频教程 ansys workbench教程 ansys APDL经典教程 ansys资料下载 ansys技术咨询 ansys基础知识 ansys代做 Fluent、CFX流体分析 HFSS电磁分析 Abaqus培训